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 :
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 :
Une extraction sera anonymisée ( seule un hash des noms sera lisible ) sauf si l'argument : --full est ajoutée à 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. |
Le lancerment de la commande fera deux choses :
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.
shinken-scheduler-export-data --full |
Exemple 2 : exécution anonyme avec une demande de simulation d'une heure supplémentaire ( --simulation-extra-period=3600 )
shinken-scheduler-export-data --simulation-extra-period=3600 |
Le retour donne :
|
|
À 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 ).
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
/tmp/dump-schedulers--not-expanded--with-names--2023-01-31-14h32m54s.csv
/tmp/dump-schedulers--expanded-3600s--anonymous--2023-01-31-14h31m32s.csv
Dans le fichier CSV, on a les données suivantes :
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.
|
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".
|
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.
|
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 :
|
|
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.
|
Voici un exemple de ce qu'on obtient finalement :
|
L'analyse des données issues du script va être répartie en deux grandes catégories :