Table des matières
Configuration & test de l’envoi des emails
L'ensemble du tuto est compatible avec les Esia Galaxy, Infinity et Mercury en version supérieur à la 3.2.6.
Tester l'envoi des emails
Le plugin qui se charge d'envoyer les alertes s'appelle send_mail_html.pl
Il dispose depuis la version 3.2.6 d'outils de diagnostic.
Voici l'aide de ce plugin:
Usage : send_mail.pl -e <id_error> -t <to> -c <esia config file> SEND MAIL: envoie un email d'alerte -e | --error <string> identifiant de l'erreur dans la base de données possibilité de spécifier "test" pour tester les paramètres possibilité de spécifier "min" pour tester avec une erreur base de données -t | --to <string> liste des emails destinataires (séparé par des ',' -c | --config <path> fichier de configuration d'Esia (défaut: /etc/esia/esia.conf -d | --disable-hello Désactive l'envoi du Hello -s | --ssl force l'activation SSL -D | --debug active le mode débogage -v | --verbose <integer> modifie le niveau de verbosité du mode debug (défaut: 1) si égal à 2, il active le debug du client SMTP -h | --help affiche cette aide
Pour tester les paramètres SMTP, je peux utiliser cette commande:
- copy
/usr/local/esia/plugins/alerting/send_mail_html.pl -e test -t example@mail.com
Normalement si tout se passe bien j'aurais comme sortie:
envoi réussi
Nous pouvons également activer le mode “Debug” afin de regarder ce qu'il se passe. Dans ce cas la commande ressemblera à ceci:
- copy
/usr/local/esia/plugins/alerting/send_mail_html.pl -e test -t example@mail.com -D
Et voici la sortie correspondante:
DEBUG: Chargement du fichier de configuration: /etc/esia/esia.conf DEBUG: Connexion à la base de donnée Postgresql DEBUG: ID de l'erreur selectionné test DEBUG: Connexion au serveur SMTP: FQDN user:xxxx@esia-sa.com from:xxxx@esia-sa.com helo:xxxx.esia-sa.com DEBUG: Secure mode DEBUG: Authentification DEBUG: Connexion SMTP success DEBUG: Envoi email de test DEBUG: Format et encodage de l'email DEBUG: to example@mail.com subject Test alerting esia DEBUG: Envoi de l'email envoi réussi
Erreurs possibles et leurs résolutions
Connection DB Failed
L'erreur affichée ressemblera à ceci
DBI connect('database=esia;host=localhost;port=5432','esia',...) failed: FATAL: password authentication failed for user "esia" FATAL: password authentication failed for user "esia" at ./send_mail_html.pl line 110. Connection DB Failed at ./send_mail_html.pl line 110.
Il y a donc une erreur de paramètre dans le fichier de configuration (ici: le mot de passe est erroné). Il faut donc modifier les paramètres dans le fichier /etc/esia/esia.conf (si vous êtes dans une config par défaut). Attention les paramètres utilisés dans se fichier sont les mêmes que pour le démon principal.
Could not connect to server
Les causes du problèmes sont:
- L'IP du serveur renseignée est erronée
- Le serveur Esia n'arrive pas à résoudre le nom DNS (pour vérifier la configuration DNS utiliser: nslookup +FQDN).
- Le port renseigné n'est pas bon ou pas ouvert
- Les paramètres SSL ne sont pas configuré: si vous avez renseigné le port 25 et qu'il faut SSL. Tester avec la ligne de commande suivante: send_mail_html.pl -e test -t example@mail.com –ssl
Vous pouvez reconfigurer vos paramètres mails avec la commande
- copy
usage: esia-configure -S mail [-u <user>] [-p <password] [-r <relayhost>:<port>] [-f <from>]
Could not authenticate
Le plugin n'arrive pas à s'authentifier, vérifier vos paramètres de login et de mot de passe
No data found
L'identifiant de l'erreur n'existe pas dans la base de données d'Esia (table: esia_error_happen). Essayez avec un autre ID ou avec le paramètre -e min
Esia config file not found
Le plugin ne trouve pas le fichier de configuration d'Esia (par défaut, il se situe dans /etc/esia/esia.conf). Vérifier votre paramètre -c
Le plugin ne s’arrête pas
Il peut arriver que le plugins ne s’arrête pas, la cause la plus probable est que le serveur mail ne comprend pas les caractère de fin de mail. Cela est souvent du à un problème d'encodage de caractère (charset). Le plugin envoi le mail en UTF-8.
Pour arrêter le plugin faite un ctrl+c dans votre terminal pour récupérer la main. Taper ensuite la commande suivante pour afficher les réponses de votre serveur mail (mode Debug avec une verbosité de 2)
- copy
/usr/local/esia/plugins/alerting/send_mail_html.pl -e test -t example@mail.com -D -v 2
Vous aurez la sortie suivante que vous pourrez transférer au support d'Esia.
DEBUG: Chargement du fichier de configuration: /etc/esia/esia.conf DEBUG: Connexion à la base de donnée Postgresql DEBUG: ID de l'erreur sélectionné test DEBUG: Connexion au serveur SMTP: xxxxxx:465 user:xxxxxx@esia-sa.com from:xxxxxx@esia-sa.com helo:xxxxx.esia-sa.com DEBUG: Secure mode Net::SMTP::SSL>>> Net::SMTP::SSL(1.04) Net::SMTP::SSL>>> IO::Socket::SSL(2.044) Net::SMTP::SSL>>> IO::Socket::IP(0.37) Net::SMTP::SSL>>> IO::Socket(1.38) Net::SMTP::SSL>>> IO::Handle(1.36) Net::SMTP::SSL>>> Exporter(5.72) Net::SMTP::SSL>>> Net::Cmd(3.08_01) Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 220 GARM-106R006 Thursday, February 25, 2021 Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> EHLO xxxx.esia-sa.com Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250-XXX SMTP PROXY Hello Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250-SIZE 104857600 Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250-ENHANCEDSTATUSCODES Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250-AUTH LOGIN PLAIN Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250-AUTH=LOGIN PLAIN Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250 8BITMIME DEBUG: Authentification Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> AUTH LOGIN Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 334 BXNlcm4hbWU0 Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> ZGW2YWxlcnRCZXApYS7zYS8jb10= Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 334 UGFzc2dicmQ9 Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> ZGV2YWxAcnQpMDIx Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 235 2.7.0 Authentication successful DEBUG: Connexion SMTP success DEBUG: Envoi email de test DEBUG: Format et encodage de l'email DEBUG: to example@mail.com subject Test alerting esia DEBUG: Envoi de l'email Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> MAIL FROM:<xxxxxx@esia-sa.com> Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250 2.1.0 Ok Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> RCPT TO:<example@mail.com> Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250 2.1.5 Ok Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> DATA Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 354 End data with <CR><LF>.<CR><LF> Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> To: example@mail.com Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> From: xxx@esia-sa.com Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> Content-Type: text/html; charset="UTF-8" Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> X-Mailer: Perl Sendmail Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> Subject: Test alerting esia Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> Votre test d'envoit d'email a reussi Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> <CR><LF>.<CR><LF> Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> . Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250 2.0.0 Ok: queued as ACC8E1B75F2EE Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> QUIT Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 221 esia-sa.com Service closing transmission channel envoi réussi