import "github.com/AlekSi/zabbix"
Package zabbix provides access to Zabbix API.
Before using it make sure you run tests as described in README: https://github.com/AlekSi/zabbix
application.go base.go doc.go host.go host_group.go host_interface.go item.go
const ( Available AvailableType = 1 AvailableType = 2 Monitored StatusType = 0 Unmonitored StatusType = 1 )
const ( ZabbixAgent ItemType = 0 SNMPv1Agent ItemType = 1 ZabbixTrapper ItemType = 2 SimpleCheck ItemType = 3 SNMPv2Agent ItemType = 4 ZabbixInternal ItemType = 5 SNMPv3Agent ItemType = 6 ZabbixAgentActive ItemType = 7 ZabbixAggregate ItemType = 8 WebItem ItemType = 9 ExternalCheck ItemType = 10 DatabaseMonitor ItemType = 11 IPMIAgent ItemType = 12 SSHAgent ItemType = 13 TELNETAgent ItemType = 14 Calculated ItemType = 15 JMXAgent ItemType = 16 Float ValueType = 0 Character ValueType = 1 Log ValueType = 2 Unsigned ValueType = 3 Text ValueType = 4 Decimal DataType = 0 Octal DataType = 1 Hexadecimal DataType = 2 Boolean DataType = 3 AsIs DeltaType = 0 Speed DeltaType = 1 Delta DeltaType = 2 )
type API struct { Auth string // auth token, filled by Login() Logger *log.Logger // request/response logger, nil by default // contains filtered or unexported fields }
Creates new API access object. Typical URL is http://host/api_jsonrpc.php or http://host/zabbix/api_jsonrpc.php. It also may contain HTTP basic auth username and password like http://username:password@host/api_jsonrpc.php.
func (api *API) ApplicationGetByHostIdAndName(hostId, name string) (res *Application, err error)
Gets application by host Id and name only if there is exactly 1 matching application.
func (api *API) ApplicationGetById(id string) (res *Application, err error)
Gets application by Id only if there is exactly 1 matching application.
func (api *API) ApplicationsCreate(apps Applications) (err error)
Wrapper for application.create: https://www.zabbix.com/documentation/2.2/manual/appendix/api/application/create
func (api *API) ApplicationsDelete(apps Applications) (err error)
Wrapper for application.delete: https://www.zabbix.com/documentation/2.2/manual/appendix/api/application/delete Cleans ApplicationId in all apps elements if call succeed.
Wrapper for application.delete: https://www.zabbix.com/documentation/2.2/manual/appendix/api/application/delete
func (api *API) ApplicationsGet(params Params) (res Applications, err error)
Wrapper for application.get: https://www.zabbix.com/documentation/2.2/manual/appendix/api/application/get
Calls specified API method. Uses api.Auth if not empty. err is something network or marshaling related. Caller should inspect response.Error to get API error.
Code:
api := NewAPI("http://host/api_jsonrpc.php") api.Login("user", "password") res, _ := api.Call("item.get", Params{"itemids": "23970", "output": "extend"}) log.Print(res)
Uses Call() and then sets err to response.Error if former is nil and latter is not.
Gets host by Host only if there is exactly 1 matching host.
Gets host by Id only if there is exactly 1 matching host.
Gets host group by Id only if there is exactly 1 matching host group.
func (api *API) HostGroupsCreate(hostGroups HostGroups) (err error)
Wrapper for hostgroup.create: https://www.zabbix.com/documentation/2.2/manual/appendix/api/hostgroup/create
func (api *API) HostGroupsDelete(hostGroups HostGroups) (err error)
Wrapper for hostgroup.delete: https://www.zabbix.com/documentation/2.2/manual/appendix/api/hostgroup/delete Cleans GroupId in all hostGroups elements if call succeed.
Wrapper for hostgroup.delete: https://www.zabbix.com/documentation/2.2/manual/appendix/api/hostgroup/delete
func (api *API) HostGroupsGet(params Params) (res HostGroups, err error)
Wrapper for hostgroup.get: https://www.zabbix.com/documentation/2.2/manual/appendix/api/hostgroup/get
Wrapper for host.create: https://www.zabbix.com/documentation/2.2/manual/appendix/api/host/create
Wrapper for host.delete: https://www.zabbix.com/documentation/2.2/manual/appendix/api/host/delete Cleans HostId in all hosts elements if call succeed.
Wrapper for host.delete: https://www.zabbix.com/documentation/2.2/manual/appendix/api/host/delete
Wrapper for host.get: https://www.zabbix.com/documentation/2.2/manual/appendix/api/host/get
Gets hosts by host group Ids.
func (api *API) HostsGetByHostGroups(hostGroups HostGroups) (res Hosts, err error)
Gets hosts by host groups.
Wrapper for item.create: https://www.zabbix.com/documentation/2.2/manual/appendix/api/item/create
Wrapper for item.delete: https://www.zabbix.com/documentation/2.2/manual/appendix/api/item/delete Cleans ItemId in all items elements if call succeed.
Wrapper for item.delete: https://www.zabbix.com/documentation/2.2/manual/appendix/api/item/delete
Wrapper for item.get https://www.zabbix.com/documentation/2.2/manual/appendix/api/item/get
Gets items by application Id.
Calls "user.login" API method and fills api.Auth field. This method modifies API structure and should not be called concurrently with other methods.
Allows one to use specific http.Client, for example with InsecureSkipVerify transport.
Calls "APIInfo.version" API method. This method temporary modifies API structure and should not be called concurrently with other methods.
type Application struct { ApplicationId string `json:"applicationid,omitempty"` HostId string `json:"hostid"` Name string `json:"name"` TemplateId string `json:"templateid,omitempty"` }
https://www.zabbix.com/documentation/2.2/manual/appendix/api/application/definitions
type Applications []Application
type Error struct { Code int `json:"code"` Message string `json:"message"` Data string `json:"data"` }
func (e *ExpectedMore) Error() string
func (e *ExpectedOneResult) Error() string
type Host struct { HostId string `json:"hostid,omitempty"` Host string `json:"host"` Available AvailableType `json:"available"` Error string `json:"error"` Name string `json:"name"` Status StatusType `json:"status"` // Fields below used only when creating hosts GroupIds HostGroupIds `json:"groups,omitempty"` Interfaces HostInterfaces `json:"interfaces,omitempty"` }
https://www.zabbix.com/documentation/2.2/manual/appendix/api/host/definitions
type HostGroup struct { GroupId string `json:"groupid,omitempty"` Name string `json:"name"` Internal InternalType `json:"internal,omitempty"` }
https://www.zabbix.com/documentation/2.2/manual/appendix/api/hostgroup/definitions
type HostGroupIds []HostGroupId
type HostInterface struct { DNS string `json:"dns"` IP string `json:"ip"` Main int `json:"main"` Port string `json:"port"` Type InterfaceType `json:"type"` UseIP int `json:"useip"` }
https://www.zabbix.com/documentation/2.2/manual/appendix/api/hostinterface/definitions
type HostInterfaces []HostInterface
const ( Agent InterfaceType = 1 SNMP InterfaceType = 2 IPMI InterfaceType = 3 JMX InterfaceType = 4 )
const ( NotInternal InternalType = 0 Internal InternalType = 1 )
type Item struct { ItemId string `json:"itemid,omitempty"` Delay int `json:"delay"` HostId string `json:"hostid"` InterfaceId string `json:"interfaceid,omitempty"` Key string `json:"key_"` Name string `json:"name"` Type ItemType `json:"type"` ValueType ValueType `json:"value_type"` DataType DataType `json:"data_type"` Delta DeltaType `json:"delta"` Description string `json:"description"` Error string `json:"error"` History int `json:"history,omitempty"` Trends int `json:"trends,omitempty"` // Fields below used only when creating applications ApplicationIds []string `json:"applications,omitempty"` }
https://www.zabbix.com/documentation/2.2/manual/appendix/api/item/definitions
Converts slice to map by key. Panics if there are duplicate keys.
type Response struct { Jsonrpc string `json:"jsonrpc"` Error *Error `json:"error"` Result interface{} `json:"result"` Id int32 `json:"id"` }
Package zabbix imports 8 packages (graph) and is imported by 1 packages. Updated 2018-06-08. Refresh now. Tools for package owners.