3 Dipendenze dei trigger
Panoramica
A volte la disponibilità di un host dipende da un altro. Un server che si trova dietro un router diventerà irraggiungibile se il router va in down. Con trigger configurati per entrambi, potresti ricevere notifiche su due host in down, mentre l'unico responsabile era il router.
In questo caso, una dipendenza tra host può essere utile. Con la dipendenza impostata, le notifiche dei dipendenti potrebbero essere trattenute e inviata solo la notifica sul problema principale.
Sebbene Zabbix non supporti direttamente le dipendenze tra host, queste possono essere definite con un altro metodo, più flessibile: le dipendenze tra trigger. Un trigger può avere uno o più trigger da cui dipende.
Nel nostro semplice esempio, apriamo il modulo di configurazione del trigger del server e impostiamo che dipende dal trigger corrispondente del router. Con questa dipendenza, il trigger del server non cambierà stato finché il trigger da cui dipende si trova nello stato 'PROBLEM' - e quindi non verranno eseguite azioni dipendenti e non verranno inviate notifiche.
Se sia il server sia il router sono in down, e viene impostata una dipendenza tra il trigger "server down" e il trigger "router down", Zabbix non eseguirà azioni per il trigger dipendente.
Mentre il trigger padre si trova nello stato PROBLEM, i suoi dipendenti possono riportare valori che non sono affidabili. Pertanto i trigger dipendenti non verranno rivalutati finché il trigger padre (il router nell'esempio sopra):
- non torna dallo stato 'PROBLEM' allo stato 'OK';
- non cambia il proprio stato da 'PROBLEM' a 'UNKNOWN';
- non viene chiuso manualmente, tramite correlazione o con l'aiuto delle funzioni date and time e/o nodata();
- non viene risolto da un valore di un item non coinvolto nel trigger dipendente;
- non viene disabilitato, ha un item disabilitato o un host dell'item disabilitato
In tutti i casi sopra menzionati, il trigger dipendente (server) verrà rivalutato solo quando verrà ricevuta una nuova metrica per esso. Questo significa che il trigger dipendente potrebbe non essere aggiornato immediatamente.
Inoltre:
- La dipendenza tra trigger può essere aggiunta da qualsiasi trigger di host a qualsiasi altro trigger di host, purché non generi una dipendenza circolare.
- La dipendenza tra trigger può essere aggiunta da un template a un altro. Se un trigger del template A dipende da un trigger del template B, il template A può essere collegato a un host (o a un altro template) solo insieme al template B, mentre il template B può essere collegato a un host (o a un altro template) anche da solo.
- La dipendenza tra trigger può essere aggiunta da un trigger di template a un trigger di host. In questo caso, collegare tale template a un host creerà un trigger di host che dipende dallo stesso trigger di template da cui dipendeva il trigger. Questo consente, ad esempio, di avere un template in cui alcuni trigger dipendono dai trigger del router (host). Tutti gli host collegati a questo template dipenderanno da quello specifico router.
- La dipendenza tra trigger non può essere aggiunta da un trigger di host a un trigger di template.
- La dipendenza tra trigger può essere aggiunta da un trigger prototype a un altro trigger prototype (all'interno della stessa regola di low-level discovery) oppure a un trigger reale. Un trigger prototype non può dipendere da un trigger prototype di una regola LLD diversa né da un trigger creato da un trigger prototype. Un trigger prototype di host non può dipendere da un trigger di un template.
Configurazione
Per definire una dipendenza:
-
Apri la scheda Dependencies nel modulo di configurazione del trigger.
-
Fai clic su Add nella sezione Dependencies e seleziona uno o più trigger da cui il trigger dipenderà.

-
Fai clic su Update.
Ora il trigger mostra l'indicazione della sua dipendenza nell'elenco.

Esempio di più dipendenze
Ad esempio, l'host si trova dietro Router2 e Router2 si trova dietro Router1.
Zabbix - Router1 - Router2 - Host
Se Router1 è inattivo, allora ovviamente anche l'host e Router2 non sono raggiungibili, ma ricevere tre notifiche sul fatto che l'host, Router1 e Router2 siano tutti inattivi è eccessivo.
Quindi in questo caso definiamo due dipendenze:
il trigger 'Host is down' dipende dal trigger 'Router2 is down'
il trigger 'Router2 is down' dipende dal trigger 'Router1 is down'
Prima di modificare lo stato del trigger 'Host is down', Zabbix verificherà le dipendenze dei trigger corrispondenti. Se ne vengono trovate e uno di quei trigger è nello stato 'Problem', lo stato del trigger non verrà modificato, le azioni non verranno eseguite e non verrà inviata alcuna notifica.
Zabbix esegue questo controllo in modo ricorsivo. Se Router1 o Router2 non sono raggiungibili, il trigger dell'host non verrà aggiornato.