【ZabbixAPI】テンプレートに付随しているアイテムの一覧を取得したい
お世話になっております。
ZABBIXバージョン:3.2
ZabbixAPIのitem.getからテンプレートに紐づくアイテムの一覧を取得したく
ログインメソッドを使用し認証トークンを取得後、以下のようにcurlコマンドで
APIコールをしたのですが、filterでのテンプレート指定の方法がまずいようでitemを取得
出来ませんでした。
curl -k -X GET -H "Content-Type:application/json-rpc" -d '{"jsonrpc": "2.0","method": "item.get", "params": {"output": "extend","filter": {"host":["${template_name}"]}},"auth": "${token}","id":1}' https://domain/zabbix/api_jsonrpc.php
ZABBIXサーバのDBを見る限りテンプレートはhostsテーブルに格納されていたので
hostidまたはhostでfilterをかければ取得できると思ったのですが。。。
ZabbixAPIからテンプレートに紐づくアイテムの一覧を取得する方法をご教授願えないでしょうか?
以上、よろしくお願いします。
TNK - 投稿数: 4768
item.getを使用する際、filterでhostの条件を指定されていますが、
item objectには条件に指定されたhostの情報(カラム)はないので、
host.getでテンプレート名を指定してhostidを取得し、そのhostid
を引数に指定してitem.getを実行してみてはいかがでしょうか?
ご参考
item object
https://www.zabbix.com/documentation/3.2/manual/api/reference/item/object
item.get
https://www.zabbix.com/documentation/3.2/manual/api/reference/item/get
host.get
https://www.zabbix.com/documentation/3.2/manual/api/reference/host/get
takenishi - 投稿数: 4
返信ありがとうございます。
host.getでテンプレートのhostidを取得しようと試みたのですが、テンプレートのhost情報を
取得してくることができませんでした。
そのためfilterで条件を指定せずにhostの情報を全件取得しようとしても
全件取得することができず一部のhostの情報が取得できただけでした。
curl -k -X GET -H "Content-Type:application/json-rpc" -d '{"jsonrpc": "2.0","method": "host.get", "params": {"output": "extend"},"auth": "${token}","id":1}' https://domain/zabbix/api_jsonrpc.php
APIの戻り値に件数制限等あるためでしょうか?
また、host.getではテンプレートの情報は取得できないのでしょうか?
重ねての質問にはなりますがご回答のほどよろしくお願いいたします。
TNK - 投稿数: 4768
失礼しました。
テンプレートの取得には、メソッド「template.get」を使ってくだ
さい。
あとは、template.getで取得したtemplateidの値をhostidの条件に
指定してitem.getを使用してみてください。
takenishi - 投稿数: 4
何度も大変申し訳ございません。
template.getを行いましたが一件も値を取得できませんでした。
以下のコマンドを実施したのですが問題点ありますでしょうか?
1.templateidを取得のためtemplate.getを実施
curl -k -X GET -H "Content-Type:application/json-rpc" -d '{"jsonrpc": "2.0","method": "template.get", "params": {"output": "extend"},"auth": "${token}","id":1}' https://domain/zabbix/api_jsonrpc.php | jq -r '.result[]'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 36 0 36 0 125 158 551 --:--:-- --:--:-- --:--:-- 0
TNK - 投稿数: 4768
記載頂いたcurlの呼び出しですが、手元の3.2.9の環境でauthと呼
び出すURLを変更するだけで値が取得できています。
何らかの警告やエラーが出ていないか、手動でcurlの呼び出しだけ
を実行して確認してみてください。
takenishi - 投稿数: 4
エラー等出ていないようでした。。。
長々と失礼いたしました。
今回はtemplateに紐づく設定一覧を取得したかったのでDBで直接テンプレートのhostidを確認して
SQLで設定を取得しようと思います。
また、機会があればAPIリベンジしたいと思います。
大変助かりました、ありがとうございます。