Zabbix auto remove host inacessível

2

Eu preciso excluir automaticamente meu host inacessível / inativo no zabbix. Todos os hosts são monitorados usando agente ativo , portanto, a exclusão automática de descoberta de rede não é útil / útil no meu caso.

Eu escrevi um pequeno script python para excluir / remover o host do zabbix usando o zabbix-api. No entanto, o que eu quero alcançar é o seguinte:

1: Localizar todos os hosts se o host estiver inacessível por mais de 2 horas

2: Marque o status e atualize a lista a ser excluída host

3: Exclua todos esses hosts após o ciclo de 24 horas.

Se no caso o passo 2 não for possível, estou muito confortável com os passos 1 e 3 a partir de agora.

Não consigo encontrar a resposta api correta do zabbix para identificar o host que está inativo ou inacessível por mais de uma hora ou xyz.

PS: referi-me a URL1 e URL2 mas ainda sem sorte.

    
por user355522 20.05.2016 / 09:02

1 resposta

1

Eu usei o valor de trigger para remover o host do zabbix, e checck se o código abaixo funcionar para você também:

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'])] )
    
por 20.05.2016 / 13:28