Périodes de maintenance

Vue d’ensemble

La maintenance permet de supprimer les problèmes pendant des périodes prédéfinies.

Vous pouvez définir des périodes de maintenance pour les entités suivantes :

  • Groupes d’hôtes
  • Hôtes
  • Déclencheurs
  • Noms d’événements
  • Étiquettes

Si la maintenance est définie pour des étiquettes ou des noms d’événements spécifiques, elle sera activée uniquement pour les déclencheurs correspondants ; 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 normalement et les événements sont créés lorsque cela est nécessaire. Cependant, si l’option Suspendre les opérations pour les problèmes supprimés est cochée dans la configuration de l’action, les escalades de problèmes sont suspendues pour les entités en maintenance. Dans ce cas, les étapes d’escalade pouvant inclure l’envoi de notifications ou l’exécution de commandes à distance sont ignorées pendant toute la durée de la période de maintenance. Notez que les opérations de récupération et de mise à jour ne sont pas supprimées pendant la maintenance, seules les escalades le sont. Les notifications de récupération ne sont pas envoyées si le problème a commencé pendant la maintenance.

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’une maintenance d’une demi-heure a lieu de 10 à 40 minutes après l’apparition d’un problème réel, les étapes deux et trois seront exécutées une demi-heure plus tard, c’est-à-dire à 60 et 90 minutes (à condition que le problème existe toujours). De même, si un problème apparaît pendant la maintenance, l’escalade commencera après la maintenance.

Pour recevoir normalement les notifications de problèmes pendant la maintenance (sans délai), vous devez décocher l’option Suspendre les opérations pour les problèmes supprimés 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 fonctionnement pendant la maintenance. Les maintenances sont recalculées chaque minute ou dès que le cache de configuration est rechargé si des modifications ont été apportées à la période de maintenance.

Les processus de temporisation vérifient si l’état de l’hôte doit passer en maintenance ou en sortir à 0 seconde de chaque minute. De plus, chaque seconde, le processus de temporisation vérifie si des maintenances doivent démarrer ou s’arrêter en fonction des modifications apportées aux [périodes de maintenance] après la mise à jour de la configuration. Ainsi, la vitesse de démarrage et d’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 des périodes de maintenance n’incluent pas les paramètres Actif depuis/Actif jusqu’à. De même, si une entité (groupe d’hôtes/hôte/déclencheur/etc.) est ajoutée à une période de maintenance active existante, les modifications ne seront activées par le processus de temporisation qu’au début de la minute suivante.

Notez que lorsqu’un hôte entre en maintenance, les processus de temporisation du serveur Zabbix lisent tous les problèmes ouverts afin de vérifier s’il est nécessaire de les supprimer. Cela peut avoir un impact sur les performances s’il existe de nombreux problèmes ouverts. Le serveur Zabbix lit é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 une maintenance Sans collecte de données). Les données sont ensuite ignorées par le serveur si l’option Sans collecte de données est définie.

Lorsqu’une maintenance Sans collecte de données se termine, les déclencheurs utilisant la fonction nodata() ne se déclencheront pas avant la prochaine vérification au cours de la période qu’ils contrôlent.

Si un élément de 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 en maintenance Sans collecte de données (par exemple, à l’aide de Zabbix sender), cette valeur sera ignorée ; toutefois, il est possible d’envoyer une valeur horodatée pour une période de maintenance expirée, et celle-ci sera acceptée.

Si la période de maintenance ou l’option de maintenance (groupe d’hôtes, hôte, déclencheur, etc.) est modifiée par l’utilisateur, les modifications ne prendront effet qu’après la synchronisation du cache de configuration.

Configuration

Pour démarrer immédiatement une période de maintenance :

  1. Accédez à Monitoring > Problems.
  2. Cliquez sur le nom du problème.
  3. Sélectionnez l’option de maintenance dans le menu de l’événement (hôte, déclencheur, nom de l’événement, étiquettes).
  4. Modifiez les paramètres de maintenance dans le formulaire.

Pour configurer une période de maintenance planifiée :

  1. Accédez à 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 obligatoires sont signalés par 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 sont collectées par le serveur pendant la maintenance et les déclencheurs sont traités ;
No data collection - les données peuvent toujours être collectées, mais elles ne sont pas enregistrées dans la base de données pendant la maintenance et les déclencheurs (y compris la fonction nodata()) ne se déclenchent pas.
Consultez Effet des périodes de maintenance pour savoir comment chaque type affecte le rapport de disponibilité.
Active since Date et heure à partir desquelles l’exécution des périodes de maintenance devient active.
Remarque : le fait de définir cette heure seule n’active pas une période de maintenance ; les périodes de maintenance doivent être configurées dans Periods (voir ci-dessous).
Active till Date et heure jusqu’auxquelles l’exécution des périodes de maintenance reste active.
Periods Ce bloc vous permet de définir les jours et les heures exacts auxquels la maintenance a lieu. Cliquez sur pour ouvrir une fenêtre contextuelle contenant un formulaire flexible de Maintenance period, dans lequel vous pouvez définir le calendrier de maintenance. Consultez Périodes de maintenance pour obtenir 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 des groupes d’hôtes spécifiés. Ce champ propose la saisie semi-automatique : commencez à saisir du texte pour afficher une liste déroulante de tous les groupes d’hôtes disponibles.
La spécification d’un groupe d’hôtes parent sélectionne implicitement tous les groupes d’hôtes imbriqués. La maintenance sera donc é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 propose la saisie semi-automatique : commencez à saisir du texte pour afficher une liste déroulante de tous les hôtes disponibles.
Triggers Sélectionnez les déclencheurs pour lesquels la maintenance sera activée.
Ce champ propose la saisie semi-automatique : commencez à saisir du texte pour afficher une liste déroulante de tous les déclencheurs disponibles.
Event name Spécifiez les noms d’événements pour lesquels la maintenance sera activée.
Plusieurs conditions peuvent être définies.
Deux opérateurs sont disponibles pour chaque condition :
Contains - inclure les noms d’étiquettes spécifiés lorsque les valeurs des étiquettes contiennent la chaîne saisie (correspondance de sous-chaîne, insensible à la casse)
Does not contain - exclure les noms d’étiquettes spécifiés lorsque les valeurs des étiquettes contiennent la chaîne saisie (correspondance de sous-chaîne, insensible à la casse)
Tags Spécifiez les étiquettes pour lesquelles la maintenance sera activée.
Plusieurs conditions peuvent être définies. La correspondance des noms d’étiquettes est toujours sensible à la casse.

Plusieurs opérateurs sont disponibles pour chaque condition :
Contains - inclure les noms d’étiquettes spécifiés lorsque les valeurs des étiquettes contiennent la chaîne saisie (correspondance de sous-chaîne, sensible à la casse) ;
Equals - inclure les noms et valeurs d’étiquettes spécifiés (sensible à la casse).
Does not equal - exclure les noms et valeurs d’étiquettes spécifiés (sensible à la casse)
Does not contain - exclure les noms d’étiquettes spécifiés lorsque les valeurs des étiquettes contiennent la chaîne saisie (correspondance de sous-chaîne, insensible à 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 d’étiquette sont regroupées avec la condition Or ;
Or - une seule condition remplie suffit.

Les étiquettes peuvent être spécifiées uniquement si le type de maintenance 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 sert à planifier le temps d'une maintenance récurrente ou ponctuelle. Le formulaire est dynamique, les champs disponibles changeant 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 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 jour(s) est supérieur à "1", le jour de départ est celui auquel correspond l'heure Actif depuis. Exemples :
- si Actif depuis est défini sur "2021-01-01 12:00", Tous les 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 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 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 semaine(s) est supérieur à "1", la semaine de départ est celle à 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 pendant 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 (Daily, Weekly, Monthly) sont planifiées, le fuseau horaire du serveur Zabbix est utilisé. Pour 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.

Lorsque vous avez terminé, cliquez sur Add pour ajouter la période de maintenance à la section Periods.

Notez que les changements d'heure d'été (DST) n'affectent pas la durée de la maintenance. Par exemple, supposons qu'une maintenance de deux heures soit configurée et qu'elle commence généralement à 01:00 et se termine à 03:00 :

  • si, après une heure de maintenance (à 02:00), un changement DST se produit et que l'heure actuelle passe de 02:00 à 03:00, la maintenance se poursuivra pendant une heure supplémentaire (jusqu'à 04:00) ;
  • si, après deux heures de maintenance (à 03:00), un changement DST se produit et que l'heure actuelle 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 supprimée par un changement DST, alors la maintenance ne démarrera pas.

Si une période de maintenance est définie sur "1 day" (la période réelle de la maintenance est de 24 heures, car 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 actuelle avance d'une heure ;
  • la maintenance s'arrêtera à 23:00 ce jour-là si l'heure actuelle 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 :

  • Dashboards
  • Monitoring > Problèmes
  • 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 masqués

Normalement, les problèmes des hôtes en maintenance sont masqués, c'est-à-dire qu'ils ne sont pas affichés dans l'interface.

Les problèmes masqués peuvent également être cachés parce qu'ils ont été masqués manuellement.

Il est possible d'afficher les problèmes masqués en sélectionnant l'option Afficher les problèmes masqué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 masqués sont affichés, l'icône suivante est visible : . Si le masquage est dû à la maintenance de l'hôte, les icônes suivantes sont affichées :

  • icon_suppression_maintenance.png - le problème a été masqué en raison de la maintenance de l'hôte.
  • icon_unsuppressed_maintenance.png - le problème a été réaffiché après la maintenance de l'hôte.

Le survol de l'icône affiche plus de détails. Dans les détails de l'événement, vous pouvez vérifier si l'événement a été masqué en raison de la maintenance ou masqué manuellement. Si la maintenance et le masquage manuel s'appliquent tous deux, le masquage manuel est prioritaire dans la couleur de l'icône.

Calcul du calcul des files d'attente pendant la maintenance

Les files d'attente affichées dans l'interface Zabbix (Administration > Queue) sont calculées par le serveur Zabbix. Elles n'incluent pas les éléments en maintenance No data collection, et la longueur de la file d'attente est toujours nulle pour ces éléments, même lorsque leurs valeurs sont en retard. Les éléments en retard en maintenance With data collection 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 vérifications internes calculées sur les proxies Zabbix (par exemple, zabbix[queue,,] et zabbix[stats,,,queue,,]) signalent les éléments en retard indépendamment de l'état 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 No data collection par l'interface Zabbix et par les vérifications internes sur les proxies Zabbix.