Contexte

La supervision d'un démon Scheduler présente un grand nombre de statistiques de performances qui permettent de visualiser le travail d'ordonnancement effectué par le Scheduler, ainsi que les statistiques des Poller qui viennent se connecter à celui-ci.

Le démon Scheduler va effectuer tout le travail d'ordonnancement, et c'est à lui que vont s'adresser ( en autres ) les démons Poller et Reactionner pour récupérer les checks et les notifications à effectuer. Son bon fonctionnement est donc vital au bon fonctionnement de votre architecture Shinken. Aussi, pour dimensionner correctement une installation Shinken Entreprise, il est important de pouvoir visualiser combien de checks ses Poller satellites peuvent traiter, ainsi que leurs utilisations CPU et RAM.

Les checks du Scheduler fournis dans le pack Shinken proposent donc un grand nombre de données sur les performances du Scheduler et de ses Pollers.


Paramétrage

Le check utilise la ligne de commande suivante :

$PLUGINSDIR$/check_shinken -H "$HOSTADDRESS$" -p "$ARG2$" --shinkenversion "$SHINKENVERSION$" -t scheduler -m $ARG1$ -l "lck-$LASTSERVICECHECK$"
 --passive_poller_latency "$_HOSTPASSIVE_POLLER_LATENCY$" --timeout "$_HOSTCHECK_SHINKEN_TIMEOUT$" -w "$_HOSTTHRESHOLD_CPU_STOLEN_WARNING$" -c 
"$_HOSTTHRESHOLD_CPU_STOLEN_CRITICAL$" --scheduler_too_old_retention_save_margin "$_HOSTSCHEDULER__RETENTION__RENTENTION-IS-TOO-OLD-AFTER_X_MINUTES$"

Données utilisées provenant du modèle

Données communes pour les checks du modèle

Données spécifiques pour ce check

 Pas de données spécifique pour ce check.

Les données DFE ( Duplicate Foreach )

NomModifiable sur UnitésDéfautValeur par défaut à l'installation de ShinkenDescription
SCHEDULER_LIST
SCHEDULER_LIST
--

Modèle d'hôte

( Onglet Données )

9768

Configuration du port de communication avec l'Arbiter.

Autres check(s) impacté(s) :

Note : Cette valeur remplacera dans la commande la valeur $ARG2$

Données utilisées provenant du check

 Pas de données provenant du check pour ce check.

Données globales

Résultat

Exemple

Interprétation

Statut

Il peut prendre quatre valeurs  OK / CRITIQUE / ATTENTION   /   INCONNU .

  • Le statut va dépendre du retour de sonde et de la configuration spécifique du check pour les données suivantes :
    •   THRESHOLD_CPU_STOLEN_CRITICAL
    •  THRESHOLD_CPU_STOLEN_WARNING
    •  SCHEDULER__RETENTION__RENTENTION-IS-TOO-OLD-AFTER_X_MINUTES    
    •  POLLER_NB_CHECK_IN_TIMEOUT_TOLERATE
    •  CHECK_SHINKEN_TIMEOUT 
  • Voici un tableau récapitulatif du statut attendu suivant le retour de sonde.


Les vérifications communes


Les vérifications spécifiques

Situation

Statut

En fonction du pourcentage de CPU volé :

  • Si c'est supérieur à THRESHOLD_CPU_STOLEN_CRITICALpar défaut : 10% )

CRITIQUE

En fonction du pourcentage de CPU volé :

  • Si c'est supérieur à THRESHOLD_CPU_STOLEN_WARNING( par défaut : 5% )

ATTENTION

Le temps de connexion à la base de données :

  • Si c'est supérieur à SCHEDULER__RETENTION__RENTENTION-IS-TOO-OLD-AFTER_X_MINUTES (  par défaut : 5%  )

ATTENTION

Le temps de connexion à la base de données :

  • Si c'est supérieur à POLLER_NB_CHECK_IN_TIMEOUT_TOLERATE (  par défaut : 0  )

ATTENTION

Si la sonde n'a pas eu de réponse avant le temps maximum

  • Si supérieur à CHECK_SHINKEN_TIMEOUT par défaut : 3 sec )
INCONNU

Résultat

Renvoi au format texte : 

  • Le nombre de checks effectués par seconde par le Poller supervisé.

Résultat Long

Dans le Résultat long du check "Poller - Performance", deux tableaux présentent des statistiques sur les temps d'exécution des checks dans le Poller.

  • Le premier tableau affiche les 5 checks consommant le plus de temps CPU parmi l'ensemble des checks exécutés sur le Poller.
    Dans ce tableau, pour chaque check sont affichés le nom du check, l'hôte sur lequel il est accroché, et le temps d'exécution du check.

  • Un deuxième tableau présente la répartition du temps d'exécution des checks. Dans le tableau en exemple, on voit que les checks exécutés sur ce Poller s'exécutent majoritairement en moins de 50ms.

Description des erreurs

Problèmes réseau
Latence réseau importante vers des Pollers passif

Quand la connexion vers un ou plusieurs Pollers passifs souffre d'une latence réseau trop importante, cette information est remontée dans le résultat court  

La récupération des données de connectivité prend trop de temps

Quand le check ne parvient pas à récupérer les données de connectivité du Scheduler, la cause est indiquée dans le résultat court  et le tableau affichant l'état des connexions dans le résultat long n'est plus affiché. 

Le timeout du check est trop court

Quand le timeout associé à ce check est inférieur au paramètre timeout renseigné dans la configuration d'un des démons que doit contacter le Scheduler, il se peut que la connexion vers ce démon échoue lors du test de connectivité.

Résultat court :

Un message d'avertissement signale que certains démons nécessitent un timeout plus élevé pour être contacté, et une valeur conseillée est affichée.

Résultat long :

Dans ce cas, le Status dans le  résultat long  précise que l'erreur peut être liée au délai trop court accordé pour tester la connexion. Il est alors conseillé d'augmenter le timeout du check pour que le test soit pertinent.

Démons passifs injoignables

Résultat court :

Quand la connexion vers certains Pollers passifs ou certains Reactionners passifs est impossible, le résultat court du check liste les démons injoignables, en précisant pour chacun :

  • Le nom
  • L'adresse et le port de connexion
  • Les tags gérés

Ceux-ci sont regroupés par type ( Poller ou Reactionner ), un compteur indique le nombre de passifs injoignables et le nombre total de démons du même type disponible ( passifs et actifs )

Résultat long :

Le tableau du résultat long , indique les problèmes de connectivité dans la colonne Status, avec un message précisant leur nature. 

Schedulers injoignables

Résultat court  :

Quand le Scheduler ne parvient pas à communiquer avec un ou plusieurs Schedulers du royaume, ceux-ci sont listés avec :

  • Leur nom
  • Leur adresse
  • Leur port de connexion

Un compteur indiquant le nombre de Schedulers injoignables et le nombre total de Schedulers disponibles est également affiché.

L'indisponibilité d'un ou plusieurs Scheduler pouvant perturber le calcul des états de clusters, un message d'avertissement le précisant est également ajouté.

Résultat long  :

Le tableau listant les connexions du Scheduler, indique les problèmes de connectivité vers les autres Schedulers dans la colonne Status, avec un message précisant la nature du problème.

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.







Métriques

NomUnitéDescription
checks_todo_by_sec
--

Nombre de vérifications d'hôtes et de checks générées par seconde dans le Scheduler ( moyenne glissante calculée sur 1 min ).

nb_reactionners_in_overload
--

Nombre de Reactionners connectés à ce Scheduler en surcharge.

nb_pollers
--Nombre de Pollers connectés à ce Scheduler.
nb_reactionners
--

Nombre de Reactionners connectés à ce Scheduler.

checks_done_by_sec
--Nombre de résultats de vérification d'hôtes et de checks donnés par les Pollers par seconde ( moyenne glissante calculée sur 1 min ).
average_scheduler_cpu_usage
--

Durée d'un cycle de traitement du Scheduler.

  • Le maximum est à 100.
  • Plus cette valeur est haute plus cela indique une charge sur le Scheduler.
notifications_and_event_handlers_done_by_sec
--Nombre de notifications & event handlers fait par les Reactionners par seconde ( moyenne glissante calculée sur 1 min ).
notifications_todo_by_sec
--Nombre de notifications générées par seconde dans le Scheduler ( moyenne glissante calculée sur 1 min ).
save_retention_time
--Durée en seconde de la dernière sauvegarde de rétention
event_handlers_todo_by_sec
--

Nombre d'event handlers générées par seconde dans le Scheduler ( moyenne glissante calculée sur 1 min ).

load_retention_time
--

Durée en seconde du dernier chargement de rétention

average_scheduler_cpu_estimated_overload
--

Estimation de la surcharge du Scheduler.

  • Si cette métrique est à zéro alors le Scheduler n'est pas en surcharge.
  • Si cette métrique est trop souvent supérieure à 0, c'est l'indication qu'il y a besoin d'un Scheduler supplémentaire.
nb_pollers_in_overload
--

Nombre de Pollers connectés à ce Scheduler en surcharge.