Dépendances de déclencheurs
Les dépendances de déclencheurs peuvent être utilisées pour éviter les alertes qui ne sont pas liées à la cause racine.
Voir toutes les bonnes pratiques.
Vue d’ensemble
Parfois, la disponibilité d’un hôte dépend d’un autre. Un serveur situé derrière un routeur devient inaccessible si le routeur tombe en panne. Si des déclencheurs sont configurés pour les deux, vous pouvez recevoir des notifications concernant deux hôtes indisponibles, alors que seul le routeur était en cause.
C’est dans ce cas qu’une dépendance entre hôtes peut être utile. Lorsqu’une dépendance est définie, les notifications concernant les éléments dépendants peuvent être supprimées et seule la notification relative au problème racine peut être envoyée.
Bien que Zabbix ne prenne pas directement en charge les dépendances entre hôtes, celles-ci peuvent être définies à l’aide d’une méthode plus flexible : les dépendances entre déclencheurs. Un déclencheur peut dépendre d’un ou de plusieurs autres déclencheurs.
Dans notre exemple simple, nous ouvrons le formulaire de configuration du déclencheur du serveur et indiquons qu’il dépend du déclencheur correspondant du routeur. Avec cette dépendance, l’état du déclencheur du serveur ne changera pas tant que le déclencheur dont il dépend sera à l’état « PROBLEM » ; aucune action dépendante ne sera donc exécutée et aucune notification ne sera envoyée.
Si le serveur et le routeur sont tous deux indisponibles et qu’une dépendance est définie entre le déclencheur « serveur indisponible » et le déclencheur « routeur indisponible », Zabbix n’exécutera pas les actions associées au déclencheur dépendant.
Tant que le déclencheur parent est à l’état PROBLEM, les éléments dépendants peuvent signaler des valeurs qui ne sont pas fiables. Par conséquent, les déclencheurs dépendants ne seront pas réévalués tant que le déclencheur parent (le routeur dans l’exemple ci-dessus) :
- ne repasse pas de l’état « PROBLEM » à l’état « OK » ;
- ne passe pas de l’état « PROBLEM » à l’état « UNKNOWN » ;
- n’est pas fermé manuellement, par corrélation ou à l’aide des fonctions date et heure et/ou nodata() ;
- n’est pas résolu par la valeur d’un élément qui n’est pas utilisé dans le déclencheur dépendant ;
- n’est pas désactivé, ne possède pas d’élément désactivé ou n’appartient pas à un hôte dont l’élément est désactivé.
Dans tous les cas mentionnés ci-dessus, le déclencheur dépendant (du serveur) ne sera réévalué que lorsqu’une nouvelle métrique le concernant sera reçue. Cela signifie que le déclencheur dépendant peut ne pas être mis à jour immédiatement.
De plus :
- Une dépendance entre déclencheurs peut être ajoutée entre le déclencheur de n’importe quel hôte et celui de n’importe quel autre hôte, à condition que cela n’entraîne pas de dépendance circulaire.
- Une dépendance entre déclencheurs peut être ajoutée d’un modèle à un autre. Si un déclencheur du modèle A dépend d’un déclencheur du modèle B, le modèle A ne peut être lié à un hôte (ou à un autre modèle) qu’avec le modèle B, tandis que le modèle B peut être lié seul à un hôte (ou à un autre modèle).
- Une dépendance entre déclencheurs peut être ajoutée d’un déclencheur de modèle à un déclencheur d’hôte. Dans ce cas, le fait de lier ce modèle à un hôte créera un déclencheur d’hôte qui dépend du même modèle de déclencheur dont dépendait le déclencheur initial. Cela vous permet, par exemple, de disposer d’un modèle dans lequel certains déclencheurs dépendent des déclencheurs du routeur (hôte). Tous les hôtes liés à ce modèle dépendront de ce routeur spécifique.
- Une dépendance entre déclencheurs ne peut pas être ajoutée d’un déclencheur d’hôte à un déclencheur de modèle.
- Une dépendance entre déclencheurs peut être ajoutée d’un prototype de déclencheur à un autre prototype de déclencheur (au sein de la même règle de découverte de bas niveau) ou à un déclencheur réel. Un prototype de déclencheur ne peut pas dépendre d’un prototype de déclencheur provenant d’une autre règle LLD ni d’un déclencheur créé à partir d’un prototype de déclencheur. Un prototype de déclencheur d’hôte ne peut pas dépendre d’un déclencheur provenant d’un modèle.
Configuration
Pour définir une dépendance :
-
Ouvrez l’onglet Dépendances dans le formulaire de configuration du déclencheur.
-
Cliquez sur Ajouter dans la section Dépendances et sélectionnez un ou plusieurs déclencheurs dont dépendra le déclencheur.

-
Cliquez sur Mettre à jour.
Le déclencheur indique désormais sa dépendance dans la liste.

Exemple de plusieurs dépendances
Par exemple, l'hôte se trouve derrière Router2 et Router2 se trouve derrière Router1.
Zabbix - Router1 - Router2 - hôte
Si Router1 est en panne, alors, évidemment, l'hôte et Router2 sont également injoignables, mais recevoir trois notifications indiquant que l'hôte, Router1 et Router2 sont tous en panne est excessif.
Dans ce cas, nous définissons donc deux dépendances :
le déclencheur 'hôte en panne' dépend du déclencheur 'Router2 en panne'
le déclencheur 'Router2 en panne' dépend du déclencheur 'Router1 en panne'
Avant de modifier l'état du déclencheur 'hôte en panne', Zabbix vérifiera les dépendances de déclencheur correspondantes.
Si de telles dépendances sont trouvées et que l'un de ces déclencheurs est dans l'état Problem, alors l'état du déclencheur ne sera pas modifié, les actions ne seront pas exécutées et aucune notification ne sera envoyée.
Zabbix effectue cette vérification de manière récursive. Si Router1 ou Router2 est injoignable, le déclencheur de l'hôte ne sera pas mis à jour.