| Scroll Ignore | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
Contexte
L'envoi de mail se fait en utilisant 2 modèles de contenu
- un pour le titre
- un pour le corps du mail.
Suivant 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 JAMAIS modifier les fichiers livrés par Shinken.
- 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 4 modèles de mail :
- Pour les hôtes et clusters,
- un pour le titre du mail
- un pour le contenu du mail
- Pour les checks :
- un pour le titre du mail
- un pour le contenu du 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 notify-host-by-email - Commande de notification ), les options suivantes définissent les chemins des fichiers :
| Code Block | ||||
|---|---|---|---|---|
| ||||
--title-tpl $NOTIFPLUGINDIR$/host_alert_title_template.tpl
--content-tpl $NOTIFPLUGINDIR$/host_alert_content_template.tpl |
Bonnes pratiques
| 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. |
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.tpl
cp /var/lib/shinken/libexec/notifications/host_alert_content_template.tpl MY_NAME_host_alert_content_template.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
Utilisation de Jinja
Le fichier ( .tpl ) utilise des données renvoyées par le script.
- Vous n'avez pas la main sur le nommage des données, vous pouvez seulement les utiliser.
- Voici la liste des données utilisables :
| Nom | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Nom de l'hôte | ||||||||||||||||||||||||
| Nom du check | ||||||||||||||||||||||||
| Le type de notification envoyé. Cela correspond au type d'événement qui a été constaté sur l'élément.
| ||||||||||||||||||||||||
| retard de la notification | ||||||||||||||||||||||||
| numéro de la 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 | ||||||||||||||||||||||||
| Lien de l'élément sur l'interface Shinken | ||||||||||||||||||||||||
| Auteur de la "Prise en compte" | ||||||||||||||||||||||||
| Commentaire de la "Prise en compte" | ||||||||||||||||||||||||
| Auteur de la "Période de maintenance" | ||||||||||||||||||||||||
| Commentaire de la "Période de maintenance" |
Exemple d'utilisation
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 | ||||||
|---|---|---|---|---|---|---|
| ||||||
{% if shinken_var['Check name'] %}
<!-- Ce code ne sera pris en compte que si la donnée shinken_var['Check name'] existe et est renseignée ->
{{ shinken_var['Check name'] }} <!-- sera remplacé dans le mail, par le contenu de shinken_var['Check name'] ->
{% endif %} |
Documentation de Jinja
Vous pouvez 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.
Restriction HTML et CSS dans les mails
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 ( certaines balises peuvent ne pas être interprétées chez certains lecteur de mail ).
Comment savoir si des balises HTML ou du CSS est interdit ?
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 )
- 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 |
|---|
Vous pouvez voir ici qu'il est supporté par 1&1 par exemple, mais pas par free.fr
Shinken et le HTML/CSS
D'autres balises HTML sont interdites par Shinken pour des motifs de sécurité.
- Il s'agit des balises Script, d'image, d'input ou d'iframe.
- Bien que très utile, elles permettent implique trop de risque pour être autorisées dans l'envoi des notifications.
3 - Cloner les commandes de notification
Pour cela, regarder la page 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 "/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
Pour cela, regarder la page Créer une méthode de notification spécifique - bonnes pratiques,
- Il faudra, dans la nouvelle méthode de notification, modifier les commandes utilisée qui doivent être créés également.
