Le modèle shinken-scheduler vous permet de superviser un hôte hébergeant le démon Scheduler.
Modèle d'hôte correspondant : shinken-scheduler (notez que ce modèle hérite du modèle shinken et shinken-deamon )
Afin de superviser le démon Scheduler, le modèle shinken-scheduler appliqué à votre hôte, attachera plusieurs checks qui vérifieront la santé et la performance de ce démon.
Vérifie que le démon Scheduler peut être correctement contacté sur le réseau et affiche son numéro de version.
Affiche également le nombre d'éléments qu'il gère dans un tableau, en distinguant les hôtes, les Clusters et les Checks et le Total des éléments. ( Résultat court )
Présente la liste les démons auxquels le Scheduler doit se connecter, et l'état des connexions ( Résultat long ).
Donne un état des modules chargés ( Résultat long ).
|
|
Affiche l'utilisation CPU ainsi que les statistiques des Pollers et des Reactionners qu'il gère. Si des limites de CPU ou de RAM sont atteintes sur vos Pollers, alors ces limites seront affichées.
Si certains de vos Pollers sont en spare, ils seront également affichés, avec le texte ( SPARE ) après leurs noms.
Le retour du check Scheduler - Performance contient également un tableau de classification des checks ordonnancés par le Scheduler.
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é.
|
|
Les checks du Scheduler peuvent être configurés via des données fournies par le modèle. Les paramètres SSH sont décrits sur la page Rétention Mongodb
Les données suivantes sont disponibles pour le Scheduler :
| Nom de la donnée | Description | Valeur par défaut | Hérité du modèle d'hôte ou locale |
|---|---|---|---|
| SHINKEN_PROTOCOL | Protocole utilisé pour établir la connexion avec le Scheduler | http | shinken |
| CHECK_SHINKEN_TIMEOUT | Timeout utilisé pour établir la connexion avec le Scheduler, également utilisé par le Scheduler pour tester ses connexions vers les autres démons | 3 | shinken |
| SCHEDULER_PORT | Port utilisé pour établir la connexion avec le Scheduler | 7768 | Locale |
| SCHEDULER_LIST | Liste de Scheduler ( Multi-démon ) | scheduler-master$($_HOSTSCHEDULER_PORT$)$ | Locale - Voir la page : Dupliquer des checks en fonction d'une liste de valeurs présentes dans la Donnée d'un hôte (duplicate_foreach) |
| PASSIVE_POLLER_LATENCY | Latence de connexion ( en secondes ) au-delà de laquelle le check sort en erreur | 0.5 | Locale |
| SCHEDULER__RETENTION__RENTENTION-IS-TOO-OLD-AFTER_X_MINUTES | Temps ( en minutes ) additionnel de marge rajouté à l'intervalle de sauvegarde de la rétention avant qu'une rétention ancienne ne soit déclarée trop vieille et retourne en WARNING. | 5 | Locale |
| THRESHOLD_CPU_STOLEN_WARNING | Seuil de CPU volé ( en pourcentage ) sur une machine virtuelle supervisée par VMware avant de déclencher un warning | 5 | shinken-deamon |
| THRESHOLD_CPU_STOLEN_CRITICAL | Seuil de CPU volé ( en pourcentage ) sur une machine virtuelle supervisée par VMware avant de déclencher un critique | 10 | shinken-deamon |
Les checks du modèle shinken-scheduler enregistrent des données de performance, qui peuvent ensuite être affichées dans l'interface de Visualisation sur l'Onglet Graphes ou bien le Widget Graphique. Voire les pages : Onglet Graphes et Widget Graphique
| Nom du check | Nom de la métrique | Explication |
|---|---|---|
Scheduler - $KEY$ - Running Well | 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 ) |
Scheduler - $KEY$ - Running Well | nb_checks | Nombre de checks gérés par ce Scheduler. |
Scheduler - $KEY$ - Running Well | nb_clusters | Nombre de clusters gérés par ce Scheduler. |
Scheduler - $KEY$ - Running Well | nb_hosts | Nombre de hôte gérés par ce Scheduler. |
Scheduler - $KEY$ - Running Well | nb_late_checks | Nombre d'exécutions de checks ( pour les pollers ) en retard de lancement ( late ) dans ce Scheduler |
Scheduler - $KEY$ - Running Well | nb_late_notifications | Nombre d’exécutions de notifications ( pour les reactionners ) en retard de lancement ( late ) dans ce Scheduler |
Scheduler - $KEY$ - Running Well | nb_late_event_handlers | Nombre d’exécutions d'event handlers ( pour les reactionners ) en retard de lancement ( late ) dans ce Scheduler |
Scheduler - $KEY$ - Performance | average_scheduler_cpu_estimated_overload | Estimation de la surcharge du Scheduler.
|
Scheduler - $KEY$ - Performance | average_scheduler_cpu_usage | Durée d'un cycle de traitement du Scheduler.
|
Scheduler - $KEY$ - Performance | 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 ). |
Scheduler - $KEY$ - Performance | 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 ). |
Scheduler - $KEY$ - Performance | notifications_todo_by_sec | Nombre de notifications générées par seconde dans le Scheduler ( moyenne glissante calculée sur 1 min ). |
Scheduler - $KEY$ - Performance | 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 ). |
| Scheduler - $KEY$ - Performance | load_retention_time | Durée en seconde du dernier chargement de rétention |
Scheduler - $KEY$ - Performance | 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 ). |
Scheduler - $KEY$ - Performance | nb_pollers | Nombre de Pollers connectés à ce Scheduler. |
Scheduler - $KEY$ - Performance | nb_pollers_in_overload | Nombre de Pollers connectés à ce Scheduler en surcharge. |
Scheduler - $KEY$ - Performance | nb_reactionners | Nombre de Reactionners connectés à ce Scheduler. |
Scheduler - $KEY$ - Performance | nb_reactionners_in_overload | Nombre de Reactionners connectés à ce Scheduler en surcharge. |
| Scheduler - $KEY$ - Performance | save_retention_time | Durée en seconde de la dernière sauvegarde de rétention |
Nom du check | Commande du check | Ligne de commande |
|---|---|---|
| Scheduler - $KEY$ - Performance | check_shinken_scheduler!stats!$VALUE1$ | $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$ |
| Scheduler - $KEY$ - Running Well | check_shinken_scheduler!alive!$VALUE1$ | $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$ |
Les modes dépréciés ("-m") :
Si votre Scheduler est en bon état de fonctionnement, c'est-à-dire qu'il permet d'ordonnancer correctement tous les checks et de recevoir les résultats de ces checks en temps et en heure, alors le statut du retour du check "Scheduler - Running Well" est OK.
Résultat court :
Suite à ce retour, les informations suivantes sont disponibles dans le résultat court :
|
Résultat long :
Les informations suivantes sont également disponibles dans le résultat long :
|
Lorsque le Scheduler est en attente de la configuration de l'Arbiter, le résultat court du check affiche un message d'avertissement pour le signaler. Le résultat long du check reste vide.
|
Lorsque le Scheduler supervisé n'est pas de la même version, le check renvoie une information le signalant, et toute autre information n'est pas disponible dans le résultat court ou dans le résultat long .
|
|
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
|
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é.
|
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.
|
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 :
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.
|
Résultat court :
Quand le Scheduler ne parvient pas à communiquer avec un ou plusieurs Schedulers du royaume, ceux-ci sont listés avec :
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.
|
Il peut arriver que vos Pollers ne permettent pas d'absorber tous les checks ordonnancés par le Scheduler, et dans ce cas, certains seront en retard ! Les checks sont considérés en retard s'ils dépassent 10 secondes à partir du moment où ils sont mis à disposition des Pollers par les Schedulers.
L'état de retour du check "Scheduler - $KEY$ - Running Well" est alors WARNING . Le nombre de checks en retard et le pourcentage des checks en retard par rapport au volume géré par le Scheduler sont affichés.
Le volume géré par le Scheduler est calculé à partir de ces données :
Le nombre de checks en retard est ensuite affiché par Poller Tag.
Pour les checks qui ont été exécutés durant les cinq dernières minutes, le temps d'attente moyen sur le Scheduler et sur le Poller est également affiché. Si ce chiffre s'approche des 10 secondes :
Ces informations sont également disponibles pour les notifications et les événements. Dans ce cas, le démon concerné est le Reactionner
Enfin, le check rappelle à quel royaume appartient le Scheduler.
|
|
|
|
|
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 ) |
|
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é :
|
Il peut arriver que vos Pollers ne permettent pas d'absorber tous les checks ordonnancés par le Scheduler, et dans ce cas, certains seront en retard ! Les checks sont considérés en retard s'ils dépassent 10 secondes à partir du moment ou le Scheduler les a mis à disposition des Pollers.
L'état de retour du check "Scheduler - $KEY$ - Running Well" est alors WARNING et le nombre de checks en retard avec le pourcentage des checks en retard par rapport au volume géré par le Scheduler sont affichés.
Le volume géré par le Scheduler est calculé à partir :
Le nombre de checks en retard est ensuite affiché, groupé par Poller Tag.
Pour les checks qui ont été exécutés durant les cinq dernières minutes, le temps d'attente moyen sur le Scheduler et sur le Poller avant d'être traité est également affiché. Si ce chiffre s'approche des 10 secondes :
Ces informations sont également disponibles pour les notifications et les événements. Dans ce cas, le démon concerné est le Reactionner.
Enfin, le check en WARNING rappelle à quel royaume appartient le Scheduler.
|
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.
L'ensemble des informations se retrouve dans le résultat court du check.
|
Seulement si votre machine virtuelle est hébergé sur un hyperviseur VMWare
|
|
Les données de rétention sont chargées/sauvegardées par les démons Schedulers. Un affichage permet de voir :
|
|
Si la dernière sauvegarde de rétention est trop vieille, c’est-à-dire plus que retention_interval + SCHEDULER__RETENTION__RENTENTION-IS-TOO-OLD-AFTER_X_MINUTES, alors un WARNING sera remonté.
|
Si le dernier essai en date de sauvegarde de rétention est en ERROR , alors un message sera disponible avec le dernier message du module en question.
|
Suite aux statistiques générales, un premier tableau rassemble les données de performance des satellites du Scheduler de type Poller.
La première partie du tableau ( les trois premières colonnes ) permet d'identifier les Pollers en affichant leurs noms, leurs appartenances à un Royaume, et enfin leurs tags ( None si aucun tag n'est associé au Poller ).
|
Les deux colonnes suivantes affichent les performances de traitement des checks des Pollers :
Vous pourrez donc avoir l'information du nombre de checks récupérés et traités par vos différents Pollers rattachés à ce Scheduler et ainsi pouvoir comparer les performances de vos Pollers suivant leur positionnement dans votre architecture réseau, ou suivant leur puissance matérielle.
|
La colonne "CPU available" concerne les performances CPU des Pollers.
Cette information représente la charge du Poller. Il s'agit d'un indicateur général indiquant si le Poller peut encore supporter des checks supplémentaires, ou s’il est chargé au maximum. Cet indicateur n'est pas lié aux autres indicateurs de performances de la machine ( File d'attente CPU, mémoire )
Une pastille orange précédant la mention "Poller load" signifie que le Poller ne peut plus prendre de checks supplémentaires.
C'est donc un signe indiquant qu'il faudrait ajouter un Poller supplémentaire dans l'architecture Shinken.
Si tous vos Pollers sont en surcharge, alors les checks ne pourront plus être récupérés, et vous aurez des retards visibles dans le retour de votre check "Scheduler - Running Well".
Il vous faudra de toute urgence rajouter des Pollers dans votre royaume.
|
Voici par exemple une surcharge d'un Poller.
|
La colonne "CPU used by the poller" permet d'afficher la consommation CPU utilisée par le Poller. Comme son nom l'indique, un graphique est associé à ce check et permet d'afficher cette métrique.
Lorsque le Poller utilise le maximum de CPU possible sur le serveur, une information apparaît.
Cette valeur de CPU utilisée par le Poller ne sera jamais à 100%, car le système Linux hébergeant le démon utilise une partie du CPU, comme les applications additionnelles que ce serveur peut utiliser.
Plus il y a d'application sur votre serveur Poller consommant du CPU, moins votre démon pourra utiliser de CPU à ses fins et atteindra rapidement sa charge maximale utilisable ( bien en deçà de 100% ).
|
Lorsque la limite est atteinte, voici l'affichage dans le tableau.
|
La dernière colonne du tableau représente le pourcentage de RAM utilisé sur le serveur.
Si la valeur détectée est inférieure à la limite définie, alors la consommation est considérée comme normale et la pastille "normal" est affichée.
La limite paramétrée dans le Poller est affichée entre parenthèses.
|
Si l'utilisation de la mémoire (RAM) sur le serveur dépasse le seuil défini dans la configuration de ce Poller, une pastille rouge de dépassement est affichée, indiquant l'utilisation excessive de la mémoire. Lorsque cet avertissement est affiché, le Poller n'exécute plus de checks supplémentaires tant que l'utilisation de la mémoire est supérieure au seuil défini.
|
Si par exemple le CPU n'est pas utilisé au maximum de ses performances, mais que sa "running queue" ( file d'attente ) est importante, la limitation de CPU ne peut prévenir ce cas.
Pour s'assurer que le Poller ne tente d'exécuter des checks sur une machine surchargée le Poller se limitera en fonction de l'état de la file d'attente processeur ( représentant la valeur source du load average ).
Dans ce cas, le Poller n'exécutera plus de checks supplémentaires tant que le nombre de processus dans la file d'attente du processeur sera supérieur au seuil choisi. La limite paramétrée dans le Poller est affichée entre parenthèses.
|
Lorsque la limite est atteinte pour ce Poller, alors le check "Scheduler - Performance" ajoute une pastille rouge vous informant du dépassement de la limite.
|
Suite aux statistiques des Satellites de type "Poller", un deuxième tableau rassemble les données de performance des satellites du Scheduler de type Reactionner.
Les trois premières colonnes représentent, comme pour le tableau précédent, les données d'identification des Reactionners venant récupérer les notifications auprès du Scheduler.
Les deux colonnes suivantes permettent d'obtenir les statistiques des notifications à traiter par les Reactionner ainsi que les notifications déjà réalisées ( en nombre de notifications par seconde ).
Enfin les deux dernières colonnes affichent les informations CPU des Reactionners, de la même manière que pour les Pollers.
|
Le Scheduler est un ordonnanceur de checks.
Cet ordonnancement peut être fait pour différentes raisons qui sont énumérées dans la colonne "Causes" de ce tableau ci-contre :
Pour chaque raison, le nombre de checks par seconde est affiché dans la deuxième colonne.
|
Le check "Scheduler - Performance" peut également détecter si la commande d'un check prend trop de temps CPU lors de son exécution.
Si le seuil est atteint ( et dans ce cas seulement ), le check passe en état WARNING et le tableau ci-contre apparaît dans le résultat du check.
Ce tableau contient le nom des commandes, leurs temps CPU consommés, le seuil fixé pour cette commande et la date de l'exécution.
|
Par défaut, le seuil est fixé à 5 secondes. Cette propriété nommée "Seuil d'alerte de l'utilisation CPU (sec)" est modifiable via l'UI de configuration dans les onglets "Supervision" des objets "hôte" et "check" et dans l'onglet "Général" des commandes. La clé d'import est warning_threshold_cpu_usage.
Ce paramètre est aussi modifiable globalement dans le fichier /etc/shinken/shinken.cfg.
# How many seconds a command check (for hosts, clusters and checks) is allowed to consume cpu # before raising a warning in check scheduler performance # by default: 5 #warning_threshold_cpu_usage=5 |
Après modification, un redémarrage de l'Arbiter sera ici requis.
Si un Poller est détecté comme injoignable ( par exemple s'il y a un problème réseau avec ce démon ou alors qu'il vient juste d'être désactivé depuis l'Arbiter ) alors un message est affiché.
|
|
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é :
|