【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 の写真

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 の写真

返信ありがとうございます。

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 の写真

失礼しました。
テンプレートの取得には、メソッド「template.get」を使ってくだ
さい。
あとは、template.getで取得したtemplateidの値をhostidの条件に
指定してitem.getを使用してみてください。

ユーザー takenishi の写真

何度も大変申し訳ございません。

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 の写真

記載頂いたcurlの呼び出しですが、手元の3.2.9の環境でauthと呼
び出すURLを変更するだけで値が取得できています。

何らかの警告やエラーが出ていないか、手動でcurlの呼び出しだけ
を実行して確認してみてください。

ユーザー takenishi の写真

エラー等出ていないようでした。。。

長々と失礼いたしました。
今回はtemplateに紐づく設定一覧を取得したかったのでDBで直接テンプレートのhostidを確認して
SQLで設定を取得しようと思います。
また、機会があればAPIリベンジしたいと思います。
大変助かりました、ありがとうございます。