zabbixのイベントログのAPIによる取得について

バージョン 2.2.3

監視データ⇒イベントの結果をAPIで取得したいのですが、
どのような記述をすればよいでしょうか。
時間 ホスト 説明 ステータス 深刻度

既存の動くツールに以下があります。(トリガーIDを取得するAPI)
これをどのように修正すればアラート情報を抜けますでしょうか。

----------------------------------------------------------------------------------------------
#!/usr/bin/python
# coding: UTF-8

import json
import urllib2
import sys
import csv

#ZabbixサーバのIPアクセスURL
zabbixsv = "http://X.X.X.X/zabbix/api_jsonrpc.php"

#リクエストヘッダ
headers = {"Content-Type":"application/json-rpc"}

post_data = json.dumps(
{
"jsonrpc": "2.0",
"method": "trigger.get",
"params": {
"selectGroups": "extend",
"selectHosts": "extend",
"selectItems ": "extend",
"output": "extend",
"selectFunctions": "extend",
"expandData": "true",
"expandDescription": "true",
"expandExpression": "true",
},
"auth":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"id": 1
})

#リクエスト生成
request = urllib2.Request(zabbixsv,post_data,headers)

#リクエストを送信して結果受け取り

contents = urllib2.urlopen(request)

#結果の中身を読み取る

contents_str = contents.read()
contents_dict = json.loads(contents_str)

for host in contents_dict["result"]:
print host["triggerid"],host["expression"]

----------------------------------------------------------------------------------------------

trigger.getをevent.getに変えればいけるのかと
思いましたが、動きませんでした。

Traceback (most recent call last):
File "./event_get.py", line 47, in
contents = urllib2.urlopen(request)
File "/usr/lib64/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib64/python2.7/urllib2.py", line 437, in open
response = meth(req, response)
File "/usr/lib64/python2.7/urllib2.py", line 550, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib64/python2.7/urllib2.py", line 475, in error
return self._call_chain(*args)
File "/usr/lib64/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File "/usr/lib64/python2.7/urllib2.py", line 558, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 500: Internal Server Error

経緯
過去のアラートを全取得し、分析したいため
(膨大な件数があるため、表示件数を増やしてのGUIからの取得は画面が固まってしまうため不可能)

コメント表示オプション

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

結果が大量すぎて500エラーを返してそうに見えるので、
とりあえずパラメータにlimit入れて出力を10件に絞って、
こんな感じに書けばevent.get取得できるのではないかと。

#!/usr/bin/python
# coding: UTF-8

import json
import urllib2
import sys
import csv

#ZabbixサーバのIPアクセスURL
zabbixsv = "http://X.X.X.X/zabbix/api_jsonrpc.php"

#リクエストヘッダ
headers = {"Content-Type":"application/json-rpc"}

post_data = json.dumps(
{
"jsonrpc": "2.0",
"method": "event.get",
"params": {
"output": "extend",
"limit": 10
},
"auth": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"id": 1
})

#リクエスト生成
request = urllib2.Request(zabbixsv,post_data,headers)

#リクエストを送信して結果受け取り

contents = urllib2.urlopen(request)

#結果の中身を読み取る

contents_str = contents.read()
contents_dict = json.loads(contents_str)

for host in contents_dict["result"]:
print host

exit()

event.getがどんなパラメータ使えるかはここ参照して、
色々組み合わせてみてください。
https://www.zabbix.com/documentation/2.2/manual/api/reference/event/get

[追記]
ここのフォーラム書式オプションの<code></code>使い方よくわからんです。
インデント崩れご容赦。