| Scroll Ignore | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
Intérêt global de la commande
Sur les grands environnements, la majorité de la charge CPU va être consommées par les sondes de supervision. Quand elles sont nombreuses et qu'elles sont ordonnancées avec des intervalles de temps différents, il peut être difficile :
- D'extrapoler, par rapport au nombre d'hôtes déjà présent, de combien de CPU sur ses Pollers une infrastructure a besoin.
- Sur une infrastructure, savoir qu'elles sont les sondes les plus consommatrices en termes de CPU :
- une fois identifiée, il est intéressant de passer du temps pour optimiser ces sondes afin de diminuer le nombre de CPU nécessaires.
Fonctionnement général de la commande
Récupération des données des checks auprès des Schedulers
La commande "shinken-scheduler-export-data" est seulement utilisable sur le serveur de l'Arbiter. En effet, elle se connecte sur tous les Schedulers, et c'est le seul démon habilité à cela.
La commande va lire la configuration depuis /etc/shinken et va se connecter sur tous les Schedulers qui sont définis dans l'architecture. La récupération peut se faire de deux manières différentes :
- anonyme ( aucun nom ne sera renseigné dans le fichier généré ),
- avec les noms des éléments ( voir l'option --full ).
| Info |
|---|
Une extraction sera anonymisée ( seule un hash des noms sera lisible ) sauf si l'argument : --full est ajoutée à la commande. |
Lancement de la commande
La commande accepte les options suivantes :
Nom | Type | Unité | Défaut | Commentaire | ||
|---|---|---|---|---|---|---|
| Entier | sec | 10 | Permets de configurer le temps d'attente acceptée sur les appels des Schedulers avant de retourner une erreur. | ||
| Booléen | --- | False | L'export se fait de façon anonyme, c'est-à-dire que les noms des éléments ne seront pas visibles. Si activé, l'export demandera également les noms des éléments ( Pour ce faire, il utilisera la variable scheduler__export_data__password qui devra être configurée dans les .cfg des Schedulers, voir la page Le Scheduler ). | ||
| Texte | --- | Prends le nom du royaume que l'on souhaite utiliser comme filtre afin de n'avoir que des Schedulers de ce royaume dans notre extraction de données. ( on ne peut mettre qu'un seul royaume dans le filtre ) | |||
| Entier | sec | 0 | Si un temps est défini, dans cette option, la commande rajoutera aux données actuelles, les données des checks qu'elle a pu simuler pour la période donnée. Par ex pour 3600 : on simule les checks sur 1h dans le futur, en prenant check_interval secondes des checks entre chaque lancement. | ||
| Booléen | --- | False | si activé la commande ne s’arrêtera plus si un Scheduler est éteint/mal configuré, ou s'il ne répond pas ( timeout ) sauf si cette option est activée. | ||
| --- | --- | --- | Rajout des données exportées dans le terminal. |
Résultat du lancement sur le terminal
Le lancerment de la commande fera deux choses :
- un retour dans le terminal pour voir le retour global de la commande,
- la génération d'un fichier .csv avec l'ensemble des données.
Deux exemple seront fourni pour agrémenter la documentation:
Exemple 1 : exécution avec toutes les données ( --full ) et sans simulation dans le futur.
Code Block theme Emacs shinken-scheduler-export-data --full
Exemple 2 : exécution anonyme avec une demande de simulation d'une heure supplémentaire ( --simulation-extra-period=3600 )
Code Block theme Emacs shinken-scheduler-export-data --simulation-extra-period=3600
Le retour du terminal
Le retour donne :
- la liste des Schedulers
- l'adresse du fichier ou le CSV a été généré
- le nombre d'éléments écrit ( et simulé si l'option --simulation-extra-period a été utilisé )
| Panel | ||
|---|---|---|
| ||
| Panel | ||
|---|---|---|
| ||
À noter que dans l'exemple 2, le nombre de lignes est bien plus élevée à causes des nombreuses lignes de la simulation ( 5161 au lieu de 109 dans notre exemple ).
CSV des données
Elle va générer un fichier csv dans le répertoire /tmp du serveur dont le nom va dépendre des options utilisées
- Exemple 1 :
/tmp/dump-schedulers--not-expanded--with-names--2023-01-31-14h32m54s.csv
- Exemple 2 :
/tmp/dump-schedulers--expanded-3600s--anonymous--2023-01-31-14h31m32s.csv
Contenu du fichier csv généré
Dans le fichier CSV, on a les données suivantes :
- host_uuid : Uuid de l'hôte.
- host_name : Nom de l'hôte ( présent si l'option --full est défini dans la commande ).
- host_name_anonymous_hash : Hash du nom pour l'identifier sur un export sans l'option --full.
- check_uuid : Uuid du check.
- check_name : Nom du check ( présent si l'option --full est défini dans la commande ) .
- check_name_anonymous_hash : Hash du nom pour l'identifier sur un export sans l'option --full.
- command_name : Nom de la commande ( présent si l'option --full est défini dans la commande ) .
- command_name_anonymous_hash : Hash du nom pour l'identifier sur un export sans l'option --full.
- realm : Nom du royaume ( présent si l'option --full est défini dans la commande ) .
- realm_anonymous_hash : Hash du nom pour l'identifier sur un export sans l'option --full.
- check_interval : Intervalle entre les vérifications.
- retry_interval : Intervalle de nouvelles tentatives de confirmations d'état.
- cpu_time :
- Temps CPU utilisé par la sonde.
- Format chaine de caractère représentant un float avec un "."
- À bien faire attention quand on charge dans un excel français, il faut changer le séparateur de "," à "."
- scheduled_epoch : seconde où le check est planifié ( en epoch, depuis le 1er janvier 1970 ).
- scheduled_date :
- Format YYYY-MM-DD hh:mm:ss :
- Exemple : 2023-01-31 10:49:1.
- Importable dans Excel :
- Il faut juste penser à lui demander d'afficher les secondes sur la colonne.
- Format YYYY-MM-DD hh:mm:ss :
- is_simulated :
- Booléen permettant de savoir si le check est issu d'une vraie exécution prévue dans le Scheduler, ou s'il est issu d'une simulation du check dans le futur.
Chargement et analyse des données
Chargement du fichier csv
Les fichiers CSV générés peuvent être importés dans un tableur comme Excel. L'import dans ce dernier se fait simplement, dans les autres tableurs l'import suivra un mécanisme similaire.
Depuis un tableur vide, il faut passer par Données→Fichier texte.
| Panel |
|---|
Vu que le fichier a une première ligne avec la description des champs, il faut bien activer "Mes données ont des en-têtes".
| Panel |
|---|
Sur la phase suivante, il faut bien placer le séparateur sur "Virgule". L'Aperçu de données permet de s’apercevoir que la séparation des champs est bien prise en compte.
| Panel |
|---|
Si la majorité des champs sont des formats simples ( chaines de caractères ou entier ), deux colonnes sont particulières et on doit indiquer à Excel comment les interpréter :
- cpu_time : Il faut lui indiquer via "Avancé" que le séparateur de décimale n'est pas "," mais "."
| Panel |
|---|
- scheduled_date: Il faut lui indiquer que le champ est un format Date.
| Panel |
|---|
Excel nous demande alors où charger ces données. Il est plus simple et lisible de le charger dans une "Nouvelle feuille de calcul" que l'on pourra renommer facilement.
| Panel |
|---|
Voici un exemple de ce qu'on obtient finalement :
| Panel |
|---|
Analyse des données
L'analyse des données issues du script va être répartie en deux grandes catégories :
- Vous avez un environnement avec un certain nombre d'hôtes, vous souhaitez dimensionner vos Pollers si vous rajoutez 10, 20 ou 50% d'hôtes en plus :
- Dans ce cas, il faut se référer à la page Aide à l'analyse du dump shinken-scheduler-export-data pour dimensionner ses Pollers
- Si vous souhaitez diminuer le nombre de CPU de vos Pollers en identifiant, et optimisant, les sondes les plus consommatrices :
- Dans ce cas, il faut se référer à la page Aide à l'analyse du dump shinken-scheduler-export-data pour identifier les sondes les plus consommatrices






