概要
Zabbix APIを用いてZabbixに設定されているテンプレートのマクロ情報を取得する
今回はZabbix WebUIのサーバ上で実施する内容となります
※コンテキストルートはZabbixインストール時のデフォルトの/zabbixとしています。
Zabbix APIとは?
Zabbix APIを使用すると、Zabbixの監視定義の取得または作成、変更、削除や監視の履歴データへのアクセスすることできます。
出力結果はZabbix APIの表示とは違う場合がありますが、各メソッドに設定している内容が記載させているので詳しくは、ZabbixAPIコマンドリファレンスをご覧下さい。
前提条件
・Zabbix WebUIにHTTP接続が可能な端末またはサーバで実行すること
・Zabbix 認証トークンが払い出されていること (まだの方はZabbix API 認証トークン払い出しを参照下さい。)
・jqコマンドがインストールされていること
テンプレートのマクロ情報取得 コマンド
template.getメソッドを利用します。
{
"jsonrpc": "2.0",
"method": "template.get",
"params": {
"templateids": "[テンプレートID]",
"output": "macros",
"selectMacros": "extend"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
マクロ取得 実行例
コマンド(例)
PostgreSQLのテンプレートのマクロ情報を取得する
PostgreSQLのテンプレートはpg-monzを使用しています。コチラのテンプレートをエクスポートした後にZabbixAPIを実行してからコマンドを実行して下さい。
※別のテンプレートがあればそちらでもOKです。
curl -s -d '
{
"jsonrpc": "2.0",
"method": "template.get",
"params": {
"templateids": "10999",
"output": "macros",
"selectMacros": "extend"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
' -H "Content-Type: application/json-rpc" http://localhost/zabbix/api_jsonrpc.php | jq .
出力結果(例)
{
"jsonrpc": "2.0",
"result": [
{
"templateid": "10368",
"macros": [
{
"hostmacroid": "812",
"hostid": "10368",
"macro": "{$PGCACHEHIT_THRESHOLD}",
"value": "90"
},
{
"hostmacroid": "813",
"hostid": "10368",
"macro": "{$PGCHECKPOINTS_THRESHOLD}",
"value": "10"
},
{
"hostmacroid": "814",
"hostid": "10368",
"macro": "{$PGCONNECTIONS_THRESHOLD}",
"value": "1300"
},
{
"hostmacroid": "815",
"hostid": "10368",
"macro": "{$PGDBSIZE_THRESHOLD}",
"value": "42949672960"
},
{
"hostmacroid": "816",
"hostid": "10368",
"macro": "{$PGDEADLOCK_THRESHOLD}",
"value": "0"
},
{
"hostmacroid": "817",
"hostid": "10368",
"macro": "{$PGLOGDIR}",
"value": "/var/log/postgres"
},
{
"hostmacroid": "818",
"hostid": "10368",
"macro": "{$PGSCRIPTDIR}",
"value": "/usr/local/bin"
},
{
"hostmacroid": "819",
"hostid": "10368",
"macro": "{$PGSCRIPT_CONFDIR}",
"value": "/usr/local/etc"
},
{
"hostmacroid": "820",
"hostid": "10368",
"macro": "{$PGSLOWQUERY_COUNT_THRESHOLD}",
"value": "10"
},
{
"hostmacroid": "821",
"hostid": "10368",
"macro": "{$PGSLOWQUERY_TIME_THRESHOLD}",
"value": "10"
},
{
"hostmacroid": "822",
"hostid": "10368",
"macro": "{$PGTEMPBYTES_THRESHOLD}",
"value": "8388608"
},
{
"hostmacroid": "823",
"hostid": "10368",
"macro": "{$ZABBIX_AGENTD_CONF}",
"value": "/etc/zabbix/zabbix_agentd.conf"
}
]
}
],
"id": 1
}
こんな感じの出力結果になります
参考リンク
TEMPLATE.GETメソッド
※コチラでメソッドで利用できるパラメータを確認してください。
ありがとうございます
コメント