Dipendenze dei trigger
Le dipendenze dei trigger possono essere utilizzate per evitare avvisi che non sono correlati alla causa principale.
Vedi tutte le best practice.
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 relative a due host in down, mentre l'unico responsabile era il router.
In questo caso, una qualche 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 dipenda dal trigger corrispondente del router. Con una dipendenza di questo tipo, il trigger del server non cambierà stato finché il trigger da cui dipende si trova nello stato 'PROBLEM' e, di conseguenza, 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 segnalare 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 riceverà una nuova metrica. Ciò 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, collegando tale template a un host verrà creato un trigger di host che dipende dallo stesso trigger di template da cui dipendeva il trigger. Ciò 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 quel router specifico.
- 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 che indicano che l'host, Router1 e Router2 sono 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 questa verifica in modo ricorsivo. Se Router1 o Router2 non sono raggiungibili, il trigger dell'host non verrà aggiornato.