Zabbix 自动删除无法访问的主机

Zabbix 自动删除无法访问的主机

我需要在 zabbix 中自动删除无法访问/关闭的主机。所有主机都使用以下方式进行监控活性剂因此,对我来说,网络发现自动删除并不方便/有用。

我编写了一个小型 Python 脚本,使用 zabbix-api 从 zabbix 中删除/移除主机。但是我想要实现的功能如下:

1:如果主机无法访问超过 2 小时,则查找所有主机

2:标记其状态并更新要删除的主机列表

三:24 小时循环后删除所有这些主机。

如果步骤 2 不可行,那么我现在非常乐意执行步骤 1 和步骤 3。

我无法找到正确的 zabbix api 响应来识别处于宕机状态或无法访问超过一小时或 xyz 时间的主机。

附言:我曾提到 URL1URL2但还是没有运气。

答案1

我使用触发值从 zabbix 中删除主机,检查下面的代码是否也适合您:

from zabbix_api import ZabbixAPI, Already_Exists
z = ZabbixAPI(server="https://zabbix.example.com/zabbix")
z.login("exampleuser", "exampleuser")
for trigger in z.trigger.get({"output": [ "triggerid", "description", "priority" ], "filter": { "value": 1 }, "sortfield": "priority", "sortorder": "DESC"}):
    if trigger["description"] == 'Zabbix agent on {HOST.NAME} is unreachable for 5 minutes':
        trigmsg = z.trigger.get({"triggerids": trigger["triggerid"], "selectHosts": "extend"})
        for tm in trigmsg:
            for l in tm['hosts']:
                print l['name'], l['hostid']
                print "Will kill host " + l['hostid'] + " " + l['host'] + trigger["description"]
                z.host.delete( [int(l['hostid'])] )

相关内容