Cette documentation a pour but de montrer comment un cluster peut superviser des hôtes et/ou des checks venant de royaumes différents. Exemple : Vous souhaitez superviser un site internet depuis 2 datacenter différents qui sont dans des royaumes différents et remonter l'information dans un cluster pour n'être alerté qu'en cas de défaillance des 2 datacenters.
Le concept est d'utiliser le module receiver-module-webservice pour envoyer des traps.
La solution proposée permettra de remonter n’importe quel résultat de checks ou d'hôtes le cluster.
Prenons par exemple la surveillance d'un site internet www.shinken-enterprise.com dans 2 royaumes différent et le résultat sera envoyé sur un hôte hôte_global dont les checks seront appelés via un cluster nommé cluster_global :
|
Pour cet exemple, basé sur le schéma ci-dessus, la supervision du site doit envoyer l'information à l'hôte sur le royaume principal, sur le même nom de check.
Dans notre exemple, pour un objet hôte, créons par exemple la commande ( dans l'interface de configuration ) ayant le nom "envoi-statut-hote" et avec la ligne de commande :
/var/lib/shinken-user/libexec/submit_host_result_to_receiver "$HOSTADDRESS$" $SERVICESTATEID$ "$SERVICEOUTPUT$" IP-RECEIVER-CENTRAL |
Si on doit effectuer l'envoi du statut d'un check, voici l'exemple de la commande ayant le nom "envoi-statut-check" et avec la ligne de commande :
/var/lib/shinken-user/libexec/submit_check_result_to_receiver "$HOSTADDRESS$" "$SERVICEDISPLAYNAME$" $SERVICESTATEID$ "$SERVICEOUTPUT$" IP-RECEIVER-CENTRAL |
Le contenu du script se trouve dans cette partie de la documentation : Script d'interprétation des traps avec le module receiver-module-webservice
|
Configuration :
Créez l'hôte H1 (attention, le nom doit être exactement le même que celui défini dans l'architecture Shinken du réseau isolé)
Passez H1 en mode Passif :
|
Pour générer un retour CRITIQUE dans le cas où l'hôte ne reçoit pas d'information externe, nous vous conseillons de définir la commande de supervision de H1 par la commande "Check Dummy" avec par exemple en argument : 2!Pas de données récentes reçues
Pour un check, vous pouvez renvoyer un état UNKNOWN avec comme arguments : 3!Pas de données récentes reçues
Pour que cette commande soit exécutée, dans l'onglet expert de H1, passez la propriété "Vérification que l'état reçut des outils externes ne soit pas expiré" à VRAI et passez la propriété "Seuil d'expiration des états reçus des outils externes ( x secondes )" à 300 (ou via CFG : check_freshness 1 et freshness_threshold 300 )
|
Et voilà, à chaque changement d'états de l'hôte H1 du réseau isolé, la commande "envoi-statut-hote" sera lancée, et mettra à jour l'hôte de même nom sur le réseau central.
Pour tester le bon fonctionnement du module receiver-module-webservice, vous pouvez exécuter simplement cette commande depuis un terminal :
curl -u user:password -X POST -d "time_stamp=`date +%s`&host_name=mon_hote&service_description=mon_check&return_code=0&output=Statut OK" http://IP-DU-RECEIVER:7760/push_check_result |
Vérifiez alors que l'état de votre hôte depuis l'interface de visualisation de votre réseau Shinken Central a bien été modifié.
Au minimum, pour faire communiquer les deux infrastructures, il faut autoriser une communication entre l'IP hébergeant le démon Reactionner qui enverra les commandes d'Event Handler, et l'IP hébergeant le démon Receiver (port 7760 du module receiver-module-webservice) à l'écoute des commandes.