Documentation
¶
Overview ¶
Package zabbix provides access to Zabbix API.
Before using it make sure you run tests as described in README: https://github.com/AlekSi/zabbix
Index ¶
- Constants
- type API
- func (api *API) ApplicationGetByHostIdAndName(hostId, name string) (res *Application, err error)
- func (api *API) ApplicationGetById(id string) (res *Application, err error)
- func (api *API) ApplicationsCreate(apps Applications) (err error)
- func (api *API) ApplicationsDelete(apps Applications) (err error)
- func (api *API) ApplicationsDeleteByIds(ids []string) (err error)
- func (api *API) ApplicationsGet(params Params) (res Applications, err error)
- func (api *API) Call(method string, params interface{}) (response Response, err error)
- func (api *API) CallWithError(method string, params interface{}) (response Response, err error)
- func (api *API) HostGetByHost(host string) (res *Host, err error)
- func (api *API) HostGetById(id string) (res *Host, err error)
- func (api *API) HostGroupGetById(id string) (res *HostGroup, err error)
- func (api *API) HostGroupsCreate(hostGroups HostGroups) (err error)
- func (api *API) HostGroupsDelete(hostGroups HostGroups) (err error)
- func (api *API) HostGroupsDeleteByIds(ids []string) (err error)
- func (api *API) HostGroupsGet(params Params) (res HostGroups, err error)
- func (api *API) HostsCreate(hosts Hosts) (err error)
- func (api *API) HostsDelete(hosts Hosts) (err error)
- func (api *API) HostsDeleteByIds(ids []string) (err error)
- func (api *API) HostsGet(params Params) (res Hosts, err error)
- func (api *API) HostsGetByHostGroupIds(ids []string) (res Hosts, err error)
- func (api *API) HostsGetByHostGroups(hostGroups HostGroups) (res Hosts, err error)
- func (api *API) ItemsCreate(items Items) (err error)
- func (api *API) ItemsDelete(items Items) (err error)
- func (api *API) ItemsDeleteByIds(ids []string) (err error)
- func (api *API) ItemsGet(params Params) (res Items, err error)
- func (api *API) ItemsGetByApplicationId(id string) (res Items, err error)
- func (api *API) Login(user, password string) (auth string, err error)
- func (api *API) SetClient(c *http.Client)
- func (api *API) Version() (v string, err error)
- type Application
- type Applications
- type AvailableType
- type DataType
- type DeltaType
- type Error
- type ExpectedMore
- type ExpectedOneResult
- type Host
- type HostGroup
- type HostGroupId
- type HostGroupIds
- type HostGroups
- type HostInterface
- type HostInterfaces
- type Hosts
- type InterfaceType
- type InternalType
- type Item
- type ItemType
- type Items
- type Params
- type Response
- type StatusType
- type ValueType
Examples ¶
Constants ¶
const ( Available AvailableType = 1 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 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type API ¶
type API struct {
Auth string // auth token, filled by Login()
Logger *log.Logger // request/response logger, nil by default
// contains filtered or unexported fields
}
func NewAPI ¶
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) ApplicationGetByHostIdAndName ¶
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) ApplicationGetById ¶
func (api *API) ApplicationGetById(id string) (res *Application, err error)
Gets application by Id only if there is exactly 1 matching application.
func (*API) ApplicationsCreate ¶
func (api *API) ApplicationsCreate(apps Applications) (err error)
Wrapper for application.create: https://www.zabbix.com/documentation/2.0/manual/appendix/api/application/create
func (*API) ApplicationsDelete ¶
func (api *API) ApplicationsDelete(apps Applications) (err error)
Wrapper for application.delete: https://www.zabbix.com/documentation/2.0/manual/appendix/api/application/delete Cleans ApplicationId in all apps elements if call succeed.
func (*API) ApplicationsDeleteByIds ¶
Wrapper for application.delete: https://www.zabbix.com/documentation/2.0/manual/appendix/api/application/delete
func (*API) ApplicationsGet ¶
func (api *API) ApplicationsGet(params Params) (res Applications, err error)
Wrapper for application.get: https://www.zabbix.com/documentation/2.0/manual/appendix/api/application/get
func (*API) Call ¶
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.
Example ¶
api := NewAPI("http://host/api_jsonrpc.php")
api.Login("user", "password")
res, _ := api.Call("item.get", Params{"itemids": "23970", "output": "extend"})
log.Print(res)
func (*API) CallWithError ¶
Uses Call() and then sets err to response.Error if former is nil and latter is not.
func (*API) HostGetByHost ¶
Gets host by Host only if there is exactly 1 matching host.
func (*API) HostGetById ¶
Gets host by Id only if there is exactly 1 matching host.
func (*API) HostGroupGetById ¶
Gets host group by Id only if there is exactly 1 matching host group.
func (*API) HostGroupsCreate ¶
func (api *API) HostGroupsCreate(hostGroups HostGroups) (err error)
Wrapper for hostgroup.create: https://www.zabbix.com/documentation/2.0/manual/appendix/api/hostgroup/create
func (*API) HostGroupsDelete ¶
func (api *API) HostGroupsDelete(hostGroups HostGroups) (err error)
Wrapper for hostgroup.delete: https://www.zabbix.com/documentation/2.0/manual/appendix/api/hostgroup/delete Cleans GroupId in all hostGroups elements if call succeed.
func (*API) HostGroupsDeleteByIds ¶
Wrapper for hostgroup.delete: https://www.zabbix.com/documentation/2.0/manual/appendix/api/hostgroup/delete
func (*API) HostGroupsGet ¶
func (api *API) HostGroupsGet(params Params) (res HostGroups, err error)
Wrapper for hostgroup.get: https://www.zabbix.com/documentation/2.0/manual/appendix/api/hostgroup/get
func (*API) HostsCreate ¶
Wrapper for host.create: https://www.zabbix.com/documentation/2.0/manual/appendix/api/host/create
func (*API) HostsDelete ¶
Wrapper for host.delete: https://www.zabbix.com/documentation/2.0/manual/appendix/api/host/delete Cleans HostId in all hosts elements if call succeed.
func (*API) HostsDeleteByIds ¶
Wrapper for host.delete: https://www.zabbxix.com/documentation/2.0/manual/appendix/api/host/delete
func (*API) HostsGet ¶
Wrapper for host.get: https://www.zabbix.com/documentation/2.0/manual/appendix/api/host/get
func (*API) HostsGetByHostGroupIds ¶
Gets hosts by host group Ids.
func (*API) HostsGetByHostGroups ¶
func (api *API) HostsGetByHostGroups(hostGroups HostGroups) (res Hosts, err error)
Gets hosts by host groups.
func (*API) ItemsCreate ¶
Wrapper for item.create: https://www.zabbix.com/documentation/2.0/manual/appendix/api/item/create
func (*API) ItemsDelete ¶
Wrapper for item.delete: https://www.zabbix.com/documentation/2.0/manual/appendix/api/item/delete Cleans ItemId in all items elements if call succeed.
func (*API) ItemsDeleteByIds ¶
Wrapper for item.delete: https://www.zabbix.com/documentation/2.0/manual/appendix/api/item/delete
func (*API) ItemsGet ¶
Wrapper for item.get https://www.zabbix.com/documentation/2.0/manual/appendix/api/item/get
func (*API) ItemsGetByApplicationId ¶
Gets items by application Id.
type Application ¶
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.0/manual/appendix/api/application/definitions
type Applications ¶
type Applications []Application
type AvailableType ¶
type AvailableType int
type Error ¶
type ExpectedMore ¶
func (*ExpectedMore) Error ¶
func (e *ExpectedMore) Error() string
type ExpectedOneResult ¶
type ExpectedOneResult int
func (*ExpectedOneResult) Error ¶
func (e *ExpectedOneResult) Error() string
type Host ¶
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.0/manual/appendix/api/host/definitions
type HostGroup ¶
type HostGroup struct {
GroupId string `json:"groupid,omitempty"`
Name string `json:"name"`
Internal InternalType `json:"internal"`
}
https://www.zabbix.com/documentation/2.0/manual/appendix/api/hostgroup/definitions
type HostGroupId ¶
type HostGroupId struct {
GroupId string `json:"groupid"`
}
type HostGroupIds ¶
type HostGroupIds []HostGroupId
type HostGroups ¶
type HostGroups []HostGroup
type HostInterface ¶
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.0/manual/appendix/api/hostinterface/definitions
type HostInterfaces ¶
type HostInterfaces []HostInterface
type InterfaceType ¶
type InterfaceType int
const ( Agent InterfaceType = 1 SNMP InterfaceType = 2 IPMI InterfaceType = 3 JMX InterfaceType = 4 )
type InternalType ¶
type InternalType int
const ( NotInternal InternalType = 0 Internal InternalType = 1 )
type Item ¶
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.0/manual/appendix/api/item/definitions
type StatusType ¶
type StatusType int
