View Full Version : Mails en couleurs
naparuba
11th June 2008, 14:19
Bonjour,
Les mails de notifications de Nagios sont classiquement au format texte, généré par un printf envoyé directement à la commande mail.
Ceci à le mérite d'être très robuste, mais les mails ainsi générés sont plutôt... moches.
Une solution est de mettre en place un script d'envoi de mails au format html+texte. Dans le zip se trouvent deux scripts: un pour l'envoi de mails de notifications pour les hosts, et un autre pour les services. Ils ne sont pas finis mais on le mérite de fonctionner. Ils sont en perl (version de développement 0.0.1.beta.alarache). Ils sont libre d'utilisation, de modification etc etc. Bref, GPLV2.
Question déclaration dans nagios/centreon:
$USER1$/sendmailhost.pl "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$HOSTSTATE$" "$HOSTADDRESS$" "$HOSTOUTPUT$" "$SHORTDATETIME$" "$CONTACTEMAIL$"et
$USER1$/sendmailservices.pl "$NOTIFICATIONTYPE$" "$SERVICEDESC$" "$HOSTALIAS$" "$HOSTADDRESS$" "$SERVICESTATE$" "$SHORTDATETIME$" "$SERVICEOUTPUT$" "$CONTACTEMAIL$"Il faut le module perl Mail::sendmail pour qu'ils fonctionnent.
3.14
17th June 2008, 10:14
Merci mon dieu, ça fait 2 jours que jsui sur ce problème; merci ;)
naparuba
17th June 2008, 10:29
Mais de rien :)
Zack
23rd June 2008, 16:16
Félicitation, l'idée est bonne, le script efficace et fonctionnel.
Bravo, rien de plus à dire.:D
WAtt
1st October 2008, 10:29
Salut
Il existe une nouvelle version des scripts ?
naparuba
1st October 2008, 11:30
Pas vraiment, il faut que je les corrige pour qu'ils soient un peu plus "W3C compliant" mais je n'ai pas encore eu le temps :???:
gueutzilla
10th February 2009, 15:56
Pour info j'avais un soucis même après avoir installer module perl Mail::sendmail.
Je recevait une erreur :-bash: ./sendmailservices.pl: /usr/bin/perl^M: bad interpreter: No such file or directory
Je l'ai corriger en installant flip (sudo apt-get install flip) et en executant :flip -u sendmailservices.pl
flip -u sendmailhost.pl
maintenant j'ai des jolie alerte:
***** Centreon Notification *****
Type: PROBLEM
State: CRITICAL
Service: TOTO
Host: Serveur test (IIS, mssql2005)
Address: HOST.MON.IP.LOCAL
Date/Time: 10-02-2009 15:48:13
Additional Info: Connection refused
Je vais essayer de l'améliorer un peut avec mon dévellopeur ;o)
Merci pour ces script ^^
[EDIT]
Savez vous si il est possible de changer le nom dans le header From avec ces scripts???
En effet avec nagios j'obtiens ceci lors d'une alerte:
De: Nagios Alerte [nagios@mondomaine.com]
Donc le nom qui apparait à la réception du mail est: Nagios Alerte.
Lorsque j'utilise le script, je reçoit uniquement l'adresse mail:
De : NAGIOS@MONDOMAIN.COM
Je souhaite donc ajouter un nom un peu plus pertinant que l'affichage de l'adresse mail dans le header From ;o)
Avez vous une idée???
Merci ;o)
guiparm
3rd June 2009, 14:37
Bonjour,
j'ai un petit souci, voici mon message d'erreur quand j'essai de lancer un ./sendmailhost.pl
Error: No recipient!
j'ai bien installé le paquet perl : Mail::sendmail
et rajouter flip, mais rien n'a changer.
help please.
guiparm
3rd June 2009, 14:41
Toute mes escuses ....
sa marche parfaitement.
Beau travail.
Arvin
20th August 2009, 16:27
Je viens de tester ce plugin, ca marche bien sauf que je n'ai pas la couleur dans mes emails (mais bien en gras)
Forcement, ça semble plutot venir de MS Outlook 2003 qui est utilisé....
j'ai qd même essayé de modifier les plugin, sans succés d'où ma question:
est ce que certain d'entre vous ayant MS Outlook 2003 recoivent bien les mails avec les couleurs ?
Merci d'avance
Edit du 21 aout
J'ai trouvé le problème qui était une petite erreur dans le code HTML du script.
J'ai modifié les balises <span style> de la manière suivante et cela fonction bien:
<span style='color:$color'>
<span style='color:$colorstate'>
martin_k
22nd October 2009, 09:57
Je souhaite donc ajouter un nom un peu plus pertinant que l'affichage de l'adresse mail dans le header From ;o)
Avez vous une idée???
Merci ;o)
Voici la ligne à changer pour obtenir un nom un peu plus pertinent :
from => 'Serveur-Supervision <nagios-supervision@domaine.com>',Et voilà ;)
bigoud
12th January 2010, 10:50
Bonjour à tous,
merci pour les scripts, ils marchent bien.
J'ai seulement un soucis, je reçoit des notifications en couleur et des notifications en noir et banc.parfois en double avec une de chaque. Vous savez pourquoi? Je ne sais pas pourquoi nagios continue d'envoyer des notifications au format ancien alors que j'ai bien configuré la commande de notification dans centreon.
Est-ce que sendmail remplace exim4, faut'il arreter exim4 (ou postfix pour d'autres)?
merci d'avance
naparuba
12th January 2010, 11:32
C'est parfois ou tout le temps le coup des mails en double? Regardes dans le nagios.log, il marque les notifications qu'il envoi, tu as peu être un doublon de user ou de commande de notification.
bigoud
12th January 2010, 11:56
Merci de ta réponse rapide et de m'aider!
Le coup des mails en double, je sais pas encore, pour l'instant on reçoit rien mais je crois que c'est parfois, je te dirais ça aux prochaines alertes.
Il y a un administrateur qui travaille avec moi et qui reçoit les alertes en temps normal. A cause du pb d'alertes, j'ai mis mon mail à la place du sien dans les contacts centreon le temps que je trouve une solution : son mail n'apparaît plus nul part dans centreon.
Une fois ceci fait, lui ne reçoit plus que les alertes en noir et blanc(les anciennes) et moi je reçoit celles en couleur. J'ai beau chercher, je ne comprend pas pourquoi il reçoit toujours des mails...
Any idea?
je te tiens au courant pour les doublons
bigoud
12th January 2010, 14:54
Les notifications ne sont pas toutes en double. Il n'y a pas de différence de configuration entre les hôtes pour lesquels les notification sont en double et les autres...
naparuba
13th January 2010, 09:34
Que dis le nagios.log lors des envois de notifications?
bigoud
13th January 2010, 10:16
Alors voila,
Jean-Paul est la personne qui reçoit les notification en temps normal et pour régler le problème, j'ai mis mon, adresse mail à la place de la sienne dans les contact via centreon. L'adresse de Jean-Paul n'est plus renseignée nulle part dans les utilisateurs centreon. La mienne (antoine) est renseignée dans d'autres contacts mais ils sont désactivés (ils reçoivent donc pas de notifications). On a donc un contact qui s'appelle Jean-Paul mais avec mon adresse.
Dans les notifications ci-dessous,
j'en ai reçu deux (la 2 et la 3) et Jean-Paul en a reçu 1 (la 1). Je reçoit les deux miennes en couleur et Jean-Paul reçoit la sienne en noir et blanc.
HOST NOTIFICATION: Jean-Paul;StLouis;DOWN;host-notify-by-email - Host inaccessible (10.56.xx.xx)
HOST NOTIFICATION: Antoine;StLouis;DOWN;host-notify-by-email - Host inaccessible (10.56.xx.xx)
HOST NOTIFICATION: Jean-Paul;StLouis;DOWN;host-notify-by-email;(Host Check Timed Out)
Vois-tu quelque chose d'anormal?
A-tu besoin de plus d'infos?
Merci d'avance
naparuba
13th January 2010, 10:29
Et la conf est bien réexportée? Il 'ny a bien qu'un seul Nagios qui tourne? Car s'il n'est plus dans la conf, je ne vois pas comment il peut encore être notifiée. Passe par un grep sur les fichiers de Nagios avec son email pour être sûr.
bigoud
13th January 2010, 11:00
j'ai passé un grep dans usr/local/nagios/ et pas de résultat sur l'adresse mail de Jean-Paul.
Par contre j'avais deux processus nagios qui tournaient :oops:. J'ai tué les deux processus et ndo2db et j'ai redémarré ndo puis nagios via centreon..
Les processus ont l'air OK pour l'instant.
Je te tiens au courant pour les notifications, si elles sont encore en double...
Merci de ton aide!!
bigoud
13th January 2010, 13:31
Apparemment c'était bien ça.
Merci encore!!
bigoud
25th January 2010, 16:06
Bonjour,
voila j'ai encore des petits soucis que je crois liés à la mise en place de ces scripts. L'architecture en place est la suivante :
-un serveur central avec nagios, centreon
-un serveur satellite avec nagios
-un serveur sql dédié
En ce qui concerne le serveur central et les hôtes qui lui sont liés, tout marche, je reçoit bien les alertes. Mais pour les hôtes liés aux satellite, je ne reçoit rien.
Sur ce satellite, j'ai mis les scripts avec les bons droits dans /usr/local/nagios/libexec. J'ai installé les modules perl suivants : libmail-sendmail-perl, libhtml- entities-numbered-perl, libpsp-html-parser-perl, libdbd-mysql-perl.
Le log exim4 me met des erreurs :
"message is frozen" et "unrouteable address" quand j'essaie de forcer l'envoi des mails en échecs avec la commande 'exim -qff'
qqun a une idée?
merci d'avance
bigoud
2nd February 2010, 15:46
Ok, ça marche.
J'avais oublié d'installer le module perl suivant : libxml-parser-perl.
magicbret
27th May 2010, 13:49
J'ai une question :
Faut-il installer également un serveur email sur les satellite ? Ce n'est pas le Central qui envoie les alertes en cas d'alarmes renvoyées par le satellite ?
Merci
bigoud
27th May 2010, 15:41
Il faut bien installer un serveur email sur le satellite car c'est nagios qui envoie les notifications et non centreon...
Sethi
8th June 2010, 14:25
Sendmail est il obligatoire ou est ce qu'on peut faire fonctionner tes scripts PerL avec Postfix sans que ca pose de soucis ? (j'ai une installation FAN)
naparuba
8th June 2010, 14:27
Que ce soit l'un ou l'autre normalement ce n'est pas un soucis. Postfix de préférence, vu que Sendmail c'est un peu ingérable tout de même :)
Sethi
8th June 2010, 16:15
Merci pour cette réponse rapide ;)
Sethi
9th June 2010, 09:25
J'ai ajouté les deux scripts dans les plugins, j'ai créer une commande de notification de service copier coller sur l'exemple que tu donnes page 1
mais ca ne semble pas fonctionner.
J'ai une installation FAN (CentOS avec postfix, Centreon 2, Nagios 3.06)
Est ce qu'il me manque un module pour gerer les scripts PerL ? Et sinon d'où peut venir le problème ?
(La configuration fonctionne très bien avec les notify-by-email classique et perl est bien présent dans le path)
Merci d'avance =)
naparuba
9th June 2010, 09:29
Pour savoir ce qui cloche, il va falloir le lancer à la mano sous le compte nagios du serveur et regarder le message d'erreur renvoyé.
Sethi
9th June 2010, 09:39
./sendmailhost2.pl: line1: syntax error near unexpected token 'newline'
./sendmailhost2.pl: line1: '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
Les arguments que j'ai mis n'etais pas complet (je savais pas trop quoi mettre pour $NOTIFICATIONTYPE$ $HOSTOUTPUT$ $SHORTDATETIME$ mais vu l'erreur je pense pas que ce soit le problème)
naparuba
9th June 2010, 10:18
Heu... je ne l'ai pas en stock ce script N°2 tiens. Tu peux me l'envoyer par mail? naparuba _at_ gmail.com que je teste.
Pinault22
9th June 2010, 10:25
En première page tu l'a ?
naparuba
9th June 2010, 10:27
Bon je vais reprendre un café, car là je ne le vois pas.
Sethi
9th June 2010, 10:31
Heu... je ne l'ai pas en stock ce script N°2 tiens. Tu peux me l'envoyer par mail? naparuba _at_ gmail.com que je testeC'est le tient que j'ai juste renommé pour éviter d'écraser celui deja present
edit : ola ah oué je viens de comparer le contenu ca correspond pas il m'a recuperé du html, y a visiblement eu un problème lors du téléchargement je vais revoir ca et je vous tient au courant. Le wget doit pas etre fait pour ce genre de truc.
naparuba
9th June 2010, 10:32
C'est vrai qu'un script perl qui commence en XML, c'était un peu space...
Sethi
9th June 2010, 11:03
Etant donné que j'utilise Postfix je dois changer la 3eme ligne non ?
"Use Mail::Sendmail 0;75"
Et si oui par quoi ?
Rien d'autre a changé lié a ça ?
Thx
naparuba
9th June 2010, 11:05
Sans y toucher ça donne quoi?
Sethi
9th June 2010, 12:32
Ok c'est bon ca marche, j'ai personnalisé 2,3 petites choses aux niveaux de l'adresse et de l'aspect du message c'est niquel.
Merci bien ;)