概要
Zabbix APIを用いてZabbixに設定されているテンプレートのIDを取得する
今回はZabbix WebUIのサーバ上で実施する内容となります
※コンテキストルートはZabbixインストール時のデフォルトの/zabbixとしています。
Zabbix APIとは?
Zabbix APIを使用すると、Zabbixの監視定義の取得または作成、変更、削除や監視の履歴データへのアクセスすることできます。
出力結果はZabbix APIの表示とは違う場合がありますが、各メソッドに設定している内容が記載させているので詳しくは、ZabbixAPIコマンドリファレンスをご覧下さい。
前提条件
・Zabbix WebUIにHTTP接続が可能な端末またはサーバで実行すること
・Zabbix 認証トークンが払い出されていること (まだの方はZabbix API 認証トークン払い出しを参照下さい。)
・jqコマンドがインストールされていること
テンプレートID取得 コマンド
template.getメソッドを利用します。
{
"jsonrpc": "2.0",
"method": "template.get",
"params": {
"output": "extend",
"filter": {
"host": [
"Linux",
"Windows"
]
}
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
テンプレートID取得 実行例
コマンド(例)
取得したい値だけ抽出して加工(printf)
curl -s -d '
{
"jsonrpc": "2.0",
"method": "template.get",
"params": {
"output": "extend"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
' -H "Content-Type: application/json-rpc" http://localhost/zabbix/api_jsonrpc.php \
| jq -r -c '.result[] | select(.name | startswith("Template OS")) | [.name, .templateid]' \
| sed "s/\"//g" \
| awk -F"," 'BEGIN{printf("%-50s%-50s\n", "============== Template Name ============== ", "= Template ID =");} \
{ $a = substr($0, 2); sub(/.$/,"",$a); printf("%-50s%-50s\n", $1, $2) }'
出力結果(例)
============== Template Name ============== = Template ID =
Template OS Linux 10001
Template OS OpenBSD 10074
Template OS FreeBSD 10075
Template OS AIX 10076
Template OS HP-UX 10077
Template OS Solaris 10078
Template OS Mac OS X 10079
Template OS Windows 10081
Template OS Linux SNMPv2 10248
Template OS Windows SNMPv2 10249
こんな感じの出力結果になります
参考リンク
TEMPLATE.GETメソッド
※コチラでメソッドで利用できるパラメータを確認してください。
ありがとうございます
コメント