首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python脚本通过Zabbix API获取所有触发器

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

Stack Overflow用户
提问于 2019-01-02 11:36:02
回答 1查看 2.9K关注 0票数 0

我使用Python和pyzabbix模块通过Zabbix获取所有触发器。使用trigger.get()函数获取所有触发器列表。该脚本可以很好地处理所有其他函数,如host.get()等。但是对于这个函数,它失败了,给了我500个内部服务器错误。但是,当我为相同的对象指定特定的对象参数时,它将运行。

使用为trigger.get()方法指定的一些参数运行它,但是我想列出所有触发器,而不使用方法triggers.get().的任何参数

我的代码:

代码语言:javascript
复制
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

误差

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-07 22:07:06

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

一个带有2台主机和一些新增的默认模板(使用api 3.4和4.0)的新的zabbix系统:

代码语言:javascript
复制
>>> 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,以获得如下内容:

代码语言:javascript
复制
PHP Fatal error:  Allowed memory size of xxxxxxx bytes exhausted

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54005622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档