| Scroll Ignore |
|---|
| scroll-pdf | true |
|---|
| scroll-office | true |
|---|
| scroll-chm | true |
|---|
| scroll-docbookhtml | truefalse |
|---|
| scroll-eclipsehelpdocbook | true |
|---|
| scroll-epubeclipsehelp | true |
|---|
| scroll-htmlepub | true |
|---|
|
|
L'envoi de mail se fait en utilisant des 2 modèles de mail (contenu
et contenu )Suivant le besoin, il sera nécessaire de changer le vos besoins, vous pourrez modifier le format du titre ou le contenu de vos mails.
Pour cela, il y a quelques règles à respecter :
- ne Ne JAMAIS modifier les fichiers livrés par Shinken.
- dans Dans vos propres modèles de mail, il ne faudra utiliser que les formats HTML et CSS qui sont reconnus par les clients de messagerie.
Cette page explique comment créer, utiliser et vérifier vos modèles de mail.
Modèle de mail livré avec Shinken
Shinken livre deux 4 modèles de mail :
- un pour Pour les hôtes et clusters,
- un pour le titre du mail
- un pour
les checks
Chacun est constitué de deux parties - Pour les checks :
- un pour le titre du mail
- un pour le contenu du mail
L'adresse des modèles de mail Le chemin pour charger est modèles est définie dans la commande de notification.
- Par exemple, pour la commande notify-host-by-email ( voir la page
NEW_PAGE - 003.5.6 - SEF-11240 - | Code Block |
|---|
| language | js |
|---|
| theme | Confluence |
|---|
|
--title-tpl $NOTIFPLUGINDIR$/host_alert_title_template.tpl |
--content-tpl $NOTIFPLUGINDIR$/host_alert_content_template.tpl |
| Warning |
|---|
Il vous est conseillé de conserver tous les fichiers et configuration d'origine, sinon vos modifications seront écrasées lors d'une prochaine mise à jour de ces derniers. |
Cloner la méthode de notification
Cloner les commandes de notification
( voir la page NEW_PAGE - 003.5.6 - SEF-11240 - Créer des commandes de notification spécifique - bonnes pratiques )
Il faudra, dans la nouvelle commande, modifié la "Ligne de commande" pour changer les deux options "--title-tpl" et "--content-tpl" afin de pointer sur les nouveaux fichiers créés dans l'étape suivante.
| Code Block |
|---|
|
$NOTIFPLUGINDIR$/notify_by_email.py --title-tpl $NOTIFPLUGINDIR$/host_alert_title_template_my_name.tpl --content-tpl
$NOTIFPLUGINDIR$/host_alert_content_template_my_name.tpl -F "$SENDER$" ... |
Cloner des 1- Cloner des modèles de mail
Choisir un nom pour vos fichiers ( .tpl ),
Il est recommandé de conserver le préfixe [ host_ | service_ ] afin d'identifier plus facilement vos templates.
| Code Block |
|---|
|
mkdir /var/lib/shinken-user/libexec/notifications/
cd /var/lib/shinken-user/libexec/notifications/
cp /var/lib/shinken/libexec/notifications/host_alert_title_template.tpl MY_NAME_host_alert_title_template_my_name.tpl
cp /var/lib/shinken/libexec/notifications/host_alert_content_template.tpl MY_NAME_host_alert_content_template_my_name.tpl
chown -R shinken:shinken . |
2 - Editer des modèles de mail
Le script pour envoyer les mails utilise un modèle de génération nommé Jinja.
- L'utilisation de Jinja est assez intuitive, mais voici tout de même quelques explications
Le fichier ( .tpl ) utilise des données renvoyé renvoyées par le script.
le nom - la main sur le nommage des données, vous pouvez seulement les utiliser.
- Voici la
listes - liste des données utilisables :
Hostname | Nom de l'hôte |
| Nom du check |
| No Format |
|---|
Notification type |
| Le type de notification envoyé. Cela correspond au type d'événement qui a été constaté sur l'élément. | Type de notification | Description |
|---|
| PROBLEM | Le statut de l'élément est non OK. | | RECOVERY | L'élément avait un problème, mais est de nouveau dans un statut OK. | | ACKNOWLEDGEMENT | Un utilisateur a envoyé par l'interface web un accusé de réception par rapport à un problème survenu à un hôte ou à un check. Indique le nom et le motif de la prise en compte.
| | FLAPPINGSTART | L'élément est entré d'un contexte de FLAPPING. | | FLAPPINGSTOP | L'élément est sorti d'un contexte de FLAPPING. | | FLAPPINGDISABLED | La détection a été désactivée pendant la durée du FLAPPING. | | DOWNTIMESTART | L'élément est entré d'une période programmée d'indisponibilité. Indique le nom et le motif de l'arrêt
| | DOWNTIMESTOP | L'élément est sorti d'une période programmée d'indisponibilité. | | DOWNTIMECANCELLED | La période programmée d'indisponibilité de l'élément a été annulée en cours. |
|
|
|
| No Format |
|---|
Notification delay |
| retard de la notification |
| No Format |
|---|
Notification number |
| numéro de la notification |
| No Format |
|---|
Title notification |
| Titre de la notification |
| Nom du royaume |
| Date de vérification |
| Statut de l'élément |
| Icon du statut |
| Durée depuis le changement de statut |
| Dernier statut avant changement |
| Résultat court de l'élément |
| Résultat long de l'élément |
| Nom du check |
| Lien de l'élément sur l'interface Shinken |
|
Last state| No Format |
|---|
Title notification |
| Titre de la notification
| No Format |
|---|
Dernier statut avant changement
| Auteur de la "Prise en compte" |
| No Format |
|---|
Acknowledge data |
| Commentaire de la "Prise en compte" |
| Auteur de la "Période de maintenance" |
| No Format |
|---|
downtime_comment |
| Commentaire de la "Période de maintenance" |
| No Format |
|---|
Notification delay |
| retard de la notification
| No Format |
|---|
Notification number |
| numéro de la notification
| Nom du royaume
Il vous est possible de soumettre à conditions, l'intégration dans le mail, de certaines parties du template ( dans l'exemple, on regarde s'il y a un nom de check => "Check name" ).
| Code Block |
|---|
| language | js |
|---|
| theme | Confluence |
|---|
| title | Exemple |
|---|
|
{% if shinken_var['my_varCheck name'] %}
<!-- Ce code ne sera pris en compte que si la donnée shinken_var['my_varCheck name'] existe et est renseignée ->
{{ shinken_var['my_varCheck name'] }} <!-- sera remplacé dans le mail, par le contenu de shinken_var['my_varCheck name'] ->
{% endif %} |
Il sera possible d'utiliser des boucles "for" pour créer un élément HTML à partir d'une liste ou d'objet, ou même d'attribué dynamiquement des classes à des éléments.
Vous pouvez trouvez trouver toutes les informations concernant l'outil de templating Jinja à l'adresse suivante : Jinja Documentation.
Cependant, la documentation de la version utilisée par Shinken n'est plus édité, il se peut que quelques différences soient présentes avec la version que vous utiliserez.
L'utilisation du
Restriction HTML et
du CSS dans les mails
.En plus du template, certaines propriétés comme l'affichage des seuils permettent d'afficher des informations complexes et sous différents formats. Il sera alors possible d'intégrer ces informations dans les notifications par mails.
Il faudra prendre en compte les informations suivantes concernant l'utilisation du HTML et CSS dans vos notifications.
Les logiciels mails ( Thunderbird, Outlook, Spark, ... ) et les services de mails web ( gmail, outlook ) n'interprètent pas les balises de la même manière , voir ( certaines balises sont peuvent ne pas être interprétées chez certains et pas chez d'autres.lecteur de mail ).
Si vous souhaitez intégrer du HTML et du CSS dans les notifications mail, nous vous conseillons fortement d'identifier les clients mails qui le liront et de consulter le site "Can I Email" ( voir la page Can I Email ) qui
- Il est une source d'information fiable sur la prise en charge des balises web par les principaux clients mails du marché.
Exemple pour l'utilisation du css : background image
| Panel |
|---|
Image Added
|
Vous pouvez voir ici qu'il est supporté par 1&1 par exemple, mais pas par free.fr
D'autres balises HTML sont interdites par Shinken pour des motifs de sécurité. Elles seront sauvegardées, mais ne seront ni interprétée, ni transmise lors des notifications.
- Il s'agit des balises Script, d'image, d'input ou d'iframe.
- Bien que très utile, elles permettent implique trop de
dérives - risque pour être autorisées
à passer dans le système.Il sera possible d'intégrer ces éléments directement par le template mail, mais ils ne pourront être dynamiques en fonction de vos hôtes et/ou checks.
| Code Block |
|---|
| language | js |
|---|
| theme | Confluence |
|---|
|
<td><a href="$MAILURL$" target="_blank">$HOSTNAME$ - $HOSTSTATE$</a></td> |
En fonction du ou des logiciels cible et grâce à cet outil, vous pourrez construire un affichage compatible à vos besoins graphique et aux capacités de vos clients mails.
- dans l'envoi des notifications.
3 - Cloner les commandes de notification
| Info |
Le plus simple est souvent d'utiliser une base de tableau HTML qui est correctement pris en compte par tous les clients.
| Code Block |
|---|
| language | js |
|---|
| theme | Confluence |
|---|
|
<table>
<tr>
<th style="width:100px;"> </th>
<th>Titre</th>
<th style="width:100px;"> </th>
</tr>
<tr>
<td>Nom 1</td>
<td>$HOSTNAME$</td>
<td style="width:5px;" > </td>
<td><a href="$MAILURL$" target="_blank">$HOSTNAME$ - $HOSTSTATE$</a></td> </tr>
<tr>
<td>Nom 2</td>
<td>$HOSTNAME$</td>
<td style="width:5px;" > </td>
<td>
<a href="$MAILURL$" target="_blank">$HOSTNAME$ - $HOSTSTATE$</a>
</td>
</tr>
<tr>
<td>Nom 3</td>
<td>$HOSTNAME$</td>
<td style="width:5px;" > </td>
<td> <a href="www.google.fr" target="_blank">Liens</a></td>
</tr>
</table> |
| Panel |
|---|
|
Image Removed
|
$NOTIFPLUGINDIR$/notify_by_email.py --title-tpl "/var/lib/shinken-user/libexec/notifications/MY_NAME_host_alert_title_template.tpl"
--content-tpl "/var/lib/shinken-user/libexec/notifications/MY_NAME_host_alert_content_template.tpl" -F "$SENDER$" ... |
4 - Cloner la méthode de notification
| Panel |
|---|
|
Image Removed
|
| Panel |
|---|
|
Image Removed
|
Exemple de HTML/CSS pris en charge par les notifications
- <a href="tel:+33123456789">Appeler d'urgence</a>
- <a href="mailto:exemple@domaine.com">Envoyez-nous un email</a>
- <p><i>Votre texte</i></p>
- <h1>Votre titre</h1>
- <ul><li></li><li></li></ul>
- <ol><li></li><li></li></ol>
<a style="background-color:blue;" href="tel:+33123456789">Appeler d'urgence</a><h1 style="padding:5px;" >Votre titre</h1>