Zabbix::APIを使ってzabbixに登録されているホストを知る
統合監視ツールzabbixにはWebUI以外にJSON-RPCによるAPIが用意されておりまして、 このAPIを叩くためのcpanモジュールZabbix::APIを使う練習をしてみます。
Loginする
use Zabbix::API; my $zbx = Zabbix::API->new( server => 'http://example.com/zabbix/api_jsonrpc.php', verbosity => 0, ); eval { $zbx->login(user => 'admin',password => 'MyPass') }; if ($@) { die "Couldn't login : $@"; }
ホストのリストを取得する
fetchメソッドを使います。
my $hosts = $zbx->fetch('Host'); foreach my $h (@{$hosts}) { print Dumper ($h->data); }
ホストグループを限定して取得するなら
my $hosts = $zbx->fetch('Host', params => { groupids => 8 } ); foreach my $h (@{$hosts}) { print "Host name :".$h->data->{name}; print "\n"; }
参考サイト
cpan https://metacpan.org/pod/Zabbix::API
Zabbix 公式 https://www.zabbix.com/documentation/2.2/manual/api