使用python脚本通过Zabbix API获取所有触发器

使用python脚本通过Zabbix API获取所有触发器,python,zabbix,Python,Zabbix,我使用Python脚本和pyzabbix模块通过Zabbix API获取所有触发器。使用trigger.get()函数获取所有触发器列表。 该脚本可以与所有其他函数(如host.get()等)配合使用,但对于这个脚本,它失败,并给出500个内部服务器错误。但当我为同一个对象指定某些对象参数时,它会运行 使用为trigger.get()方法指定的一些参数运行它,然后它就工作了,但我想列出所有触发器,而不使用trigger.get()方法的任何参数。 我的代码: from pyzabbix impo

我使用Python脚本和pyzabbix模块通过Zabbix API获取所有触发器。使用trigger.get()函数获取所有触发器列表。 该脚本可以与所有其他函数(如host.get()等)配合使用,但对于这个脚本,它失败,并给出500个内部服务器错误。但当我为同一个对象指定某些对象参数时,它会运行

使用为trigger.get()方法指定的一些参数运行它,然后它就工作了,但我想列出所有触发器,而不使用trigger.get()方法的任何参数。

我的代码:

from pyzabbix import ZabbixAPI


zapi = ZabbixAPI("http://Zabbix-Server-IP/zabbix")

zapi.login("username","password")

trigger=zapi.trigger.get()  #Method to get all triggers from zabbix
错误

Traceback (most recent call last):
  File "zabbix.py", line 69, in <module>
    get_all_zabbix_host()
  File "zabbix.py", line 16, in get_all_zabbix_host
    trigger=zapi.trigger.get()
  File "/usr/lib/python2.7/site-packages/pyzabbix/__init__.py", line 157, in fn
    args or kwargs
  File "/usr/lib/python2.7/site-packages/pyzabbix/__init__.py", line 109, in do_request
    response.raise_for_status()
  File "/usr/lib/python2.7/site-packages/requests/models.py", line 928, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url:
 http://Zabbix-Server-IP/zabbix/api_jsonrpc.php
回溯(最近一次呼叫最后一次):
文件“zabbix.py”,第69行,在
get_all_zabbix_host()
get_all_zabbix_主机中第16行的文件“zabbix.py”
trigger=zapi.trigger.get()
fn中的文件“/usr/lib/python2.7/site packages/pyzabbix/_init__.py”,第157行
args或kwargs
文件“/usr/lib/python2.7/site packages/pyzabbix/_init__.py”,第109行,在do_请求中
响应。针对_状态()提出_
文件“/usr/lib/python2.7/site packages/requests/models.py”,第928行,处于raise_for_状态
引发HTTPError(http\u error\u msg,response=self)
requests.exceptions.HTTPError:500服务器错误:url的内部服务器错误:
http://Zabbix-Server-IP/zabbix/api_jsonrpc.php

正如您所说,不带参数的
trigger.get()
调用应该返回所有已定义的触发器(主机和模板)

一个新的zabbix系统,具有2台主机和默认模板,并添加了一些内容(适用于api 3.4和4.0):

500内部服务器错误可能是由过度响应引起的,例如,结果大于php的
内存限制。
您应该首先检查您的httpd的
错误。日志
中是否有以下内容:

PHP Fatal error:  Allowed memory size of xxxxxxx bytes exhausted
如果是这种情况,您应该相应地调整
/etc/httpd/conf.d/zabbix.conf
(Centos的默认设置),然后重新启动httpd并重试

PHP Fatal error:  Allowed memory size of xxxxxxx bytes exhausted