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 giù. Con trigger configurati per entrambi, potresti ricevere notifiche su due host non disponibili, mentre in realtà il responsabile è solo il router.

È qui che una qualche dipendenza tra host può risultare utile. Con una dipendenza impostata, le notifiche dei dipendenti possono essere trattenute e può essere inviata solo la notifica del problema principale.

Sebbene Zabbix non supporti direttamente le dipendenze tra host, esse possono essere definite con un altro metodo, più flessibile: le dipendenze tra trigger. Un trigger può avere uno o più trigger da cui dipende.

Quindi, nel nostro semplice esempio, apriamo il modulo di configurazione del trigger del server e impostiamo che dipenda dal rispettivo trigger del router. Con questa dipendenza, il trigger del server non cambierà stato finché il trigger da cui dipende si trova nello stato 'PROBLEM'; pertanto non verranno eseguite azioni dipendenti e non verranno inviate notifiche.

Se sia il server sia il router non sono disponibili ed è presente una dipendenza, Zabbix non eseguirà azioni per il trigger dipendente.

Mentre il trigger padre si trova nello stato PROBLEM, i suoi dipendenti possono segnalare valori non 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 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, oppure non 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. 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é ciò non comporti 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) 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 template di trigger da cui il trigger dipendeva. 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 prototipo di trigger a un altro prototipo di trigger (all'interno della stessa regola di low-level discovery) oppure a un trigger reale. Un prototipo di trigger non può dipendere da un prototipo di trigger di una regola LLD diversa né da un trigger creato da un prototipo di trigger. Un prototipo di trigger di host non può dipendere da un trigger di un template.

Configurazione

Per definire una dipendenza, aprire la scheda Dependencies nel modulo di configurazione del trigger. Fare clic su Add nel blocco 'Dependencies' e selezionare uno o più trigger da cui il trigger dipenderà.

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

Esempio di più dipendenze

Per esempio, l'host si trova dietro Router2 e Router2 si trova dietro Router1.

Zabbix - Router1 - Router2 - Host

Se Router1 non è raggiungibile, allora ovviamente anche l'host e Router2 non sono raggiungibili, tuttavia ricevere tre notifiche relative al fatto che l'host, Router1 e Router2 siano tutti non raggiungibili è 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 controllerà le corrispondenti dipendenze del trigger. Se ne vengono trovate e uno di questi trigger si trova nello stato Problem, allora lo stato del trigger non verrà modificato, le azioni non verranno eseguite e non verranno inviate notifiche.

Zabbix esegue questo controllo in modo ricorsivo. Se Router1 o Router2 non sono raggiungibili, il trigger dell'host non verrà aggiornato.