...
Le receiver a un module spécial pour les checks passifs. Ce module est appelé ws-arbiter et va ouvrir par défaut le port 7760 TCP/HTTP. Vous pourrez inscrire vos checks dans le receiver grâce à ce module. L'Arbiter viendra alors récupérer cet état et le fera passer au Scheduler.
Configuration du module
La configuration de ce module se trouve dans le fichier /etc/shinken/modules/ws-arbiter.cfg
Par défaut ce sera :
| Code Block |
|---|
#=============================================================================== # ws-arbiter (webservice) #=============================================================================== # Daemons that can load this module: # - receiver # - arbiter # This module is a webservice that can be used to send checks to Shinken Enterprise # as POST HTTP(s) #=============================================================================== define module { #======== Module identity ========= # Module name. Must be unique module_name ws-arbiter # Module type (to load module code). Do not edit. module_type ws_arbiter host #======== Listening address ========= # host: IP address to listen to. # note: 0.0.0.0 = all interfaces. host 0.0.0.0 port 7760 username anonymous ; If # port to listen port 7760 # HTTPs part, enable if you want auth, set username and password. #password secret }to set the listening for HTTPS instead of default HTTP. # disabled by default. Set your own certificates. use_ssl 0 ssl_cert /etc/shinken/certs/server.cert ssl_key /etc/shinken/certs/server.key #======== HTTP authentification ========= # You can use HTTP basic authentification method for this module. # If username is set to anonymous and password is commented, then # no authentification will be required. username anonymous #password secret } |
Les valeurs peuvent être :
- module_name: définit un nom unique pour le module
- module_type: doit être ws_arbiter
- host: l'adresse à écouter IP . 0.0.0.0 signifie "toutes les interfaces"
- port: port TCP à écouter
- use_ssl et ssl_cert / ssl_key : permet que le module écoute sur le port en SSL (protocole HTTPS) et d'utiliser des certificats
- username&password: si mis à "anonymous" aucune accréditation nécessaire. si Si vous mettez un nom utilisateur/mot de passe, une authentification est nécessaire
Exemple d'un push de check passif :
Pour passer le résultat d'un check d'un hôte:
| Code Block |
|---|
curl -u user:password -d "time_stamp=$(date +%s)&host_name=hostmon-checkedhote&service_description=service-checkedcheck-de-mon-hote&return_code=0" --data-urlencode "&output=Everything OK" http://shinkenip-du-srvreceiver:7760/push_check_result |
- (optionnel) time_stamp= horodatage du check
- host_name= nom de l'hôte auquel vous voulez envoyer le check
- (si check) service_description = nom du check pour lequel vous voulez pousser un résultat
- return_code= [ 0,1,2,3 ] valeur pour le code retour. (pour rappel 0 = OK, 1 = WARNING, 2 = CRITIQUE, 3 = UNKNOWN)
- output= texte simple pour le check
-u user:password : necessaire que si le module demande une authentification
Voici un autre exemple de curl avec un résultat qui contient des caractères spéciaux :
| Code Block |
|---|
curl -d "host_name=mon-hote&return_code=2&output=*DOWN:état incorrect*" http://ip-du-receiver:7760/push_check_result |