Zabbix::Client

This is a simple client of Zabbix API.

Gem Version Build Status

Installation

Add this line to your application's Gemfile:

gem 'zabbix-client'

And then execute:

$ bundle

Or install it yourself as:

$ gem install zabbix-client

Usage

Method call is a thin wrapper of the JSON-RPC.

JSON is created dynamically, it is checked on the server side.

require 'zabbix/client'

client = Zabbix::Client.new('http://localhost/zabbix/api_jsonrpc.php')

# https://www.zabbix.com/documentation/2.0/manual/appendix/api/user/login
client.user.(user: 'Admin', password: 'zabbix')

# https://www.zabbix.com/documentation/2.0/manual/appendix/api/apiinfo/version
p client.apiinfo.version #=> "2.0.12"

# https://www.zabbix.com/documentation/2.0/manual/appendix/api/template/getobjects
p client.template.getobjects(host: ['Template OS Linux'])
#=> [{"hostid"=>"10001",
#     "proxy_hostid"=>"0",
#     "host"=>"Template OS Linux",
#     ...

# https://www.zabbix.com/documentation/2.0/manual/appendix/api/hostgroup/delete
client.hostgroup.delete([9, 10])

Use proxy

Zabbix::Client.new(
  'http://localhost/zabbix/api_jsonrpc.php',
  proxy_host: 'hostname', proxy_port: 8080
)

Basic auth

Zabbix::Client.new(
  'http://localhost/zabbix/api_jsonrpc.php',
  basic_auth_user: 'username', basic_auth_password: 'password'
)

Debug mode

Zabbix::Client.new(
  'http://localhost/zabbix/api_jsonrpc.php',
  debug: true
)

CLI

$ export ZABBIX_URL=http://localhost/zabbix/api_jsonrpc.php
$ export ZABBIX_USER=Admin:zabbix
$ zabbix-cli -e apiinfo.version
2.4.6
$ zabbix-cli -e 'template.getobjects(host: ["Template OS Linux"])'
[
  {
    "proxy_hostid": "0",
    "host": "Template OS Linux",
    "status": "3",
    "disable_until": "0",
    "error": "",
    "available": "0",
    "errors_from": "0",
    "lastaccess": "0",
    "ipmi_authtype": "0",
    "ipmi_privilege": "2",
    "ipmi_username": "",
    "ipmi_password": "",
    "ipmi_disable_until": "0",
    "ipmi_available": "0",
    "snmp_disable_until": "0",
    "snmp_available": "0",
    "maintenanceid": "0",
    "maintenance_status": "0",
    "maintenance_type": "0",
    "maintenance_from": "0",
    "ipmi_errors_from": "0",
    "snmp_errors_from": "0",
    "ipmi_error": "",
    "snmp_error": "",
    "jmx_disable_until": "0",
    "jmx_available": "0",
    "jmx_errors_from": "0",
    "jmx_error": "",
    "name": "Template OS Linux",
    "flags": "0",
    "templateid": "10001",
    "description": ""
  }
]