Configurer les notifications courriels Nagios avec Gmail

Comment configurer les notifications courriels Nagios avec Gmail

Connectez-vous à votre serveur Nagios Core. Nous installerons la librairie Postfix, indiquerez vos informations de connexions que nous sécuriserons par un hash

Installer Postfix
sudo apt install postfix libsasl2-modules
Créer le fichier sasl_passwd
sudo nano /etc/postfix/sasl/sasl_passwd
Contenu du fichier sasl_passwd
[smtp.gmail.com]:587 your.email@gmail.com:yourpassword	
Sécuriser et faire un hash du fichier sasl_passwd
sudo postmap /etc/postfix/sasl/sasl_passwd
sudo chown root:root /etc/postfix/sasl/sasl_passwd /etc/postfix/sasl/sasl_passwd.db
sudo chmod 0600 /etc/postfix/sasl/sasl_passwd /etc/postfix/sasl/sasl_passwd.db
Modifier le fichier de configuration Postfix
sudo nano /etc/postfix/main.cf
Modifier le fichier cgi.cfg
# Comment those lines
#smtp_tls_CApath=/etc/ssl/certs
#smtp_tls_security_level=may
	
# Replace relayhost value
relayhost = [smtp.gmail.com]:587
	
# Add those line at the EOF
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
Redémarrer le service Postfix
sudo service postfix restart

Depuis le 30 mai 2022, Google n’autorise plus l’accès à votre compte depuis une application non-sécurisé. Ne vous en faites-pas, ce n’est pas difficile à corrigé. Connectez-vous à votre compte Google et accédé aux paramètres de sécurité. Sous l’onglet “Signing in to Google”, activez le mode d’authentification 2 Steps et appuyez sur App Password. Ajouter ensuite une nouvelle applicatoin “other” et écrivez un nom de votre application. Ceci génère un mot de passe de 16 charactères que vous devrez utiliser dans le fichier “/etc/postfix/sasl/sasl_passwd”. Répéter les opérations subséquentes et ignorez le paragraphe suivant

Gmail n’autorise par par défaut les applications utilisant un certificat self-signed. Vous devez indiquer dans votre compte Gmail, que vous autoriser les applications moins sécurisé à pouvoir l’utiliser comme relais. Accédez au paramètre de sécurité de votre compte google https://myaccount.google.com/security et activez l’option Less Secured Device. Ensuite, accéder à https://accounts.google.com/b/0/DisplayUnlockCaptcha et cliquez sur continuer.

Nous pouvons désormais faire un test d’envoi de courriel depuis votre serveur Nagios Core.

Test
echo "Test Postfix as Gmail Relay" | mail -s "Postfix Gmail" your.email@gmail.com

Vérifier que vous recevez ce courriel. Si c’est fonctionnel, vous pouvez utiliser le GUI de Nagios afin d’envoyer et de tester une notification. Accéder au détail d’un service défini et vous y trouverez une option Send custom service notification. Cocher l’option “Forced” et entrer un court texte dans le champ Comment.

Si vous ne recevez pas de courriel provenant de Nagios, vérifier le fichier de configuration commands.cfg. Accédez aux commandes notify-host-by-email et notify-service-by-email et il se peut que vous ayez à changer le mot mail par le chemin complet du service de courriel. Dans la plupart des cas, ceci devrait être /usr/bin/mail. Vous pouvez vérifier où se situe votre service de courriel avec la commande whereis mail. Voici un example des deux commandes Nagios.

La valeur command_line doit être sur une seule ligne. Donc, assurez-vous qu’il n’est pas de saut de ligne.

Test
define command {
    command_name    notify-host-by-email
    command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}

define command {
    command_name    notify-service-by-email
    command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}

Autres articles de cette série