Zabbix API

いつもお世話になっています。

zabbix(1.8.3) APIの機能を使用してイベントのコメントを入力しようと考えており、perlのスクリプトで動作確認を行っています。

以下のようなjsonデータをzabbixにPOSTしています。
jsonデータに設定しているeventidは、event.getメソッドで取得したものを使用しています。

$msg=<<'EOF';
{
"jsonrpc":"2.0",
"method":"event.acknowledge",
"params":{
"eventids":["102572","102573"],
"message":"update message"
},
"id":2,
"auth":"b8f00f4f23246125b75c148e1aab1c85"
}
EOF

実行結果は、以下のデータが返ってきており、コメントは入力されていません。
{"jsonrpc":"2.0","result":{"eventids":[]},"id":2}

event.acknowledgeの使用方法が分かりましたら教えていただけないでしょうか?

よろしくお願いいたします。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー tthogho1 の写真

メモになってしまいますが。。
php/api/classes/class.cevent.php
の以下の部分を変更してみたところ動作しました。

668 public static function acknowledge($events_data){
669 global $USER_DETAILS;
670
671 if(empty($events_data['events'])) return array('eventids' => array());
672
673 $events = isset($events_data['events']) ? zbx_toArray($events_data['events']) : array();
674 $eventids = zbx_objectValues($events, 'eventid');
675 $eventids = array_combine($eventids, $eventids);
676
の671から675をコメントアウトして以下に置き換え。
$eventids=$events_data['eventids']

$events_data['events']ではなく、$events_data['eventids']
なのか、呼びだし方の形式なのか不明。

ユーザー tthogho1 の写真

php/api/classes/class.cevent.php
は、apiだけでなく、ブラウザからのコメント追加も使用するため
変更は不可。

呼び出しの形式を以下にして動作した。
ただし、zabbix1.8.4rc1ではコードが変更されているため動作しないはず。
{
"jsonrpc":"2.0",
"method":"event.acknowledge",
"params":{
"events":[{
"eventid":"<イベントのid>"
}],
"message":"<追加するメッセージ>"
},
"id":"2",
"auth":"<認証用のid>"
}