【zabbixapi】複数項目で検索し表示させたい
実施したいことは以下です。
名称が「ICMP ping」のアイテムかつ
最新値が「0」かつ、
非テンプレートホストの一覧を抜き出したい。
※非テンプレートホストのフラグとして"prevvalue": "1"を利用しています。
実行内容は下記になります。
==================================
{
"auth": "XXXXXX",
"method": "item.get",
"id": 1,
"params": {
"output": [
"lastvalue",
"hostid",
"prevvalue"
],
"search": {
"name": "ICMP ping",
"lastvalue": "0",
"prevvalue": "1"
}
}
}
==================================
結果、API自体は問題なく通りますが、"name"しかフィルタがかかっていない出力でした。
問題点と解決方法についてご教示頂けないでしょうか。
Zabbix3.0.4-1を利用しています。
よろしくお願いいたします。
fripper - 投稿数: 495
https://www.zabbix.com/documentation/3.0/manual/api/reference/item/get
https://www.zabbix.com/documentation/3.0/manual/api/reference_commentary...
API 仕様を見る限りは、"name", "key_" 等、items のテーブル項目によるフィルタリングは可能のようですが
lastvalue, prevvalue は、フィルタとして利用できないようです
2.0 等の頃は、lastvalue, prevvalue が、items テーブルの1項目として存在していたので
2.0 API では利用できるのかもしれませんが、3.0 系へバージョンアップされた際に
items テーブルのカラム要素では無くなっているようで、フィルタとして利用できなくなったのだと思います
テンプレート系アイテムかどうかの判断基準として利用するのであれば
templateid が NULL 以外‥というフィルタや
inherited、templated、monitored 等のフラグ項目をフィルタとして利用する‥という手段ではいかがでしょうか?
最新値が 0 かどうか‥のフィルタについては、良い案をパッと思いつきません。申し訳ありません
adams - 投稿数: 9
ご連絡ありがとうございます。
テーブル項目に乗っていないとフィルタリングできないんですね。
"name"で絞って一覧抽出し、そこから加工処理加える形にします。
ありがとうございました。