Назад | Перейти на главную страницу

Zabbix автоматически удаляет недоступный хост

Мне нужно автоматически удалить мой недоступный / неработающий хост в zabbix. Все хосты контролируются с помощью активный агент следовательно, автоматическое удаление сетевого обнаружения бесполезно / бесполезно в моем случае.

Я написал небольшой скрипт на Python для удаления / удаления хоста из zabbix с помощью zabbix-api. Однако я хочу достичь следующего:

1: Найти все хосты, если хост недоступен более 2 часов

2: Отметьте их статус и обновите список удаляемого хоста

3: Удалите все эти хосты после 24-часового цикла.

Если в случае, если шаг 2 невозможен, я сейчас очень доволен шагами 1 и 3.

Я не могу найти правильный ответ api zabbix для определения хоста, который не работает или недоступен более часа или xyz времени.

PS: Я упомянул URL1 и URL2 но все равно не повезло.

Я использовал значение триггера для удаления хоста из 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'])] )