9 Maintenance

Aperçu

Vous pouvez définir des périodes de maintenance pour les hôtes et les groupes d’hôtes dans Zabbix.

En outre, il est possible de définir une maintenance uniquement pour un seul déclencheur (ou un sous-ensemble de déclencheurs) en spécifiant des tags de déclencheur. Dans ce cas, la maintenance sera activée uniquement pour ces déclencheurs ; tous les autres déclencheurs de l’hôte ou du groupe d’hôtes ne seront pas en maintenance.

Il existe deux types de maintenance : avec collecte de données et sans collecte de données.

Pendant une maintenance « avec collecte de données », les déclencheurs sont traités comme d’habitude et des événements sont créés si nécessaire. Cependant, les escalades de problèmes sont mises en pause pour les hôtes/déclencheurs en maintenance, si l’option Pause operations for suppressed problems est cochée dans la configuration de l’action. Dans ce cas, les étapes d’escalade pouvant inclure l’envoi de notifications ou des commandes distantes seront ignorées tant que dure la période de maintenance. Notez que les opérations de résolution et de mise à jour des problèmes ne sont pas supprimées pendant la maintenance, seules les escalades le sont.

Par exemple, si des étapes d’escalade sont planifiées à 0, 30 et 60 minutes après le début d’un problème, et qu’il y a une maintenance d’une demi-heure allant de 10 à 40 minutes après l’apparition d’un problème réel, les deuxième et troisième étapes seront exécutées une demi-heure plus tard, c’est-à-dire à 60 minutes et 90 minutes (à condition que le problème existe toujours). De même, si un problème survient pendant la maintenance, l’escalade commencera après la maintenance.

Pour recevoir normalement les notifications de problème pendant la maintenance (sans délai), vous devez décocher l’option Pause operations for suppressed problems dans la configuration de l’action.

Si au moins un hôte (utilisé dans l’expression du déclencheur) n’est pas en mode maintenance, Zabbix enverra une notification de problème.

Le serveur Zabbix doit être en cours d’exécution pendant la maintenance. Les maintenances sont recalculées chaque minute ou dès que le cache de configuration est rechargé si des modifications sont apportées à la période de maintenance.

Les processus timer vérifient si le statut de l’hôte doit être changé vers/depuis la maintenance à 0 seconde de chaque minute. De plus, chaque seconde, le processus timer vérifie si des maintenances doivent être démarrées/arrêtées selon qu’il y a des modifications dans les [périodes de maintenance] après la mise à jour de la configuration. Ainsi, la vitesse de démarrage/arrêt des périodes de maintenance dépend de l’intervalle de mise à jour de la configuration (10 secondes par défaut). Notez que les modifications de période de maintenance n’incluent pas les paramètres Active since/Active till. De plus, si un hôte/groupe d’hôtes est ajouté à une période de maintenance active existante, les modifications ne seront activées par le processus timer qu’au début de la minute suivante.

Notez que lorsqu’un hôte entre en maintenance, les processus timer du serveur Zabbix liront tous les problèmes ouverts pour vérifier s’il est nécessaire de les supprimer. Cela peut avoir un impact sur les performances s’il y a de nombreux problèmes ouverts. Le serveur Zabbix lira également tous les problèmes ouverts au démarrage, même si aucune maintenance n’est configurée à ce moment-là.

Notez que le serveur Zabbix (ou le proxy) collecte toujours les données quel que soit le type de maintenance (y compris la maintenance « sans données »). Les données sont ensuite ignorées par le serveur si l’option « sans collecte de données » est définie.

Lorsque la maintenance « sans données » se termine, les déclencheurs utilisant la fonction nodata() ne se déclencheront pas avant la prochaine vérification pendant la période qu’ils surveillent.

Si un élément journal est ajouté alors qu’un hôte est en maintenance et que la maintenance se termine, seules les nouvelles entrées du fichier journal depuis la fin de la maintenance seront collectées.

Si une valeur horodatée est envoyée pour un hôte qui est dans un type de maintenance « sans données » (par exemple en utilisant Zabbix sender), cette valeur sera rejetée ; toutefois, il est possible d’envoyer une valeur horodatée pour une période de maintenance expirée et elle sera acceptée.

Si la période de maintenance, les hôtes, les groupes ou les tags sont modifiés par l’utilisateur, les changements ne prendront effet qu’après la synchronisation du cache de configuration.

Configuration

Pour configurer une période de maintenance :

  1. Allez dans : Data collection > Maintenance.
  2. Cliquez sur Create maintenance period (ou sur le nom d’une période de maintenance existante).
  3. Saisissez les paramètres de maintenance dans le formulaire.

Tous les champs de saisie obligatoires sont marqués d’un astérisque rouge.

Parameter Description
Name Nom de la période de maintenance.
Maintenance type Deux types de maintenance peuvent être définis :
With data collection - les données seront collectées par le serveur pendant la maintenance, les déclencheurs seront traités ;
No data collection - les données ne seront pas collectées par le serveur pendant la maintenance.
Voir Effect of maintenance periods pour savoir comment chaque type affecte le rapport de disponibilité.
Active since La date et l’heure à partir desquelles l’exécution des périodes de maintenance devient active.
Remarque : définir uniquement cette heure n’active pas une période de maintenance ; les périodes de maintenance doivent être configurées dans Periods (voir ci-dessous).
Active till La date et l’heure auxquelles l’exécution des périodes de maintenance cesse d’être active.
Periods Ce bloc vous permet de définir les jours et heures exacts auxquels la maintenance a lieu. Un clic sur ouvre une fenêtre contextuelle avec un formulaire flexible Maintenance period dans lequel vous pouvez définir le calendrier de maintenance. Voir Maintenance periods pour une description détaillée.
Host groups Sélectionnez les groupes d’hôtes pour lesquels la maintenance sera activée. La maintenance sera activée pour tous les hôtes du ou des groupes d’hôtes spécifiés. Ce champ prend en charge l’autocomplétion ; lorsque vous commencez à y saisir du texte, une liste déroulante de tous les groupes d’hôtes disponibles s’affiche.
La spécification d’un groupe d’hôtes parent sélectionne implicitement tous les groupes d’hôtes imbriqués. Ainsi, la maintenance sera également activée sur les hôtes des groupes imbriqués.
Hosts Sélectionnez les hôtes pour lesquels la maintenance sera activée. Ce champ prend en charge l’autocomplétion ; lorsque vous commencez à y saisir du texte, une liste déroulante de tous les hôtes disponibles s’affiche.
Tags Spécifiez des tags pour supprimer les problèmes avec des tags correspondants sur les hôtes en maintenance.
Plusieurs conditions peuvent être définies. La correspondance des noms de tags est toujours sensible à la casse.

Deux opérateurs sont disponibles pour chaque condition :
Contains - inclure les noms de tags spécifiés lorsque les valeurs des tags contiennent la chaîne saisie (correspondance de sous-chaîne, sensible à la casse) ;
Equals - inclure les noms et valeurs de tags spécifiés (sensible à la casse).

Deux types de calcul sont disponibles pour les conditions :
And/Or - toutes les conditions doivent être remplies, les conditions ayant le même nom de tag seront regroupées par la condition Or ;
Or - il suffit qu’une seule condition soit remplie.

Les tags ne peuvent être spécifiés que si le mode With data collection est sélectionné.
Description Description de la période de maintenance.
Périodes de maintenance

La fenêtre de période de maintenance permet de planifier une maintenance récurrente ou ponctuelle. Le formulaire est dynamique et les champs disponibles changent en fonction du Type de période sélectionné.

Type de période Description
Une seule fois Configurez une période de maintenance ponctuelle :
Date - date et heure de la période de maintenance ;
Durée de la période de maintenance - durée pendant laquelle la maintenance sera active.
Quotidienne Configurez une période de maintenance quotidienne :
Tous les X jour(s) - fréquence de la maintenance (1 - (par défaut) tous les jours, 2 - tous les deux jours, etc.) ;
À (heure:minute) - heure de la journée à laquelle la maintenance commence ;
Durée de la période de maintenance - durée pendant laquelle la maintenance sera active.

Lorsque le paramètre Tous les X jour(s) est supérieur à "1", le jour de départ est le jour auquel correspond l’heure Actif depuis. Exemples :
- si Actif depuis est défini sur "2021-01-01 12:00", Tous les X jour(s) est défini sur "2", et À (heure:minute) est défini sur "23:00", alors la première période de maintenance commencera le 1er janvier à 23:00, tandis que la deuxième période de maintenance commencera le 3 janvier à 23:00 ;
- si Actif depuis est défini sur "2021-01-01 12:00", Tous les X jour(s) est défini sur "2", et À (heure:minute) est défini sur "01:00", alors la première période de maintenance commencera le 3 janvier à 01:00, tandis que la deuxième période de maintenance commencera le 5 janvier à 01:00.
Hebdomadaire Configurez une période de maintenance hebdomadaire :
Toutes les X semaine(s) - fréquence de la maintenance (1 - (par défaut) chaque semaine, 2 - toutes les deux semaines, etc.) ;
Jour de la semaine - jour auquel la maintenance doit avoir lieu ;
À (heure:minute) - heure de la journée à laquelle la maintenance commence ;
Durée de la période de maintenance - durée pendant laquelle la maintenance sera active.

Lorsque le paramètre Toutes les X semaine(s) est supérieur à "1", la semaine de départ est la semaine à laquelle correspond l’heure Actif depuis. Pour des exemples, voir la description du paramètre Quotidienne ci-dessus.
Mensuelle Configurez une période de maintenance mensuelle :
Mois - sélectionnez tous les mois durant lesquels la maintenance régulière est effectuée ;
Date : Jour du mois - sélectionnez cette option si la maintenance doit avoir lieu à la même date chaque mois (par exemple, chaque 1er jour du mois), puis sélectionnez le jour requis dans le champ Jour du mois qui apparaît ;
Date : Jour de la semaine - sélectionnez cette option si la maintenance doit avoir lieu uniquement certains jours (par exemple, chaque premier lundi du mois), puis sélectionnez (dans la liste déroulante) la semaine du mois requise (première, deuxième, troisième, quatrième ou dernière), puis cochez les cases correspondant au(x) jour(s) de maintenance ;
À (heure:minute) - heure de la journée à laquelle la maintenance commence ;
Durée de la période de maintenance - durée pendant laquelle la maintenance sera active.

Lors de la création d'une période de maintenance, le fuseau horaire de l'utilisateur qui la crée est utilisé. Cependant, lorsque des périodes de maintenance récurrentes (Quotidiennes, Hebdomadaires, Mensuelles) sont planifiées, le fuseau horaire du serveur Zabbix est utilisé. Afin de garantir un comportement prévisible des périodes de maintenance récurrentes, il est nécessaire d'utiliser un fuseau horaire commun pour toutes les parties de Zabbix.

Une fois terminé, appuyez sur Add pour ajouter la période de maintenance au bloc Periods.

Notez que les changements d’heure d’été/hiver (DST) n’affectent pas la durée de la maintenance. Par exemple, supposons qu’une maintenance de deux heures soit configurée pour commencer habituellement à 01:00 et se terminer à 03:00 :

  • si, après une heure de maintenance (à 02:00), un changement DST se produit et que l’heure courante passe de 02:00 à 03:00, la maintenance se poursuivra pendant encore une heure (jusqu’à 04:00) ;
  • si, après deux heures de maintenance (à 03:00), un changement DST se produit et que l’heure courante passe de 03:00 à 02:00, la maintenance s’arrêtera, car deux heures se sont écoulées ;
  • si une période de maintenance commence pendant l’heure qui est sautée lors d’un changement DST, alors la maintenance ne démarrera pas.

Si une période de maintenance est définie sur « 1 day » (la durée réelle de la maintenance est de 24 heures, puisque Zabbix calcule les jours en heures), commence à 00:00 et se termine à 00:00 le jour suivant :

  • la maintenance s’arrêtera à 01:00 le jour suivant si l’heure courante avance d’une heure ;
  • la maintenance s’arrêtera à 23:00 ce jour-là si l’heure courante recule d’une heure.

Affichage

Affichage des hôtes en maintenance

Une icône de clé orange à côté du nom de l’hôte indique que cet hôte est en maintenance dans :

  • Tableaux de bord
  • Monitoring > Problems
  • Inventory > Hosts > Host inventory details
  • Data collection > Hosts (voir la colonne « Status »)

Les détails de la maintenance s’affichent lorsque le pointeur de la souris est placé sur l’icône.

De plus, les hôtes en maintenance ont un arrière-plan orange dans Monitoring > Maps.

Affichage des problèmes supprimés

Normalement, les problèmes des hôtes en maintenance sont supprimés, c’est-à-dire qu’ils ne sont pas affichés dans l’interface web. Cependant, il est également possible de configurer l’affichage des problèmes supprimés en sélectionnant l’option Afficher les problèmes supprimés aux emplacements suivants :

  • Tableaux de bord (dans la configuration des widgets Hôtes avec problèmes, Problèmes, Problèmes par gravité, Vue d’ensemble des déclencheurs)
  • Surveillance > Problèmes (dans le filtre)
  • Surveillance > Cartes (dans la configuration de la carte)
  • Notifications globales (dans la configuration du profil utilisateur)

Lorsque les problèmes supprimés sont affichés, l’icône suivante est affichée : . Le survol de l’icône avec la souris affiche davantage de détails.

Calcul des files d’attente pendant la maintenance

Les files d’attente affichées dans le frontend Zabbix (Administration > Queue) sont calculées par le serveur Zabbix. Elles n’incluent pas les éléments en maintenance sans collecte de données : la longueur de la file d’attente est toujours nulle pour ces éléments, même lorsque leurs valeurs sont retardées. Les éléments retardés en maintenance avec collecte de données sont toujours comptabilisés dans la file d’attente.

Le proxy Zabbix n’a pas connaissance des périodes de maintenance, car il n’existe aucune synchronisation de la configuration de maintenance entre le serveur Zabbix et le proxy. Les contrôles internes calculés sur les proxys Zabbix (par exemple, zabbix[queue,,] et zabbix[stats,,,queue,,]) signalent les éléments retardés indépendamment du statut de maintenance sur le serveur Zabbix.

Par conséquent, des longueurs de file d’attente différentes peuvent être signalées pour les mêmes éléments en maintenance sans collecte de données par le frontend Zabbix et par les contrôles internes sur les proxys Zabbix.