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 si arresta. Se sono stati configurati trigger per entrambi, potreste ricevere notifiche relative a due host non disponibili, mentre l'unico responsabile era il router.
In questo caso può essere utile impostare una dipendenza tra gli host. Una volta configurata la dipendenza, le notifiche dei dipendenti possono essere omesse e può essere inviata solo la notifica relativa al problema principale.
Sebbene Zabbix non supporti direttamente le dipendenze tra host, queste possono essere definite con un metodo più flessibile: le dipendenze tra trigger. Un trigger può dipendere da uno o più trigger.
Nel nostro semplice esempio, apriamo il modulo di configurazione del trigger del server e impostiamo la dipendenza 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'; di conseguenza, non verranno eseguite azioni dipendenti e non verranno inviate notifiche.
Se sia il server sia il router non sono disponibili e viene impostata una dipendenza tra il trigger "server non disponibile" e il trigger "router non disponibile", Zabbix non eseguirà azioni per il trigger dipendente.
Finché il trigger principale si trova nello stato PROBLEM, i relativi dipendenti potrebbero segnalare valori non attendibili. Pertanto, i trigger dipendenti non verranno rivalutati finché il trigger principale (il router nell'esempio precedente):
- 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 dal valore di un item non coinvolto nel trigger dipendente;
- non viene disabilitato, non dispone di un item disabilitato o di un host con item disabilitati
In tutti i casi menzionati sopra, il trigger dipendente (server) verrà rivalutato solo quando verrà ricevuta una nuova metrica per tale trigger. Ciò significa che il trigger dipendente potrebbe non essere aggiornato immediatamente.
Inoltre:
- Una dipendenza tra trigger può essere aggiunta dal trigger di qualsiasi host al trigger di qualsiasi altro host, purché ciò non comporti una dipendenza circolare.
- Una 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 da solo a un host (o a un altro template).
- Una 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 dell'host che dipende dallo stesso trigger di template da cui dipendeva il trigger originale. 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.
- Non è possibile aggiungere una dipendenza tra trigger da un trigger di host a un trigger di template.
- Una dipendenza tra trigger può essere aggiunta da un prototipo di trigger a un altro prototipo di trigger (all'interno della stessa regola di low-level discovery) o a un trigger reale. Un prototipo di trigger non può dipendere da un prototipo di trigger appartenente a una regola LLD diversa né da un trigger creato a partire da un prototipo di trigger. Un prototipo di trigger dell'host non può dipendere da un trigger di un template.
Configurazione
Per definire una dipendenza:
-
Aprire la scheda Dipendenze nel modulo di configurazione del trigger.
-
Fare clic su Aggiungi nella sezione Dipendenze e selezionare uno o più trigger da cui dipenderà il trigger.

-
Fare clic su Aggiorna.
A questo punto, nell'elenco il trigger indica la relativa dipendenza.

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.