Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 917 minIntermédiaire

Alertes Zabbix : actions, courriel, Teams et Slack

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • suivre le cycle d'un problème, de sa détection à son rétablissement ;
  • configurer l'envoi de courriels et un webhook Teams ou Slack ;
  • écrire une action avec ses conditions, ses escalades et son message ;
  • éviter les tempêtes d'alertes avec les dépendances et la maintenance ;
  • rédiger une procédure d'astreinte et ouvrir un ticket.

3 exercices corrigés1 schéma

Dans Zabbix, une alerte part quand trois réglages sont en place : un type de média (comment envoyer : courriel, Teams, Slack, SMS), un utilisateur avec son média (à qui et à quelle adresse), et une action (quand envoyer, à qui, avec quel message et quelles relances). Ce chapitre suit le cycle de vie d'un problème, configure le courriel et les webhooks Teams et Slack, construit une action avec escalade, puis montre comment éviter les tempêtes d'alertes, rédiger une procédure d'astreinte et passer de l'alerte au ticket.

Le cycle de vie d'un problème

Élémentvaleur collectéeDéclencheurexpression vraieProblèmeévénement crééActionconditions rempliesÉtape 1, immédiatementtechniciens : courriel, Teams15 minÉtape 2responsable, si non acquittéRétablissementmessage à tousAcquittementun technicien le prendarrêteDeux freins aux tempêtes d'alertes :Maintenanceproblèmes supprimésDépendancedéclencheur muet
Du déclencheur au message, puis au rétablissement : l'action et son escalade
  1. Un élément collecte une valeur.
  2. Le déclencheur l'évalue. Son expression devient vraie : Zabbix crée un événement problème, visible dans Monitoring > Problems.
  3. Les actions dont les conditions correspondent démarrent leurs opérations : envoyer un message, exécuter un script, passer à l'étape suivante après un délai (l'escalade).
  4. Un technicien acquitte le problème (acknowledge) : il signale qu'il s'en occupe, avec un commentaire. Il peut aussi changer la gravité, supprimer temporairement le problème ou, si le déclencheur le permet, le fermer à la main.
  5. L'expression redevient fausse : Zabbix crée l'événement de rétablissement (resolved), et l'action envoie son message de rétablissement.

Configurer le courriel

Alerts > Media types, type Email (il existe déjà, désactivé) :

ChampValeur chez Sorbier
Email providerGeneric SMTP (des préréglages existent pour Gmail et Office 365)
SMTP serversmtp.sorbier.example
SMTP server port587
Emailsupervision@sorbier.example (l'expéditeur)
SMTP helosorbier.example
Connection securitySTARTTLS, avec SSL verify peer et SSL verify host cochés
AuthenticationUsername and password : le compte supervision@sorbier.example
Message formatHTML ou Plain text

L'onglet Message templates définit le texte par défaut de chaque type de message (problème, rétablissement, mise à jour). Écris-les en français, avec des macros :

text
Objet : [{EVENT.SEVERITY}] {HOST.NAME} : {EVENT.NAME}

Problème détecté le {EVENT.DATE} à {EVENT.TIME}
Hôte : {HOST.NAME}
Problème : {EVENT.NAME}
Gravité : {EVENT.SEVERITY}
Valeur : {EVENT.OPDATA}
Numéro d'événement : {EVENT.ID}
Procédure : {TRIGGER.URL}
text
Objet : [Résolu] {HOST.NAME} : {EVENT.NAME}

Problème résolu le {EVENT.RECOVERY.DATE} à {EVENT.RECOVERY.TIME}, après {EVENT.DURATION}.
Hôte : {HOST.NAME}
Problème : {EVENT.NAME}

{TRIGGER.URL} reprend le champ URL du déclencheur : mets-y le lien vers la procédure de la base de connaissances. Le technicien réveillé à 3 heures du matin ouvre la bonne fiche en un clic.

Enfin, bouton Test de la ligne du média : Zabbix envoie un message à l'adresse que tu indiques et affiche l'erreur du serveur SMTP en cas d'échec. Flux à ouvrir sur pfSense : 192.168.10.180 vers le relais SMTP, TCP 587.

Teams, Slack et les autres webhooks

Les messageries d'équipe se branchent par webhook : Zabbix exécute un petit script JavaScript qui appelle une adresse HTTPS. Les types de médias officiels en fournissent plusieurs dizaines (Teams, Slack, Telegram, Discord, Mattermost, GLPI, Jira…) ; s'il en manque un dans la liste, importe son fichier YAML depuis le dépôt de Zabbix (bouton Import de Alerts > Media types). Tous lisent la macro globale {$ZABBIX.URL}, à créer dans Administration > Macros avec l'adresse de l'interface (https://srv-journaux.ad.sorbier.example/zabbix), pour mettre dans le message un lien vers le problème.

Microsoft Teams. Microsoft a retiré de Teams, en mai 2026, les anciens « connecteurs Office 365 » (les Incoming Webhooks des vieux tutoriels, qui ne fonctionnent plus) au profit des Workflows : le type de média à utiliser s'appelle MS Teams Workflow.

  1. Dans Teams, ouvre l'application Workflows, bouton + New flow, cherche « channel » et choisis le modèle Post to a channel when a webhook request is received, puis l'équipe et le canal « Supervision ». Copie l'adresse du flux.
  2. Dans Zabbix, active le type de média MS Teams Workflow.
  3. Dans le profil de l'utilisateur qui recevra (par exemple un utilisateur technique « Canal Supervision »), onglet Media : type MS Teams Workflow, Send to = l'adresse du flux.

L'intégration demande un abonnement Microsoft 365 : la version gratuite de Teams ne propose pas les Workflows.

Slack.

  1. Sur api.slack.com/apps, crée une application, ajoute un bot avec les permissions chat:write, im:write, groups:write et reactions:write, installe-la dans l'espace de travail et copie le jeton du bot (Bot User OAuth Token, qui commence par xoxb-).
  2. Dans Zabbix, type de média Slack : paramètre bot_token = le jeton. Le paramètre slack_mode vaut alarm (le message d'origine est modifié au rétablissement) ou event (un nouveau message à chaque événement).
  3. Média de l'utilisateur : Send to = #supervision (le nom du canal) ; invite le bot dans le canal.

Les utilisateurs et leurs médias

Une alerte est envoyée à un utilisateur, par l'un de ses médias. Users > Users, l'utilisateur c.lambert, onglet Media, bouton Add :

ChampExemple
TypeEmail
Send tochloe.lambert@sorbier.example
When active1-5,07:30-19:00;6,08:00-12:00 (du lundi au vendredi de 7 h 30 à 19 h, et le samedi matin)
Use if severityWarning, Average, High, Disaster
EnabledCoché

When active évite les courriels pendant les congés et la nuit ; l'astreinte, elle, reçoit les gravités High et Disaster 24 heures sur 24. L'utilisateur doit avoir au moins le droit de lecture sur les hôtes concernés (par son groupe d'utilisateurs, onglet Host permissions) : Zabbix n'envoie pas d'alerte sur un hôte que le destinataire ne peut pas voir. C'est une cause classique de « l'action s'exécute mais personne ne reçoit rien ».

Créer une action avec escalade

Alerts > Actions > Trigger actions, bouton Create action.

Onglet Action. Nom : « Serveurs et réseau du siège ». Conditions :

  • Trigger severity is greater than or equals Average ;
  • Host group equals Serveurs Linux, Serveurs Windows ou Réseau ;
  • Problem is suppressed No (pas d'alerte pour un hôte en maintenance).

Le calcul And/Or combine avec « et » les conditions de types différents et avec « ou » celles de même type : « gravité au moins Average et (un des trois groupes) et non supprimé ».

Onglet Operations. Default operation step duration : 15m. Puis les étapes :

ÉtapesDélaiOpérationCondition
1 – 1ImmédiatementEnvoyer au groupe d'utilisateurs Techniciens, par tous leurs médias—
2 – 2Après 15 minutesEnvoyer à a.mercier (le responsable)Event is not acknowledged
3 – 0Après 30 minutes, puis toutes les 15 minutesRenvoyer au groupe TechniciensEvent is not acknowledged

L'étape 3 – 0 (0 signifie « sans fin ») relance jusqu'à ce que quelqu'un acquitte ou que le problème se résolve. La condition Event is not acknowledged arrête l'escalade dès qu'un technicien prend le problème.

Onglet Recovery operations : Notify all involved (prévenir tous ceux qui ont reçu le problème). Onglet Update operations : Notify all involved, pour que l'équipe voie les commentaires d'acquittement.

Coche enfin Pause operations for suppressed problems : l'escalade se met en pause pendant une maintenance.

L'acquittement et la mise à jour d'un problème

Dans Monitoring > Problems, le lien Update d'un problème ouvre une fenêtre qui permet de :

  • acquitter (Acknowledge) avec un message : « Pris en charge par Moussa, disque de srv-fichiers, purge des fichiers temporaires en cours » ;
  • changer la gravité, si le déclencheur l'a mal évaluée ;
  • supprimer le problème pour une durée (il disparaît des vues et ne relance plus, sans être résolu) ;
  • fermer le problème, si le déclencheur a l'option Allow manual close (utile pour les traps et les journaux, qui n'ont pas d'état « résolu »).

L'acquittement n'est pas une formalité : il évite que deux techniciens travaillent sur le même problème, il arrête l'escalade, et il laisse une trace datée de qui a fait quoi.

Dépendances et maintenances : éviter les tempêtes d'alertes

Le pare-feu de Sorbier redémarre. En quelques secondes, plus aucun équipement du VLAN 99 ni le serveur de la DMZ ne répondent à srv-journaux : sans précaution, cinquante alertes arrivent en même temps, et la seule utile, « pfSense injoignable », se perd dans la masse. Trois outils l'évitent.

Les dépendances entre déclencheurs. Dans l'onglet Dependencies du déclencheur « SW-ETAGE1 injoignable », ajoute la dépendance vers « pfsense injoignable ». Tant que le déclencheur du pare-feu est actif, celui du switch ne crée pas de problème. Fais de même pour chaque équipement placé derrière : les hôtes de Marseille dépendent du déclencheur « Lien Lyon–Marseille coupé » ou de celui du proxy prx-mrs. Les modèles officiels en contiennent déjà entre leurs propres déclencheurs (« Space is low » dépend de « Space is critically low » : un seul problème à la fois pour un même disque).

Les maintenances. Avant une intervention prévue, déclare une période de maintenance : Data collection > Maintenance, Create maintenance period : nom, type With data collection (les mesures continuent, les problèmes sont supprimés) ou No data collection, dates, période (une fois, chaque semaine…), hôtes ou groupes concernés. Les problèmes de ces hôtes n'envoient pas d'alerte, et la maintenance apparaît dans les rapports. Le SLA du chapitre 2 l'exclut s'il est configuré pour.

Cause et symptômes. Zabbix 7.0 permet, dans Monitoring > Problems, de marquer un problème comme cause et d'y rattacher les autres comme symptômes. L'action peut mettre en pause ses opérations pour les symptômes (Pause operations for symptom problems). Utile quand une dépendance n'a pas été prévue.

Moins d'alertes, de meilleures alertes

La fatigue d'alerte est le premier ennemi d'une supervision : quand les messages sont trop nombreux, on cesse de les lire. Quelques règles, que tu peux citer en entretien :

  • chaque alerte appelle une action. Si personne ne doit rien faire, ce n'est pas une alerte : baisse sa gravité à Information et ne l'envoie pas ;
  • des seuils sur une durée, pas sur une valeur instantanée, et une expression de rétablissement pour éviter le battement (chapitre 5) ;
  • la bonne gravité, au bon destinataire, au bon moment : la nuit, seulement ce qui ne peut pas attendre le matin ;
  • revois chaque mois les dix déclencheurs les plus bavards (Reports > Top 100 triggers) : corrige le seuil, ajoute une dépendance ou supprime ;
  • un faux positif se corrige, il ne s'ignore pas. Un problème qui « sonne pour rien » chaque lundi à 2 heures cache souvent une vraie cause (une sauvegarde qui sature le disque) ou un seuil mal choisi.

La procédure d'astreinte

Chaque déclencheur important doit être accompagné d'une procédure : que vérifier, que faire, qui appeler. Elle va dans la base de connaissances (cours GLPI) et son lien dans le champ URL du déclencheur. Un modèle court :

Alerte « Site de suivi injoignable depuis Internet ». 1. Ouvrir Monitoring > Problems : d'autres problèmes en même temps (pfSense, srv-web, accès Internet) ? 2. Le test interne fonctionne-t-il ? Oui : vérifier le DNS public, l'accès Internet, la redirection de port de pfSense. Non : sur srv-web, systemctl status nginx, journalctl -u nginx --since "-1h", espace disque, puis l'application et la base. 3. Rétablir, vérifier que le problème passe en « résolu ». 4. Non résolu en 30 minutes : appeler le responsable informatique. Plus de 15 minutes d'arrêt : prévenir le service client. 5. Ouvrir ou compléter le ticket d'incident.

Du problème au ticket

Une alerte prévient ; un ticket trace l'incident, sa prise en charge, sa résolution, et permet de mesurer les délais. Deux façons de les relier :

  • à la main : le technicien qui acquitte crée le ticket dans GLPI et note son numéro dans le commentaire d'acquittement ;
  • automatiquement : le type de média GLPi fourni par Zabbix crée un ticket par problème, le met à jour à chaque acquittement et le résout au rétablissement. Il utilise l'API de GLPI avec un compte dédié.

Le ticket suit ensuite le processus de gestion des incidents d'ITIL : enregistrement, catégorisation, priorité (selon l'impact et l'urgence), diagnostic, escalade, résolution, clôture. Ces notions sont développées dans les cours Support et ITIL (avec la matrice impact × urgence) et GLPI. Un même incident qui revient (le disque de srv-fichiers plein chaque mois) devient un problème au sens d'ITIL, dont on cherche la cause racine (gestion des problèmes).

Qui surveille Zabbix ?

Si srv-journaux tombe, plus aucune alerte ne part, et le silence ressemble à une journée calme. Il faut donc une surveillance extérieure à Zabbix :

  • un signal de vie (dead man's switch) : une tâche planifiée sur srv-journaux appelle chaque minute une adresse d'un service externe (par exemple un moniteur Push d'Uptime Kuma hébergé ailleurs, chapitre 12). Si l'appel n'arrive plus, ce service alerte ;
  • un contrôle croisé : un autre serveur (srv-mrs à Marseille) vérifie que l'interface de Zabbix répond et envoie un courriel sinon ;
  • la santé interne : le modèle Zabbix server health, lié par défaut à l'hôte « Zabbix server », surveille la file d'attente (Administration > Queue : des valeurs en retard), la charge des processus internes, le cache. Une file d'attente qui grossit annonce un serveur sous-dimensionné.

Exercices

Exercice 1 sur 3 Une alerte qui n'arrive pas Réussi À revoir

Le disque de srv-fichiers dépasse 90 % : le problème apparaît dans Monitoring > Problems, avec la gravité Average. Chloé n'a reçu aucun courriel. Liste, dans l'ordre, ce que tu vérifies.

Voir la réponseMasquer la réponse de l'exercice 1
  1. Le détail du problème (colonne Actions) ou Reports > Action log : une action s'est-elle déclenchée ? Avec quel statut ? Une erreur SMTP s'affiche ici.
  2. Aucune action : vérifier les conditions de l'action (gravité minimale, groupe d'hôtes : srv-fichiers est-il dans un des groupes cités ?), et que l'action est activée. Le problème est-il supprimé (maintenance en cours) ?
  3. Action exécutée mais pas pour Chloé : est-elle dans le groupe d'utilisateurs destinataire ? Son groupe a-t-il le droit de lecture sur le groupe de srv-fichiers ?
  4. Son média : activé, bonne adresse, Use if severity incluant Average, When active incluant l'heure du problème ?
  5. Le type de média Email : activé ? Le bouton Test fonctionne-t-il ? Le flux vers le relais SMTP (TCP 587) est-il ouvert sur pfSense ?
  6. Le message est parti mais n'est pas arrivé : dossier des indésirables, refus du relais (authentification, adresse d'expéditeur), journaux du serveur de messagerie.

Tu avais trouvé ?

Exercice 2 sur 3 Concevoir l'escalade de l'astreinte Réussi À revoir

Sorbier met en place une astreinte : la semaine, de 19 h à 7 h 30, et le week-end, un technicien d'astreinte reçoit les problèmes High et Disaster sur son téléphone (par Teams). S'il n'a pas acquitté en 20 minutes, Antoine Mercier est prévenu. Les problèmes Average attendent le lendemain matin.

Décris les médias des utilisateurs et l'action (conditions, étapes) qui réalisent ce besoin.

Voir la réponseMasquer la réponse de l'exercice 2

Médias. Le technicien d'astreinte (un compte « Astreinte », dont le média Teams pointe vers un canal ou un flux dédié, ou chaque technicien à tour de rôle) : MS Teams Workflow, When active 1-5,19:00-24:00;1-5,00:00-07:30;6-7,00:00-24:00, Use if severity High et Disaster. Le média Email de chaque technicien reste actif aux heures ouvrées, pour toutes les gravités à partir de Warning. Antoine Mercier : un média Teams actif 24 heures sur 24, High et Disaster.

Action « Astreinte » : conditions Trigger severity ≥ High et Problem is suppressed = No. Default operation step duration 20m. Étape 1 – 1 : envoyer à l'utilisateur « Astreinte ». Étape 2 – 2, condition Event is not acknowledged : envoyer à a.mercier. Recovery operations : Notify all involved.

Les problèmes Average de la nuit sont toujours envoyés par l'action des heures ouvrées, mais le média Email des techniciens, hors de sa période When active, ne les transmet pas. Point de vigilance : un message non envoyé hors période n'est pas renvoyé au matin. Le technicien du matin commence donc sa journée par Monitoring > Problems, filtré sur les problèmes non acquittés.

Tu avais trouvé ?

Exercice 3 sur 3 Une tempête d'alertes Réussi À revoir

Mardi à 6 h 12, avant l'installation du proxy prx-mrs, les hôtes de Marseille sont interrogés directement par srv-journaux. Le lien Lyon–Marseille est coupé pendant 25 minutes : Antoine reçoit 34 courriels, les 12 serveurs et équipements de Marseille « injoignables » et leurs services.

  1. Pourquoi ces alertes sont-elles inutiles ?
  2. Que configures-tu pour qu'il n'en reçoive qu'une ?
  3. Qu'aurait changé le proxy prx-mrs ?
Voir la réponseMasquer la réponse de l'exercice 3
  1. Elles ont toutes la même cause, la coupure du lien. Elles noient l'information utile (« le lien est coupé ») et laissent croire à une panne de chaque machine.
  2. Un déclencheur sur le lien (perte des pings vers l'interface du routeur de Marseille, min(/R-MARSEILLE/icmppingloss,3m)=100), puis une dépendance de chaque déclencheur de disponibilité des hôtes de Marseille vers ce déclencheur. Pendant la coupure, seul « Lien Lyon–Marseille coupé » crée un problème et une alerte.
  3. Avec le proxy actif, les hôtes de Marseille restent joignables depuis le proxy, qui garde ses valeurs en tampon et les envoie au retour du lien : les graphiques n'ont pas de trou. Les déclencheurs nodata de ses hôtes tiennent compte de sa disponibilité. Seul le déclencheur sur le dernier contact du proxy (zabbix[proxy,prx-mrs,lastaccess]) ou sur le lien alerte. Si un serveur de Marseille était vraiment tombé pendant la coupure, l'alerte partirait au retour du lien.

Tu avais trouvé ?

Chapitre terminé !

Fais les 3 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Tableaux de bord : Zabbix et GrafanaRevoir le sommaire du cours