Quest-ce qu'un webservice pour les checks passifs 

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 :

#===============================================================================
# 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


    #======== Listening address =========
    # host: IP address to listen to.
    #       note: 0.0.0.0 = all interfaces.
    host                      0.0.0.0

    # port to listen
    port                      7760

    # HTTPs part, enable if you want 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 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:

curl -u user:password -d "host_name=mon-hote&service_description=check-de-mon-hote&return_code=0&output=Everything OK" http://ip-du-receiver: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 :

curl -d "host_name=mon-hote&return_code=2&output=*DOWN:état incorrect*" http://ip-du-receiver:7760/push_check_result
  • No labels