【问题标题】:Using python script to get all triggers via Zabbix API使用 python 脚本通过 Zabbix API 获取所有触发器
【发布时间】:2019-01-02 11:36:02
【问题描述】:

我正在使用带有 pyzabbix 模块的 Python 脚本通过 Zabbix API 获取所有触发器。使用 trigger.get() 函数获取所有触发器列表。 该脚本适用于所有其他功能,如 host.get() 等。但对于这个,它失败给我 500 Internal Server Error。但是当我为其指定某些对象参数时,它会运行。

使用为 trigger.get() 方法指定的一些参数运行它然后它可以工作,但我想列出所有触发器而不使用方法 triggers.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

【问题讨论】:

    标签: python zabbix


    【解决方案1】:

    如您所说,不带参数的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 Internal Server 错误可能是由过度响应引起的,例如结果大于 php 的memory_limit。 您应该首先检查您的 httpd 的 error.log 是否有类似的内容:

    PHP Fatal error:  Allowed memory size of xxxxxxx bytes exhausted
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      • 2021-05-26
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多