Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@mechamogera
Last active May 20, 2016 17:34
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mechamogera/4689505 to your computer and use it in GitHub Desktop.
Save mechamogera/4689505 to your computer and use it in GitHub Desktop.
Zabbix APIをRubyから利用する場合どのライブラリが良いのか調べてみる

Zabbix APIをRubyから利用する場合どのライブラリが良いのか調べてみる

選定結果

  • zabbixapiを使ってみる
  • ruby1.9でしかサンプルが動かなかったのが気になるがサンプルが充実していて対応するzabbixのバージョンも明記されている

Hostの情報取得を書いてみた所感

  • Zabbix API
  • 日本語の使用レポートがちらほらあるが公式のtracではあまりドキュメントがない
  • Rubix
  • apiごとに特化したIFではなく汎用的なIFを用意している感じ
  • zabbixapi
  • apiごとに使いやすいAPIが用意されている感じ(ただし、ruby1.9でしかサンプルが動かなかった)
  • githubページでサンプルが充実していて対応するzabbixのバージョンも明記されている
  • zabby
  • 書き方が独特な感じ

各ライブラリの最終更新日

各ライブラリのgemダウンロード数(2013/2/4現在)

# A sample Gemfile
source "https://rubygems.org"
gem 'rubix'
gem 'zabbixapi'
gem 'zabby'
gem 'zbxapi'
require 'rubix'
ZABBIX_SERVER = "example.com"
ZABBIX_API_URL = "http://#{ZABBIX_SERVER}/zabbix/api_jsonrpc.php"
ZABBIX_LOGINID = "admin"
ZABBIX_PASSWORD = "zabbix"
zbx = Rubix.connect(ZABBIX_API_URL, ZABBIX_LOGINID, ZABBIX_PASSWORD)
res = zbx.request('host.get', "output" => "extend")
p res.result
require 'zabbixapi'
ZABBIX_SERVER = "example.com"
ZABBIX_API_URL = "http://#{ZABBIX_SERVER}/zabbix/api_jsonrpc.php"
ZABBIX_LOGINID = "admin"
ZABBIX_PASSWORD = "zabbix"
zbx = ZabbixApi.connect(:url => ZABBIX_API_URL, :user => ZABBIX_LOGINID, :password => ZABBIX_PASSWORD)
p zbx.hosts.get("output" => "extend")
require 'zabby'
ZABBIX_SERVER = "example.com"
ZABBIX_API_URL = "http://#{ZABBIX_SERVER}/zabbix/api_jsonrpc.php"
ZABBIX_LOGINID = "admin"
ZABBIX_PASSWORD = "zabbix"
z = Zabby.init do
set :server => ZABBIX_API_URL
set :user => ZABBIX_LOGINID
set :password => ZABBIX_PASSWORD
login
end
p z.run { Zabby::Host.get("output" => "extend") }
require 'zbxapi'
ZABBIX_SERVER = "example.com"
ZABBIX_API_URL = "http://#{ZABBIX_SERVER}/zabbix/api_jsonrpc.php"
ZABBIX_LOGINID = "admin"
ZABBIX_PASSWORD = "zabbix"
zbxapi = ZabbixAPI.new(ZABBIX_API_URL)
zbxapi.login(ZABBIX_LOGINID, ZABBIX_PASSWORD)
p zbxapi.host.get("output" => "extend")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment