テンプレートとリンクされたホスト数
お世話になります。
今、Zabbix2.4で環境を構築しているのですが、
特定のテンプレートまたはホストグループにリンクされたホスト数を数えて、
トリガーのアクションの条件に加える手段は無いのでしょうか。
Zabbixインターナルのzabbix[host]ですと有効なすべてのホストがカウントされてしまいます。
Zabbizアグリゲートで grpsum[グループ名,agent.ping,sum,]とすれば出来そうな気がするのですが、
試してもデータなしから進まず、仮に取れたとしてもagentのないホストが含まれないため、
より良い方法が知りたいのです。
お手数をおかけいたしますがご教示いただきたく。
よろしくお願い申し上げます。
TNK - 投稿数: 4769
Zabbixの設定だけで値を取得する方法はすぐに思いつかなかったの
ですが、APIを利用すれば、テンプレートのIDやホストグループの
IDを指定してホストの一覧を取得できるので、外部スクリプトを利
用してAPIを呼び出すスクリプト実行して値を取得しても良いかも
しれません。
ちょっと試しただけで綺麗なコードはかけていないので、ヒントだ
け。
使ったZabbix APIは、
user.authenticate (API呼び出しに必要なauthトークン取得)
template.get (テンプレートのIDを取得するために)
hostgroup.get (ホストグループのIDを取得するために)
host.get
です。
curlとjqを組み合わせてhost.getで取得できた結果に対して、
jq '.result | length'
でresultの件数を数えると実現できると思います。
TNK - 投稿数: 4769
Zabbixアグリゲートを利用して、特定のホストグループ内でZabbix
エージェントが起動しているホストの数という求め方でよければ、
以下のような設定で値を取得できると思います。
ex. ホストグループの名前が「Test group」
タイプ:
Zabbixアグリゲート
キー:
grpsum["Test group","agent.ping",last,0]
kwatanabe - 投稿数: 2
ご教示ありがとうございます。
APIを使った方法はまだ検討していませんでした。
ありがとうございます。少し試用してみて、旨くいきそうなら、
真面目にAPIでくみ上げることを検討してみます。
Zabbixアグリゲートは始めに書きましたとおり、検討したのですが、
やはりZabbixエージェントがないとダメというのが少々使いにくい所です。
現時点は、問題ないのですがゆくゆくはネットワーク機器も対象にしたいと
考えておりますので。
進展があれば、ご報告いたします。
ありがとうございます。