webシナリオ監視結果のAPIからの取得方法
お世話になります。
Zabbix2.2.1でwebシナリオ監視を利用しております。
APIからこの監視結果を取得したいのですが、想定しているメソッドの”httptest.get”からでは
最新の時刻と結果が取得できないように見受けられます。
確認に使ったパラメータは以下の通りです。
curl -d '{"jsonrpc":"2.0","auth":"************","method":"httptest.get","params":{"output":"extend","selectSteps": "extend"},"id":1}' -H "Content-Type: application/json-rpc" http://*.*.*.*/zabbix/api_jsonrpc.php
Item.getメソッドでもwebシナリオの結果は取得できないように見受けられるので
他に取得方法等はございますでしょうか?
よろしくお願いいたします。
TNK - 投稿数: 4768
まず、httptest.getは、Web監視の設定を取得するメソッドであっ
て、Web監視の結果を取得するものではないと思います。
アイテムとして取得した最新値を参照するのであれば、item.getで
extendオプションを設定して取得して、lastvalueを見ればよいと
思うのですが、実際にやってみたところ、item.getではWeb監視の
結果のアイテムに関しては、APIから取得できませんでした。
何らかの方法があるのかもしれませんが、現時点の調査状況として
は、取得できていない状況です。
tako8 - 投稿数: 5
TNK様
ご回答ありがとうございました。
>アイテムとして取得した最新値を参照するのであれば、item.getで
>extendオプションを設定して取得して、lastvalueを見ればよいと
>思うのですが、実際にやってみたところ、item.getではWeb監視の
>結果のアイテムに関しては、APIから取得できませんでした。
やはりそうでしたか。
わざわざ確認いただき、ありがとうございます。
>何らかの方法があるのかもしれませんが、現時点の調査状況として
>は、取得できていない状況です。
APIでの取得が難しい場合、データベースから直接SQLで取得することは
可能でしょうか?
Koji Okano - 投稿数: 6
ZABBIX 3.0.8での検証ですが、
history.getを使って出来るようです。
以下は最新の1件(降順"DESC"、limit=1)を取得する際のパラメータになります。
'jsonrpc' => '2.0',
'method' => 'history.get',
'id' => 1,
'auth' => user.loginで得たZABBIX認証キー,
'params' => array(
'output' => 'extend',
'itemids' => グラフの"itemids[]=の右辺より取得,
'sortfield' => 'clock',
'sortorder' => 'DESC',
'limit' => '1'),
アイテムIDは[監視データ]→[最新データ]からグラフを選択すると
Webについても各監視項目(HTTPステータスコードやシナリオの返り値、ダウンロード速度等)
に対してアイテムIDが振られているのがURLから分かります。
それを"itemids"に充ててあげればいいようです。