週末には少しPerlを。

Perlスクリプトの学習日記です。

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