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

2024-06-28 19:11:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python脚本和pyzabbix模块通过zabbixapi获取所有触发器。使用触发器。获取()函数获取所有触发器列表。 这个脚本可以很好地与其他函数一起工作,比如主机.get()等等,但是这次失败了,给我500个内部服务器错误。但当我为它运行的同一个对象指定某些参数时。在

使用为指定的某些参数运行它触发器。获取()方法那么它就可以工作了,但是我想列出所有触发器,而不使用该方法的任何参数触发器.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

错误

^{pr2}$

Tags: 模块方法函数from脚本参数get错误
1条回答
网友
1楼 · 发布于 2024-06-28 19:11:01

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

新的zabbix系统有2个主机和一些附加的默认模板(与api 3.4和4.0一起使用):

>>> from zabbix.api import ZabbixAPI
>>> zabbixServer    = 'http://localhost/zabbix/'
>>> zabbixUser      = 'admin'
>>> zabbixPass      = 'zabbix'

>>> zapi = ZabbixAPI(url=zabbixServer, user=zabbixUser, password=zabbixPass)
>>> triggers = zapi.trigger.get()
>>> len(triggers)
482
>>> sys.getsizeof(triggers)
4280

500内部服务器错误可能是由过度响应引起的,例如,结果大于php的memory_limit。 您应该首先检查httpd的error.log中的以下内容:

^{pr2}$

如果是这样,您应该相应地调整/etc/httpd/conf.d/zabbix.conf(Centos的默认设置),然后重新启动httpd并重试。在

相关问题 更多 >