Configuration des notifications par e-mail avec Zabbix

Ce guide détaille la mise en place des alertes par e-mail dans Zabbix. Assurez-vous que le serveur Zabbix et les agents Zabbix sont correctement installés et en cours d'exécution avant de commencer.

  1. Ajout d'hôtes dans Zabbix

La première étape consiste à ajouter les hôtes que vous souhaitez surveiller dans l'interface Zabbix.

  1. Configuration de la surveillance du service VSftpd (Exemple)

Pour illustrer la configuration des alertes, nous utiliserons le service VSftpd comme exemple.


yum install -y vsftpd
vim /etc/vsftpd/vsftpd.conf
# Modifier la ligne suivante :
listen=YES
# Supprimer ou commenter la ligne suivante :
# listen_ipv6=YES
systemctl start vsftpd
  1. Méthodes de configuration des alertes par e-mail

Il existe deux approches principales pour configurer les alertes par e-mail : directement via l'interface web de Zabbix ou via un script personnalisé.

3.1. Utilisation de l'interface web Zabbix (Recommandé, avec l'exemple de QQ Mail)

Étape 1 : Activer l'autorisation pour votre service de messagerie

Pour les services comme QQ Mail, vous devrez d'abord activer la fonction d'autorisation d'application (par exemple, générer un mot de passe spécifique pour l'application).

Étape 2 : Créer un type de média (Media Type) dans Zabbix

Naviguez dans "Administration" -> "Media Types" et cliquez sur "Create media type".

  • Name: Donnez un nom descriptif (par exemple, "QQ Mail").
  • Type: Sélectionnez "Email".
  • Configurez les paramètres SMTP de votre fournisseur de messagerie (serveur SMTP, port, identifiants).

Une fois le type de média créé, vous pouvez le tester pour vous assurer que les e-mails sont envoyés correctement.

3.2. Utilisation d'un script personnalisé

Cette méthode implqiue la création d'un script que Zabbix appellera pour envoyer les notifications.

Étape 1 : Localiser le répertoire des scripts d'alerte

Exécutez la commande suivante sur votre serveur Zabbix pour trouver le chemin configuré pour les scripts d'alerte :


grep AlertScriptsPath /etc/zabbix/zabbix_server.conf

Le chemin par défaut est souvent /usr/lib/zabbix/alertscripts ou similaire.

Étape 2 : Créer le script d'envoi d'e-mail

Dans le répertoire des scripts d'alerte, créez un nouveau fichier, par exemple send_email.py.


vim /usr/lib/zabbix/alertscripts/send_email.py

Colez le contenu suivant dans le fichier, en adaptant les paramètres pour votre propre compte de messagerie (par exemple, en utilisant 163.com comme exemple) :


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import smtplib
from email.mime.text import MIMEText
import sys

# Paramètres de configuration
mail_host = 'smtp.163.com'  # Serveur SMTP
mail_user = 'votre_email@163.com'  # Votre adresse e-mail
mail_auth = 'votre_mot_de_passe_application'  # Votre mot de passe d'application ou code d'autorisation
sender_display_name = 'Zabbix Alerte' # Nom d'affichage de l'expéditeur
receiver_display_name = 'Administration' # Nom d'affichage du destinataire

def send_notification(recipient_email, subject, body):
    msg = MIMEText(body, 'plain', 'utf-8')
    msg['From'] = sender_display_name
    msg['To'] = receiver_display_name
    msg['Subject'] = subject

    try:
        server = smtplib.SMTP(mail_host, 25) # Utiliser le port 587 pour TLS/STARTTLS si nécessaire
        server.ehlo()
        # Si votre serveur SMTP nécessite une connexion chiffrée (TLS/SSL)
        # server.starttls()
        # server.ehlo()
        server.login(mail_user, mail_auth)
        server.sendmail(mail_user, recipient_email, msg.as_string())
        server.quit()
        print("E-mail envoyé avec succès.")
    except Exception as e:
        print(f"Erreur lors de l'envoi de l'e-mail : {e}")

if __name__ == '__main__':
    # sys.argv[1] = email du destinataire
    # sys.argv[2] = sujet de l'e-mail
    # sys.argv[3] = contenu de l'e-mail
    if len(sys.argv) == 4:
        send_notification(sys.argv[1], sys.argv[2], sys.argv[3])
    else:
        print("Usage: python send_email.py <recipient_email> <subject> ")

</subject></recipient_email>

Rendez le script exécutable :


chmod +x /usr/lib/zabbix/alertscripts/send_email.py
  1. Création des actions d'alerte

Dans Zabbix, naviguez dans "Configuration" -> "Actions" et cliquez sur "Create action".

  • Name: Nom de l'action (par exemple, "Alerte VSftpd par E-mail").
  • Conditions: Définissez les conditions qui déclencheront cette acsion (par exemple, "Trigger severity is High").
  • Operations: Configurez les opérations à effectuer.
  • Operation type: Sélectionnez "Send message".
  • Send to Media: Choisissez le type de média que vous avez configuré (par exemple, "QQ Mail" ou votre script personnalisé).
  • Send to User groups / Send to User: Spécifiez à qui envoyer les notifications.

Configuration des messages (pour les utilisateurs sélectionnés) :

  • Default subject: Définit le sujet par défaut des e-mails.
  • Default message: Définit le corps par défaut des e-mails. Vous pouvez utiliser des macros Zabbix pour inclure des informations dynamiques.

Exemple de sujet et message personnalisés :


Sujet par défaut : {TRIGGER.STATUS}, Hôte : {HOSTNAME1} - {TRIGGER.NAME}
Message par défaut :
    Hôte : {HOSTNAME1}
    Date et Heure de l'événement : {EVENT.DATE} {EVENT.TIME}
    Niveau de sévérité : {TRIGGER.SEVERITY}
    Nom du déclencheur : {TRIGGER.NAME}
    Clé de l'élément : {TRIGGER.KEY1}
    Détails du problème : {ITEM.NAME} : {ITEM.VALUE}
    Statut actuel : {TRIGGER.STATUS}
    ID de l'événement : {EVENT.ID}
  1. Test des notifications

Pour tester si les alertes par e-mail fonctionnent, simulez une condition d'erreur. Par exemple, arrêtez le service VSftpd sur l'un de vos hôtes surveillés.


systemctl stop vsftpd

Vérifiez ensuite votre boîte de réception pour voir si vous avez reçu la notification d'alerte. Après avoir résolu le problème (par exemple, en redémarrant VSftpd), vous devriez également recevoir une notification de rétablissement.


systemctl start vsftpd

Si vous avez configuré le type de média via l'interface web de Zabbix, assurez-vous d'avoir sélectionné le bon type de média lors de la configuration des actions. Si vous utilisez un script, vérifiez que le chemin du script est correct et que le script a les permissions d'exécution nécessaires.

Étiquettes: Zabbix alertes Notifications e-mail SMTP

Publié le 4 juillet à 17h08