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 :
- corps du message
- sujet du mail
- 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 commentaires
Nico · 15 mars 2017 à 9 h 29 min
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
Éric B. · 18 mars 2017 à 14 h 26 min
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.
Giovanni · 23 juin 2017 à 19 h 44 min
Bjr,
Il manque cette partie ci tiré d’un autre tuto (https://www.tecmint.com/configure-zabbix-to-send-email-alerts-to-gmail/) :
11. On the next step, enable the default zabbix alerts by navigating to Configuration -> Actions, select as the Event Source – > Triggers from the right menu and hit on Disabled Status in order to enable it. Repeat the step for Event Source – > Internal or other custom created Actions and you’re done.
Shikamaru · 15 juin 2017 à 10 h 37 min
Bonjour, il manque la partie « Action » à configurer.
Il faut aller dans le menu Configuration/Action et en haut à droite « Create Action »
Simply
Michel · 4 septembre 2017 à 11 h 14 min
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.