Contexte

Plusieurs modèles vous permettent de superviser un hôte hébergeant le démon Broker ( voir la page  Le Broker ).

  • Le modèle shinken-broker pour vérifier le comportement du démon,.
  • Le modèle shinken-broker-module-metrology-writer attachera un check additionnel qui permettra de superviser l'écriture des données de métrologie.
  • Le modèle shinken-broker-module-sla-writer attachera un check additionnel qui permettra de superviser l'écriture des données de SLA.
  • Le modèle shinken-broker-module-visualisation-ui attachera un check additionnel qui permettra de superviser la lecture des données de métrologie.
    • Le modèle shinken-broker-module-visualisation-ui-sla-reader  attachera un check additionnel qui permettra de superviser la lecture des données SLA.
    • Le modèle shinken-broker-module-visualisation-ui-event-manager-reader attachera un check additionnel qui permettra de superviser la lecture des données du bac à événement.
  • Le modèle shinken-broker-module-event-manager-writer  attachera un check additionnel qui permettra de superviser l'écriture des données du bac à événement.
  • Le modèle shinken-broker-db  attachera quant à lui, les checks qui permettront de superviser la base utilisée par Shinken pour le démon Broker.

Description du modèle

Modèle d'hôte correspondant:  shinken-broker   (notez que ce modèle hérite du modèle   shinken , shinken-deamon  et shinken-broker-db )

Afin de superviser le démon Broker, le modèle  shinken-broker  appliqué à votre hôte, attachera plusieurs checks qui vérifieront la santé et la performance de ce démon.

Checks

Broker - $KEY$ - Alive

Vérifie que le démon Broker peut être correctement contacté sur le réseau, que la version du démon est affichée dans le ( Résultat court ) et aussi que les modules sont opérationnels ( Résultat long ).

Si jamais le démon Arbiter est en exécution sur une machine virtuelle supervisée par VMware, alors le pourcentage de temps de vol de CPU ( CPU Stolen ) sera affiché.



Broker - $KEY$ - Performance API Connection

Vérifie les temps de connexion vers le Broker.

Broker - $KEY$ - Performance Modules Queues

Vérifie les performances des modules du Broker.

Broker - DB - Connection

Vérifie le temps de connexion à la base de données.

Broker - DB - Last Flush Time

Vérifie la durée du dernier "Flush" de la base de données.

La version de Shinken est accompagnée d'une mise à jour de MongoDB. Cette nouvelle version comporte notamment un changement de la méthode de sauvegarde des objets au sein de Mongo.

Sur une installation neuve de Shinken, le nouveau format (WiredTiger) est utilisé, ce qui rend le "Broker - DB - Last Flush Time" non pertinent. Dans ce cas, ce check aura le résultat suivant :

Dans le cas d'une mise à jour de Shinken, la méthode de stockage des données dans Mongo n'est pas modifiée et le check "Broker - DB - Last Flush Time" a le même comportement que précédemment.



Broker - DB - Open Connections

Vérifie le nombre de connexions en cours sur la base de données.

Lors de la mise à jour de Shinken une montée de version de MongoDB est effectuée. Le check "Broker - DB - Lock Time Percentage" devient obsolète et peut être désactivé. La source "cfg-file-shinken" propose la désactivation du check, mais ne peut pas le supprimer automatiquement.

Un démon spare n'a pas à avoir la même liste de module que son master

Quand le master est configuré pour avoir un spare qui n'a pas la même liste de modules que lui, le check ajoute un message d'information le précisant :

Consulter l'option suivante dans la configuration du master ( voir la page Le Broker ).

broker__manage_spare__spare_must_have_the_same_list_of_module_type

Données du modèle

Les checks du Broker peuvent être configurés via des données fournies par le modèle.

Les données suivantes sont disponibles :


NomModifiable surUnitéDéfaut

Valeur par défaut

à l'installation de Shinken

Description
CHECK_SHINKEN_TIMEOUT

l'Hôte

( Onglet Données )

seconde

33

Temps maximum durant lequel le check va attendre une réponse du démon.

THRESHOLD_CPU_STOLEN_CRITICAL

l'Hôte

( Onglet Données )

%

1010Seuil de CPU volé sur une machine virtuelle supervisée par VMware avant de déclencher un critique.
THRESHOLD_CPU_STOLEN_WARNING

l'Hôte

( Onglet Données )

%

55Seuil de CPU volé sur une machine virtuelle supervisée par VMware avant de déclencher un warning.
BROKER_PORT

Modèle d'hôte

( Onglet Données )

---7772 7772

Configuration du port de communication avec le Broker.

DB_PORT

shinken-broker

( ou shinken-synchronizer voir note ci-dessous )

---

27017 27017

Configuration du port de communication avec la base de données.

DB_CONNECTION_METHOD

shinken-broker

( ou shinken-synchronizer voir note ci-dessous )

---ssh ssh

Méthode de connexion au serveur MongoDB

Valeur possible :

  • direct
  • ssh
DB_SSH_USER

shinken-broker

( ou shinken-synchronizer voir note ci-dessous )

---

shinken shinken

Utilisateur distant avec lequel se connecter au serveur hébergeant MongoDB.

DB_SSH_KEY

shinken-broker

( ou shinken-synchronizer voir note ci-dessous )

---

~/.ssh/id_rsa ~/.ssh/id_rsa Clé SSH privée permettant la connexion au serveur hébergeant MongoDB.
DB_SSH_TUNNEL_TIMEOUT

shinken-broker

( ou shinken-synchronizer voir note ci-dessous )

seconde

5 5 Temps avant le déclenchement d'un timeout lors de la connexion ssh avec la base de données.
DB_USER_NAME

shinken-broker

( ou shinken-synchronizer voir note ci-dessous )

---

NONENONE

Nom de l'utilisateur à utiliser pour l'authentification avec mot de passe à la base MongoDB. 

'NONE' est traitée comme une absence de valeur.

Utile uniquement si l'activation par mot de passe a été activé (  voir la page MongoDB - activation de l'authentification par mot de passe ).

DB_USER_PASSWORD

shinken-broker

( ou shinken-synchronizer voir note ci-dessous )

---

NONENONE

Mot de passe de l'utilisateur utilisé pour l'authentification avec mot de passe à la base MongoDB.

'NONE' est traitée comme une absence de valeur.

Utile uniquement si l'activation par mot de passe a été activé (  voir la page MongoDB - activation de l'authentification par mot de passe ).

DB_SSL_CA_FILE

shinken-broker

( ou shinken-synchronizer voir note ci-dessous )

---

NONENONE

Chemin vers le fichier de l’autorité de certification ( CA ) utilisé pour vérifier le certificat SSL de MongoDB.

'NONE' est traitée comme une absence de valeur.

DB_SSL_PEM_KEY_FILE

shinken-broker

( ou shinken-synchronizer voir note ci-dessous )

---

NONENONE

Chemin vers le fichier contenant le certificat SSL du client.

'NONE' est traitée comme une absence de valeur.

DB_SSL_PEM_KEY_PASSWORD

shinken-broker

( ou shinken-synchronizer voir note ci-dessous )

---

NONENONE

Mot de passe du certificat SSL du client.

'NONE' est traitée comme une absence de valeur.

DB_SSL_CRL_FILE

shinken-broker

( ou shinken-synchronizer voir note ci-dessous )

---

NONENONE

Chemin vers le fichier CRL ( liste de révocation ) des certificats SSL à rejeter.

'NONE' est traitée comme une absence de valeur.

DB_SSL_ALLOW_INVALID_HOSTNAMES 

shinken-broker

( ou shinken-synchronizer voir note ci-dessous )

---

falsefalseAccepter le certificat SSL de MongoDB même si le nom d’hôte ne correspond pas à celui du serveur.
DB_SSL_ALLOW_INVALID_CERTIFICATES

shinken-broker

( ou shinken-synchronizer voir note ci-dessous )

---

falsefalseAccepter le certificat SSL de MongoDB même s’il est invalide ( par exemple, expiré ).
BROKER_LIST

l'Hôte

( Onglet Données )

---broker-master$($_HOSTBROKER_PORT$)$ broker-master$($_HOSTBROKER_PORT$)$

Liste d'Arbiter (  Multi-démon   )

Check(s) impacté(s) :



Voir la page de Sécurisation des connexions aux bases MongoDB pour plus d'information sur un paramétrage sécurisé.


Métriques enregistrées

Les checks du modèle enregistrent des données de performance, qui peuvent ensuite être affichées dans l'interface de Visualisation sur l'Onglet Graphiques ou bien le Widget Graphique.

Nom du checkNom de la métriqueExplication

Broker - $KEY$ - Alive

connexion_time

Temps de connexion en secondes pour contacter le démon

Broker - $KEY$ - Alive

cpu_stolen__vmware__percent_ready

Seulement si le démon est situé sur une VM VMWare

Valeur de l'indicateur VMWare %ready ( temps de blocage de la VM avant d'avoir accès à ses VCpu, donc temps perdu du point de vue de la VM )

Broker - $KEY$ - Performance API Connectionget_lock_timeTemps de connexion et d'obtention d'un appel bloquant dans le démon et ainsi voir si les appels bloquants ne sont pas trop long
Broker - $KEY$ - Performance Modules Queues*.data_queueTaille de la file d'attente des envois de Broks vers les modules externes. Un élément étant rajouté par seconde, ceci représente le nombre de secondes de Brok reçus qui n'ont pas encore été récupérés par le module.

Commandes

Nom du check

Commande du check

Ligne de commande

Broker - $KEY$ - Alivecheck_shinken_broker!alive!$VALUE1$$PLUGINSDIR$/check_shinken -H "$HOSTADDRESS$" -p "$ARG2$" --shinkenversion "$SHINKENVERSION$" -t broker -m $ARG1$ --timeout $_HOSTCHECK_SHINKEN_TIMEOUT$ -w $_HOSTTHRESHOLD_CPU_STOLEN_WARNING$ -c $_HOSTTHRESHOLD_CPU_STOLEN_CRITICAL$
Broker - $KEY$ - Performance API Connectioncheck_shinken_broker!api_connection! $VALUE1$ $PLUGINSDIR$/check_shinken -H "$HOSTADDRESS$" -p "$ARG2$" --shinkenversion "$SHINKENVERSION$" -t broker -m $ARG1$ --timeout $_HOSTCHECK_SHINKEN_TIMEOUT$ -w $_HOSTTHRESHOLD_CPU_STOLEN_WARNING$ -c $_HOSTTHRESHOLD_CPU_STOLEN_CRITICAL$

Broker - $KEY$ - Performance Modules Queuescheck_shinken_broker!modules_queue! $VALUE1$

$PLUGINSDIR$/check_shinken -H "$HOSTADDRESS$" -p "$ARG2$" --shinkenversion "$SHINKENVERSION$" -t broker -m $ARG1$ --timeout $_HOSTCHECK_SHINKEN_TIMEOUT$ -w $_HOSTTHRESHOLD_CPU_STOLEN_WARNING$ -c $_HOSTTHRESHOLD_CPU_STOLEN_CRITICAL$

Broker - DB - Connectioncheck_shinkendb_connection$PLUGINSDIR$/check_shinkendb.py -D -H "$HOSTADDRESS$" -P "$_HOSTDB_PORT$" --connection-method "$_HOSTDB_CONNECTION_METHOD$" --ssh-user "$_HOSTDB_SSH_USER$" --ssh-keyfile "$_HOSTDB_SSH_KEY$" --ssh-tunnel-timeout "$_HOSTDB_SSH_TUNNEL_TIMEOUT$" -A connect -W "$_HOSTDB_CONNECT_WARN$" -C "$_HOSTDB_CONNECT_CRIT$"  --user "$_HOSTDB_USER_NAME$" --pass "$_HOSTDB_USER_PASSWORD$" --ssl "$_HOSTDB_USE_SSL$" --ssl-ca-cert-file "$_HOSTDB_SSL_CA_FILE$" --ssl-cert-file "$_HOSTDB_SSL_PEM_KEY_FILE$" --ssl-cert-key-password "$_HOSTDB_SSL_PEM_KEY_PASSWORD$" --ssl-allow-invalid-hostnames "$_HOSTDB_SSL_ALLOW_INVALID_HOSTNAMES$" --insecure "$_HOSTDB_SSL_ALLOW_INVALID_CERTIFICATES$" --ssl-crl-file "$_HOSTDB_SSL_CRL_FILE$"
Broker - DB - Last Flush Timecheck_shinkendb_last_flush$PLUGINSDIR$/check_shinkendb.py -D -H "$HOSTADDRESS$" -P "$_HOSTDB_PORT$" --connection-method "$_HOSTDB_CONNECTION_METHOD$" --ssh-user "$_HOSTDB_SSH_USER$" --ssh-keyfile "$_HOSTDB_SSH_KEY$" --ssh-tunnel-timeout "$_HOSTDB_SSH_TUNNEL_TIMEOUT$" -A last_flush_time -W "$_HOSTDB_LAST_FLUSH_TIME_WARN$" -C "$_HOSTDB_LAST_FLUSH_TIME_CRIT$" --user "$_HOSTDB_USER_NAME$" --pass "$_HOSTDB_USER_PASSWORD$" --ssl "$_HOSTDB_USE_SSL$" --ssl-ca-cert-file "$_HOSTDB_SSL_CA_FILE$" --ssl-cert-file "$_HOSTDB_SSL_PEM_KEY_FILE$" --ssl-cert-key-password "$_HOSTDB_SSL_PEM_KEY_PASSWORD$" --ssl-allow-invalid-hostnames "$_HOSTDB_SSL_ALLOW_INVALID_HOSTNAMES$" --insecure "$_HOSTDB_SSL_ALLOW_INVALID_CERTIFICATES$" --ssl-crl-file "$_HOSTDB_SSL_CRL_FILE$"
Broker - DB - Open Connectionscheck_shinkendb_open_connections$PLUGINSDIR$/check_shinkendb.py -D -H "$HOSTADDRESS$" -P "$_HOSTDB_PORT$" --connection-method "$_HOSTDB_CONNECTION_METHOD$" --ssh-user "$_HOSTDB_SSH_USER$" --ssh-keyfile "$_HOSTDB_SSH_KEY$" --ssh-tunnel-timeout "$_HOSTDB_SSH_TUNNEL_TIMEOUT$" -A connections -W "$_HOSTDB_CONNECTIONS_WARN$" -C "$_HOSTDB_CONNECTIONS_CRIT$" --user "$_HOSTDB_USER_NAME$" --pass "$_HOSTDB_USER_PASSWORD$" --ssl "$_HOSTDB_USE_SSL$" --ssl-ca-cert-file "$_HOSTDB_SSL_CA_FILE$" --ssl-cert-file "$_HOSTDB_SSL_PEM_KEY_FILE$" --ssl-cert-key-password "$_HOSTDB_SSL_PEM_KEY_PASSWORD$" --ssl-allow-invalid-hostnames "$_HOSTDB_SSL_ALLOW_INVALID_HOSTNAMES$" --insecure "$_HOSTDB_SSL_ALLOW_INVALID_CERTIFICATES$" --ssl-crl-file "$_HOSTDB_SSL_CRL_FILE$"

Check : Broker - $KEY$ - Alive

Description des erreurs

Erreur de surcharge des disques de logs

En cas de disques trop lent sur le volume des logs, le check sera mis en WARNING avec l'erreur suivante.

Erreur de vol de CPU

Seulement si votre machine virtuelle est hébergé sur un hyperviseur VMWare

  • Votre machine à du vol de CPU :
    Lorsque le CPU se fait voler trop de temps de calcul, le check sera mis en WARNING  ou en CRITIQUE
    ( en fonction du taux de vol ) avec l'erreur suivante.

Un démon spare n'est assigné sur aucun démon master

Un spare n'est pas assigné à un démon master:

Lorsqu’un démon Broker spare n'est assigné par aucun démon master, il est inutile, et remonte en erreur dans le check, tout comme dans la commande shinken-healtcheck, afin qu'il soit rapidement identifié et corrigé.

Problème de conflits d'Arbiters

  • Conflits d'Arbiters :

    Si le démon est contacté par des Arbiters qui ne sont pas sur la même architecture ( par exemple un Arbiter de Production et un autre de l'environnement de Testing ), le check sera mis en CRITICAL .



  • Conflit d'Arbiters qui ont le même nom d'Architecture :

 

Comme dans le cas précédent, le démon est contacté par des Arbiters d'architectures différentes, mais qui ont le même nom. On sort également en CRITICAL mais en avertissant que les noms sont identiques, et en indiquant où changer le nom de vos architectures.

Les serveurs ne sont pas à la même heure

Si le serveur n'est pas à la même heure que le serveur Arbiter ( qui fait office de référence ), une erreur CRITICAL sera levée, car des temps différents sur les différents serveurs va avoir des effets désastreux sur la cohérence des données de supervision.

La dernière connexion de l'Arbiter remonte à trop longtemps

Si la dernière connexion de l'Arbiter remonte à trop de temps, le démon va lever un WARNING . Ceci peux être dû:

  • Les Arbiters MASTER et SPARE sont réellement éteints
  • Les Arbiters MASTER et SPARE sont en train d'envoyer des configurations à d'autres démons, et ne peuvent donc pas contacter ce démon pour l'instant.

Le temps pris en compte comme limite de dernière connexion est de check_interval * max_check_attempts du démon ( définis dans sa configuration ).

Les valeurs par défauts sont de 60s * 3, soit 3 minutes.

Erreur d'un démon bloqué, qui doit être redémarré

  • Si un démon est dans un état bloqué, il doit être redémarré. Si c'est le cas:
    • les checks seront en ERROR avec le message suivant,
    • il faut ouvrir un ticket à votre support pour analyser le blocage

Le démon a bloqué une tentative de chargement d'objet malveillant

Il est possible qu'un démon puisse détecter et bloquer une tentative d'injection d'objet malveillant par le biais de l'une de ses routes.

Un message est remonté :

  • le nombre total de ces tentatives que le démon a bloqué ce jour ( le compte commence à minuit ) ;
  • pour chacune des tentatives ( maximum 3 ) :
    • descriptif de l'objet que l'attaquant essaye de charger,
    • sa provenance de l'attaque, par exemple le nom de la route utilisée, et l'IP à la source de l'attaque,
    • sa date.

Le démon est en cours d'arrêt

Lorsque le démon est en cours d'arrêt, le check le signale, et les informations relatives aux modules ne sont plus disponibles