Utilisation du module Webservice

Le webservice du Receiver écoute des requêtes HTTP pour ensuite effectuer des actions sur les hôtes/clusters ou checks concernés.

Un simple curl ou appel HTTP dans votre programme suffit pour envoyer des actions à Shinken.

/push_check_result :  Soumettre le résultat de check passif sur un hôte ou un check

Paramètres de l'appel

NomDescription
Méthode HTTP utilisé
POST
time_stamp
(optionnel)
Date à laquelle a eu lieu la mesure afin que Shinken puisse déterminer la date de la "Dernière Vérification".
Par défaut, la date d'appel de l'API sera utilisée.
host_name
Nom de l'hôte cible
service_description
Nom du check cible ( si résultat est celui d'un check )
return_code
Check: 0 => OK, 1 => WARNING, 2 = CRITICAL, 3 => UNKNOWN
Hôte: 0 => OK, 1,2,3 => CRITIQUE
output
Résultat du check


Exemple:

curl -u user:password -X POST -d "time_stamp=$(date +%s)&host_name=host-checked&service_description=service-checked&return_code=0&output=Everything OK" http://shinken-srv:7760/push_check_result


Comme pour l'écriture d'un check, le résultat long doit être séparé du résultat par un retour à la ligne à l'aide du caractère "\n".

L'exemple suivant permet d'envoyer un résultat et résultat long:

curl -u user:password -X POST -d $'host_name=host-checked&service_description=service-checked&return_code=0&output=short_update\nlong_output' http://shinken-srv:7760/push_check_result


On note dans l'exemple précédent que la chaîne de caractères passées dans le curl pour les données POST est passée avec:

$'chaine'

et non

"chaine"

pour ordonner au check d'interpréter les caractères d'échappement ANSI et passer un véritable '\n' au lieu de '\' suivi de 'n'.


Cette astuce fonctionne si le shell utilisé est bash et peut ne pas être utilisable dans d'autres shells, ou si la requête est envoyée via un autre outil ou via un script dans un autre langage.


/acknowledge: Mettre un Prise en compte sur un hôte, un cluster ou un check

Paramètres de l'appel

NomDescription
Méthode HTTP utilisé
POST
action

Options disponibles: add, delete. Ajoute un supprime la prise en compte.

Par défaut: add

time_stamp
(optionnel)
La date d'activation de la prise en compte.
Par défaut, la date d'appel de l'API sera utilisée.
host_name
Nom de l'hôte cible
service_description
Nom du check cible ( si résultat est celui d'un check )
comment
Le commentaire de la prise en compte (optionnel)
notify
1 ou 0 pour notifier les contacts qui sont signalés sur l'équipement comme recevant les notifications de changement sur cet élément.
author
L'auteur de la prise en compte.
Par défaut "anonyme" qui correspond un utilisateur lambda non déclaré dans Shinken Enterprise.
sticky


Si sticky=1, la prise en compte est automatiquement enlevée lorsque l'état est OK. Si sticky=2, la prise en compte est automatiquement enlevée lorsque l'état change, peu importe, l'état (Warning → Critique par exemple).

Par défaut, sticky=1.
Option présente dans Shinken Framework, dépréciée dans Shinken Entreprise.

persistent


Si persistent=1, la prise en compte sera toujours présente après un redémarrage des services Shinken. Dans Shinken Entreprise, ce comportement est celui par défaut et ne peut pas être changé.
Option présente dans Shinken Framework, dépréciée dans Shinken Entreprise.


Exemple:

curl -u user:password -X POST -d "time_stamp=$(date +%s)&host_name=host-checked&service_description=service-checked&comment=Nous sommes entrain de corriger le problème&notify=1" http://shinken-srv:7760/acknowledge


/downtime: Mettre une période de maintenance sur un hôte, un cluster ou un check

Paramètres de l'appel

NomDescription
Méthode HTTP
POST
time_stamp
(optionnel)
La date d'envoi de la période de maintenance
Par défaut, la date d'appel de l'API sera utilisée.
host_name
Nom de l'hôte cible
service_description
Nom du check cible ( si résultat est celui d'un check )
comment
Le commentaire de la période de maintenance (optionnel)
start_time
Sous forme de timestamp: correspond à l'heure du début de la période de maintenance
end_time
Sous forme de timestamp: correspond à l'heure de fin de la période de maintenance
notify
1 ou 0 pour notifier les contacts qui sont signalé sur l'équipement comme recevant les notifications de changement sur cette élément.
author
L'auteur de la période de maintenance. 
Par défaut "anonyme" qui correspond un utilisateur lambda non déclaré dans Shinken Enterprise.


Exemple:

curl -u user:password -X POST -d "time_stamp=$(date +%s)&host_name=host-checked&service_description=service-checked&comment=Maintenance en cours&author=shinken_admin" http://shinken-srv:7760/downtime