Contexte

Jinja est un outil de templating qui est utilisé par Shinken pour la mise en forme des notifications par mail.

Il permet facilement de concevoir un mail dynamique en fonction de vos besoins.

Bonnes pratiques

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.

Faites une copie des templates utilisés par les commandes de notification qui vous ont été fournies lors de l'installation.



Nous vous recommandons de conserver le préfixe [ host_ | service_ ] afin d'identifier plus facilement vos templates.

cd /var/lib/shinken/libexec/notifications
cp host_alert_content_template.tpl <nom de votre fichier>
cp service_alert_content_template.tpl <nom de votre fichier>

Cloner et éditer les commandes de notification par mail

Clonez les commandes suivantes ( voir la page Actions de masse ( Shinken admin ) ).

  • notify-host-by-email
  • notify-host-by-email-with-images
  • SHINKEN EXAMPLE [ notify-host-by-email-with-thresholds ] - Clone it before usage
  • notify-service-by-email
  • notify-service-by-email-with-images
  • SHINKEN EXAMPLE [ notify-service-by-email-with-thresholds ] - Clone it before usage

Editez ensuite les commandes ainsi obtenues. De cette manière, vous pourrez les renommer à votre convenance, mais aussi et surtout, faire en sorte que ces dernières utilisent vos propres templates, en modifiant la valeur passée à l'argument --content-tpl.

Par exemple, si votre copie du template s'appelle host_alert_content_template_custom.tpl


Rattacher les commandes à une méthode de notifications

Clonez également les méthodes de notification correspondantes afin d'y rattacher vos commandes personnalisées ( voir la page Créer une méthode de notification spécifique - bonnes pratiques )


Utilisation de Jinja

Le template utilisé par les commandes de pack Shinken utilise toutes les données dynamiques utilisables au sein des templates. Le template génère le mail au format HTML, pour des raisons de mise en page.

Il vous est possible de soumettre à conditions l'intégration dans le mail, de certaines parties du template.

Par exemple, dans le template fourni avec le pack pour les mail de notification liés aux checks, le code suivant

    {% if shinken_var['Acknowledge author'] %}
        <tr>
            <th class="even">Author</th>
            <td class="even">{{ shinken_var['Acknowledge author'] }}</td>
        </tr>
        <tr>
            <th class="odd">Comment</th>
            <td class="odd" style="word-break:break-all;">{{ shinken_var['Acknowledge data'] }}</td>
        </tr>
    {% endif %}

signifie que les deux lignes affichant respectivement l'auteur et le commentaire de l'action de prise en compte, ne s'afficheront que si l'information a été communiquée à la commande de notification, c'est à dire, uniquement lors d'une prise en compte.