Contexte

Afin de pouvoir recevoir des notifications, Shinken comprend un certain nombre de commandes qu'il faudra importer et appliquer sur les utilisateurs à notifier.

  • Les commandes de notifications livrées sont généralistes et ne permettent pas de répondre à tous les besoins.
  • Si vous devez modifier un élément ( méthode de notification ou commande ) livré par un pack Shinken pour un besoin spécifique,
    • il est important de créer la vôtre,
    • car à la prochaine mise à jour de Shinken vous proposera de remplacer vos modifications.

Cette page apporte des conseils sur l'utilisation optimale des packs livrés par Shinken.

Cohabiter avec un pack livré Shinken

Pourquoi ne faut-il pas modifier les éléments livrés dans le pack ?

Des différences vous seront proposées après la mise à jour et l'import de la source "cfg-file-shinken", il vous sera donc imposé de faire un choix entre ce que vous avez surchargé et les modifications apportées par les mises à jour Shinken.

Création d'une commande pour les notifications

Création d'une commande

Vous allez devoir ou créer une nouvelle commande ou copier une existante.

Dans les 2 cas, vous devez définir :

  • Le nom de la commande
  • La ligne de commande
    • Le prochain chapitre vous donne quelques points d'accompagnement à la création de la ligne de commande.
  • Le temps d'exécution maximum :
    • Si la notification prend plus que le temps paramétré, elle sera tuée par le Reactionner et donc ne sera pas envoyé. 
    • Cela évite d'une notification soit trop gourmande et bloque toutes notifications.
  • Le Seuil d'alerte de l'utilisation CPU de la notification
  • Si elle est active
  • Et éventuellement le pack dans lequel vous voulez que la commande se trouve

Vous pouvez faire cela :

Corps de la commande

Les commandes sont exécutées par le Reactionner ( voir la page Le Reactionner ) lorsque les conditions définies par la Logique de notification sont réunies.

  • Il est possible d'utiliser des Variables pour avoir accès aux informations des éléments ( voir la page Les Variables ( Remplacement dynamique de contenu - Anciennement les Macros ) ).
  • Ces informations concernant Hôtes, Clusters, Check, Utilisateurs peuvent venir de différents endroits :
    • Une donnée globale,
    • L'élément à l'origine de la notification,
    • Le contact à notifier,
    • La notification en elle-même, notamment son type.

Voir un listing NON exhaustif des informations qui peuvent être pertinents dans une notification, mais la page Les Variables ( Remplacement dynamique de contenu - Anciennement les Macros ), vous donne la liste complète de ce qui est accessible.

Variables globales

Vous pouvez utiliser dans votre commande des Variables globales.

  • L'intérêt est d'avoir des informations fixes pour toutes vos commandes de notification.
  • Nous vous conseillons de rajouter dans le répertoire /etc/shinken/resource.d votre fichier de définition de variable globale ( Voir la page Données globales ( Répertoire resource.d ) ).
  • Pour information, les variables globales suivantes sont disponibles, pour inspiration, dans les notifications livrées par défaut.
NotationUtilisationExemple

MAILURL

L'adresse de l'UI de visualisation de Shinken ( dans le but par exemple de donner au contact un lien vers l'élément ).$MAILURL$=http://192.168.1.1:7767

SENDER

L'adresse mail de l'envoyeur, pour une notification mail.$SENDER$=notifications@shinken.com

NOTIFPLUGINDIR

Le répertoire dans lequel se trouve la commande de notification à exécuter.$NOTIFPLUGINDIR$=/var/lib/shinken/libexec/notifications

Ces trois notations spécifiques sont mises à des valeurs par défaut que vous pouvez retrouver dans le fichier email.cfg du répertoire /etc/shinken/resource.d/

  • Inspirez-vous-en, mais ne les utilisez pas, car a la prochaine mise à jour de Shinken, nous remettrons le fichier email.cfg à sa valeur d'origine.
Variables liées à l'élément

Dans le cas d'une notification de l'hôte, les variables de l'hôte sont disponibles.

  • Dans le cas d'une notification d'un check, les variables l'hôte et du check sont toutes les deux disponibles.
  • De la même façon que les variables globales, toutes les variables des éléments peuvent être utilisées, mais les variables suivantes sont spécifiquement utiles :
NotationUtilisationExemple

HOSTNAME

Le nom de l'hôte.

host france

SERVICEDESC

Le nom du check

CPU

HOSTADDRESS

L'adresse de l'hôte.

192.168.1.1

HOSTUUID, SERVICEUUID

L'identifiant Shinken de l'élément.

Hôte : 007793c6a9b84b9f96cd0663fe502cc9
Service : 007793c6a9b84b9f96cd0663fe502cc9-d9fa4c0096a211e5ae0b0800278b6434

HOSTSTATE, SERVICESTATE

Le statut de l'élément.

Hôte : OK, CRITICAL
Service : OK, WARNING, CRITICAL, ou UNKONWN

HOSTREALMSERVICECRITICAL

Royaume de l'hôte/check à notifier

France

LASTHOSTSTATEID, LASTSERVICESTATEID

Le statut précédent de l'élément, par code de retour.

  • 0 : OK
  • 1 : WARNING
  • 2 : CRITICAL
  • 3 : UNKNOWN.

0

LASTHOSTSTATECHANGE, LASTSERVICESTATECHANGE

La date du dernier changement de statut de l'élément.

Format timestamp : 1525338011

DATE

La date du dernier check.

Format date : 01-17-2020

TIME

L'heure du dernier check.

Format date : 14:40:56

HOSTOUTPUT, SERVICEOUTPUT

La sortie du check à l'origine de la notification.

Texte brut

LONGHOSTOUTPUT, LONGSERVICEOUTPUT

La sortie longue du check à l'origine de la notification.

Texte brut

_HOSTMADONNEE1

La donnée MADONNEE1 de l'hôte.

Donnée de l'hôte

_SERVICEMADONNEE2

La donnée MADONNEE2 du check.

Donnée du service

HOSTDOWNTIMECOMMENT, SERVICEDOWNTIMECOMMENT

Le commentaire du contexte "Période de maintenance".


HOSTDOWNTIMEAUTHOR, SERVICEDOWNTIMEAUTHOR

L'auteur du contexte "Période de maintenance"


ACKDATALASTSERVICECRITICAL

Le méssage du contexte "Prise en compte".


ACKAUTHOR

L'auteur du méssage du contexte "Période de maintenance".



Variables liées au contact
Notations UtilisationExemple

CONTACTPAGER

Le numéro de téléphone du contact, pour une notification téléphonique.Numéro de téléphone : 06 17 06 17 06

CONTACTEMAIL

L'adresse mail du destinataire, pour une notification mail.mon-email@shinken-solutions.com

_CONTACTMADONNEE

La donnée MADONNEE du contact
Variables liées à la notification

Des variables spéciales permettent d'avoir des données concernant la notification en elle-même et la raison pour laquelle elle a été envoyée.


Notations Utilisation
Exemple

NOTIFICATIONTYPE

Le type de notification à envoyer. Cela correspond au type d'événement qui a été constaté sur l'élément.


TypeÉvénement source
PROBLEM  Le statut de l'élément est non OK.
RECOVERYL'é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.
FLAPPINGSTART, FLAPPINGSTOP L'élément est entré ou sorti d'un contexte de FLAPPING .
FLAPPINGDISABLED  La détection a été désactivée pendant la durée du FLAPPING .
DOWNTIMESTART, DOWNTIMESTOP    L'élément est entré ou sorti d'une période programmée d'indisponibilité.
DOWNTIMECANCELLEDLa période programmée d'indisponibilité de l'élément a été annulée en cours.

ACKNOWLEDGEMENT 

Partir d'une méthode de notification existante

Pour une première commande de notification, vous pouvez vous aussi duppliquer une commande existante et la modifier.