Envoyer les alertes mail Zabbix par Gmail et G-Suite

Mon établissement utilise G-Suite (anciennement les Google Apps), et je souhaite faire en sorte que mon serveur Zabbix envoi les mails par l'intermédiaire de Google mail (oui, je sais, c'est maaaaaal !).

Jusqu'à là ça peut paraitre simple, mais je n'ai pas réussi à paramétrer Zabbix pour cet envoi... Pourtant, tout semble être présent dans les paramétrage d'envois mail : serveur SMTP, port, adresse d'envoi, identifiant et mot de passe, TLS/SSL...

Après quelques recherche, j'ai trouvé une petite astuce permettant de contourner le problème.

La source est ici, mais en anglais et pas à jour avec la version actuelle.

Alors voici son actualisation in French dans le texte.

Création du compte mail

Sur Gmail, ou sur votre domaine hébergé chez Google, créez une adresse mail et son mot de passe associé. Pour mon exemple :

  • adresse mail : zabbix@mon_domaine.com (ça marcherait aussi avec zabbix_mon_domaine@gmail.com)
  • mot de passe : pass_mail_zabbix

J'ai l'habitude de m'y connecter pour finaliser la création, je suis pas sûr que ce soit nécessaire.

Installation et configuration des logiciels

Sur votre machine hébergeant Zabbix (je suis sur une appliance avec une base Ubuntu, cf. article d'installation précédant si nécessaire).

Connectez vous la console (compte root initial : appliance / zabbix).

Installation du soft nécessaire :

sudo apt install ssmtp mailutils

Édition du fichier de configuration :

sudo nano /etc/ssmtp/ssmtp.conf

Y adapter les paramètres à votre besoin :

root=zabbix@mon_domaine.com
mailhub=smtp.gmail.com:587
rewriteDomain=mon_domaine.com
hostname=zabbix.zabbix.lan
UseTLS=Yes
UseSTARTTLS=Yes
AuthUser=zabbix@mon_domaine.com
AuthPass=pass_mail_zabbix
FromLineOverride=YES

Tests de l'envoi de mail

Toujours dans la console, tapez :

echo "Ceci est un message de 'hostname -f' " | mail -s "Test zabbix" moi@mon_domaine.com

Dans l'ordre des paramètres :

  1. corps du message
  2. sujet du mail
  3. adresse mail à joindre

Il est possible que Google vous bloque... Dans ce cas, il faut vous connecter sur Gmail avec votre compte zabbix@mon_domaine.com, puis aller sur : https://www.google.com/settings/security/lesssecureapps pour autoriser l'utilisation avec une application moins de sécurisée (nécessaire pour moi).

Ensuite, essayez à nouveau d'envoyer le mail de test.

Création du script

Oui, mais où ???

Le site source indique de créer le fichier ici : /usr/local/share/zabbix/alertscript, mais ce répertoire n'existe pas chez moi.

Comme je suis sur une version 3.2 et qu'en plus j'utilise une appliance, j'ai besoin de trouver l'emplacement ou créer ce script en analysant le fichier : /etc/zabbix/zabbix_server.conf

J'en déduis que le script doit être placé ici : /usr/lib/zabbix/alertscripts

Création du fichier :

sudo nano /usr/lib/zabbix/alertscripts/zabbix-sendmail

Contenu du script :

#!/bin/bash
echo "$3" | /usr/bin/mail -s "$2" $1

Appliquer les autorisations pour que le script puisse s’exécuter :

chmod +x /usr/lib/zabbix/alertscripts/zabbix-sendmail

Test du script

Et on teste le script :

/usr/lib/zabbix/alertscripts/zabbix-sendmail moi@mon_domaine.com "Test Zabbix, étape 2" "Contenu du message"

Configurer Zabbix pour l'envoi de mail par ce script

Il faut maintenant dire à Zabbix comment utiliser ce script.

Création et configuration du média

Sur votre site Zabbix, connecté en administrateur.

Administration > Type de médias > Créer un type de média

Choisissez :

  • Nom : un nom unique et compréhensible « Zabbix-sendMail (Gmail) »
  • Type : « Script »
  • Nom du script : le nom du fichier que vous avez créé : « zabbix-sendmail »
  • Paramètres du script (dans l'ordre) :
    • {ALERT.SENDTO}
    • {ALERT.SUBJECT}
    • {ALERT.MESSAGE}

Cliquez ensuite sur « Actualiser ».

Configuration pour l'utilisateur

Au lieu d'utiliser le média « Email », chaque utilisateur doit demander à utiliser ce script.

Administration > Utilisateurs > Média > Ajouter ; ou dans le profil de l'utilisateur > Média > Ajouter

Sélectionnez :

  • Type : « Zabbix-sendMail (Gmail) »
  • Envoyer : adresse mail de l'utilisateur
  • Lorsque actif : si vous voulez gérer les horaires d'alertes (7 jours sur 7 et 24h sur 24)
  • Utiliser si sévérité : je décoche « Non classé » et « Information »

Cliquez ensuite sur « Ajouter ».

Puis sur « Actualiser ».

Done

Et c'est ok, vous devriez recevoir vos messages... Mais bon, en même temps, c'est mauvais signe quand les messages arrivent !

5 réflexions au sujet de « Envoyer les alertes mail Zabbix par Gmail et G-Suite »

  1. Bonjour,
    J’ai bien suivi votre tutoriel (merci au passage!)

    Le script fonctionne bien depuis le serveur.
    En revanche, je ne reçois rien de Zabbix ? J’ai reboot un serveur monitoré et aucune alerte mail.. une piste d’idée pour un débutant sous zabbix ?

    Merci

    1. Bonjour,
      Si j’ai bien compris, les phase de tests d’envoi mail par le serveur, et le script sont OK, mais c’est zabbix qui ne déclenche pas l’envoi ?

      Il faut vérifier les paramètres du dernier paragraphe je pense (envoi mail pour utilisateur).
      Vérifier que l’utilisateur est bien censé recevoir les alertes par mail (dans quel groupe est-il et quelles machines surveille-t-il, quel événement est censé envoyer un alerte au groupe).

      Peut être aussi créer des événements (cf article suivant) pour voir si ça se déclenche à la demande à partir de zabbix.

    2. Bonjour, il manque la partie « Action » à configurer.

      Il faut aller dans le menu Configuration/Action et en haut à droite « Create Action »

      Simply

  2. Bonjour,

    j’ai un souci, zabbix ne m’envoie pas de mail quand c’est OK (situation revenue à la normale), pouvez vous m’aider?
    il s’agit de test de latence Ping. il m’envoie un mail quand [ping>seuil en ms] mais quand c’est OK, il n’y a rien or normalement il doit me notifier que c’est rétabli.

    Merci.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *