概要
Zabbix APIを用いてZabbixに設定されているホスト情報を取得する
今回はZabbix WebUIのサーバ上で実施する内容となります
※コンテキストルートはZabbixインストール時のデフォルトの/zabbixとしています。
Zabbix APIとは?
Zabbix APIを使用すると、Zabbixの監視定義の取得または作成、変更、削除や監視の履歴データへのアクセスすることできます。
出力結果はZabbix APIの表示とは違う場合がありますが、各メソッドに設定している内容が記載させているので詳しくは、ZabbixAPIコマンドリファレンスをご覧下さい。
前提条件
・Zabbix WebUIにHTTP接続が可能な端末またはサーバで実行すること
・Zabbix 認証トークンが払い出されていること (まだの方はZabbix API 認証トークン払い出しを参照下さい。)
・jqコマンドがインストールされていること
ホスト情報取得 コマンド
host.getメソッドを利用します。
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": "extend",
"selectInterfaces": "extend"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
「selectInterfaces」は登録しているIPアドレスを表示させるためセット
マクロ取得 実行例
コマンド(例)
curl -s -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": "extend",
"selectInterfaces": "extend"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
' -H "Content-Type: application/json-rpc" http://localhost/zabbix/api_jsonrpc.php | jq -r -c '.result[] | [.host, .interfaces[].ip, .hostid] | @csv'
出力結果(例)
"linuxserver,"192.168.10.123","10402"
こんな感じの出力結果になります
参考リンク
HOST.GETメソッド
※コチラでメソッドで利用できるパラメータを確認してください。
ありがとうございます
コメント