Skip to content
/ zabbix Public
forked from AlekSi/zabbix

Go package providing access to Zabbix API.

License

Notifications You must be signed in to change notification settings

eLco/zabbix

 
 

Repository files navigation

zabbix GoDoc Build Status Go Report Card

This Go package provides access to Zabbix API. Tested on Zabbix 2.0, 2.2, 2.4.

Install it: go get github.com/AlekSi/zabbix

You have to run tests before using this package – Zabbix API doesn't match documentation in few details, which are changing in patch releases. Tests are not expected to be destructive, but you are advised to run them against not-production instance or at least make a backup.

export TEST_ZABBIX_URL=http://localhost:8080/zabbix/api_jsonrpc.php
export TEST_ZABBIX_USER=Admin
export TEST_ZABBIX_PASSWORD=zabbix
export TEST_ZABBIX_VERBOSE=1
go test -v

TEST_ZABBIX_URL may contain HTTP basic auth username and password: http://username:password@host/api_jsonrpc.php. Also, in some setups URL should be like http://host/zabbix/api_jsonrpc.php.

Documentation is available on godoc.org. Also, Rafael Fernandes dos Santos wrote a great article about using and extending this package.

Example

package main

import (
	"fmt"
	"github.com/AlekSi/zabbix"
)

func main() {
	api := zabbix.NewAPI("http://zabbix.tema/api_jsonrpc.php")
	_, err := api.Login("Admin", "zabbix")
	if err != nil {
		panic(err)
	}
	defer api.Logout()

	hosts, err := api.HostsGet(zabbix.Params{"output": "extend", "filter": zabbix.Params{"host": "Zabbix server"}})
	if err != nil {
		panic(err)
	}

	for _, host := range hosts {
		fmt.Println(host.Host)
	}
}

License: Simplified BSD License (see LICENSE).

About

Go package providing access to Zabbix API.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 95.4%
  • Ruby 4.6%