![Stacks Image 8983](files/stacks-image-025d1f9.png)
L'interface de Centreon permet l'affichage de graphes alimentés par les données de performances des plugins. Centreon utilise des bases de données métriques au format RRD (Round Robin Database) créé par Tobias Oetiker. Nous allons étudier la gestion de ces graphes et présenter quelques cas pratiques.
1 Les durées de rétention des données RRD
Centreon, par défaut, paramètre les durées de rétention des données de performances de la façon suivantes :
- un an en base de données dans la database centreon_storage
- six mois dans chaque graphe d'un service.
Vous pouvez changer ses valeurs en sélectionnant le menu Administration -> Paramètres -> Options
- un an en base de données dans la database centreon_storage
- six mois dans chaque graphe d'un service.
Vous pouvez changer ses valeurs en sélectionnant le menu Administration -> Paramètres -> Options
![Stacks Image 12626](files/stacks-image-e4288c7.png)
gestion de la durée de rétention des données
Si vous changez la durée de rétention des graphes en l'augmentant, il faudra relancer le broker rrd pour prendre en charge cette modification. En ligne de commande, lancez :
service cbd restart
De cette manière, tout nouveau graphe rrd sera créé avec la durée de rétention choisie. Mais que faire pour les graphes déjà créés avec une durée de rétention de 6 mois ? Car malheureusement, les fichiers RRD ne sont pas dynamiques, ils sont créés avec une taille fixe lors de leur initialisation. Ainsi, malgré une durée de rétention d'un an pour les graphes RRD, vous pouvez obtenir ce type de graphe.
![Stacks Image 43683](files/stacks-image-d59a4fa.png)
Graphe RRD dont les données sont tronquées car le fichier avait été initialisé avec une durée de rétention de 6 mois.
Heureusement, Centreon permet la regénération des graphes RRD. Sélectionnez le menu Administration -> Paramètres -> Data
![Stacks Image 12663](files/stacks-image-3227a3f.png)
Reconstruire une base RRD
Recherchez le service en cause, sélectionnez-le et choisissez l'action "Regénérer les bases de données RRD" (rebuild RRD Database). Automatiquement, le service concerné sera flaggé "En attente de reconstruction" (Rebuild Waiting). C'est le broker RRD qui va gérer la reconstruction des bases en piochant les données dans la table data_bin de la base centreon_storage.
![Stacks Image 12702](files/stacks-image-228ec73.png)
Le service est en attente de reconstruction
-
Attention, risque de surchage avec la reconstruction
- Utilisez cette option avec parcimonie. En effet, la reconstruction d'un graphe RRD génère de nombreuses requêtes en base. Le serveur Centreon risque d'être très sollicité. Avec petit serveur comme le raspberry, l'utilisation de cette commande a un impact important sur la charge de cet ordinateur low-cost.
Après que le service broker termine sa reconstruction, vous pouvez visualiser votre graphe avec les données manquantes.
![Stacks Image 43695](files/stacks-image-33e4c7f.png)
Graphe RRD complet.
La reconstruction de notre base RRD n'est pas sans conséquence dans ce sens ( six mois vers un an ). La taille des fichiers RRD aura doublé. Vous devrez en tenir compte. Nous allons d'ailleurs y revenir pour estimer la taille du disque qui hébergera ces données.
2 Réduire le nombre de métriques d'un plugin Centreon
Certains plugins Centreon affichent par défaut de nombreuses métriques. Prenons le cas du plugin Web Application Analytics (Selenium). Celui-ci affiche au minimum six métriques. A celles-ci, il faut rajouter une métrique par étapes du scénario et dans notre exemple, nous aurons douze métriques.
![Stacks Image 12739](files/stacks-image-612568b.png)
Exemple du plugin
Voici l'espace occupé pour un an de rétention et une vérification toutes les cinq minutes :
statut du service : 1 fichier de 911 Ko 12 métriques : 12 fichiers de 911 Ko soit au total : environ 12 Mo
Pour économiser de l'espace disque, nous pouvons réduire les données de performances en n'affichant que les métriques pertinentes. Prenons l'exemple de notre scénario.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=apps::selenium::plugin --mode=scenario-katalon --selenium-hostname=127.0.0.1 --selenium-port=4444 --directory=/var/lib/centreon_waa --scenario=testcentreon --timeout=30 --warning-time-scenario=900 --critical-time-scenario=1200 OK: Successful steps : 6/6 (100.00%), Failed steps : 0/6 (0.00%), Total execution time : 412.29 ms - All steps state are ok | 'successful'=6;;;0;6 'successful_prct'=100.00%;;;0;100 'failed'=0;;;0;6 'failed_prct'=0.00%;;;0;100 'time_scenario'=412.29ms;0:900;0:1200;0; 'time_step_1'=246.17ms;;;0; 'time_step_2'=56.05ms;;;0; 'time_step_3'=28.57ms;;;0; 'time_step_4'=30.41ms;;;0; 'time_step_5'=23.14ms;;;0; 'time_step_6'=25.14ms;;;0;
Les informations qui me semblent les plus pertinentes sont le nombre d'étapes réussies, le nombre d'étapes en échec et le temps total du scénario, soit trois métriques. Nous utiliserons l'option filter-perfdata qui permet le filtrage des métriques. Cette option utilise les regexp de Perl, nous afficherons les métriques dont le nom correspond à la chaîne de caractère indiqué dans l'option. Nous rechercherons les métriques successful, failed et time_scenario. Voici la commande :
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=apps::selenium::plugin --mode=scenario-katalon --selenium-hostname=127.0.0.1 --selenium-port=4444 --directory=/var/lib/centreon_waa --scenario=testcentreon --timeout=30 --warning-time-scenario=900 --critical-time-scenario=1200 --filter-perfdata='^time_scenario$|^successful$|^failed$' OK: Successful steps : 6/6 (100.00%), Failed steps : 0/6 (0.00%), Total execution time : 449.47 ms - All steps state are ok | 'successful'=6;;;0;6 'failed'=0;;;0;6 'time_scenario'=449.47ms;0:900;0:1200;0;
Modifions notre commande de vérification en rajoutant une macro $_SERVICEOPTION$. Avec cette méthode, il sera possible de rajouter plusieurs options en fonction de vos besoins.
![Stacks Image 12775](files/stacks-image-24a2811.png)
commande de vérification
Saisissez les informations pour la macro OPTIONS dans le service ou le template de service si vous voulez appliquer la modification à tous les services utilisant la commande de vérification.
![Stacks Image 12823](files/stacks-image-53220be.png)
Modification du template
Appliquez la modification en générant la nouvelle configuration. Vérifiez que vous n'avez que trois métriques dans les données de performances.
![Stacks Image 12842](files/stacks-image-983f1b0.png)
réduction des métriques
Par contre, le graphe affiche toujours les douze métriques. Il faudra donc supprimer les métriques correspondantes. Sélectionnez le menu Administration -> Paramètres -> Data. Cliquez sur le service correspondant pour afficher les métriques du graphe. Cochez les métriques à supprimer et sélectionnez l'action Delete graphs.
![Stacks Image 12859](files/stacks-image-52191ca.png)
Suppression des métriques inutiles
Il vous reste trois métriques.
![Stacks Image 12876](files/stacks-image-34fe485.png)
Les trois métriques restantes
Voici le graphe avec les trois métriques. La taille totale du graphe sera de 3,6 Mo environ au lieu de 12 Mo.
![Stacks Image 12893](files/stacks-image-fd2f448.png)
le graphe avec ses trois métriques
3 Calculer la taille des fichiers RRD
La taille des fichiers RRD dépend de la durée de rétention des données et de l'intervalle de vérification du service. Voici un tableau qui vous permet de comparer la taille des fichiers RRD.
![Stacks Image 43720](files/stacks-image-e693ee3.png)
Au minimum par service, vous aurez un fichier RRD pour les statuts stocké dans /var/lib/centreon/status et un fichier RRD pour une métrique stocké dans /var/lib/centreon/metrics. Je préfère allouer une moyenne de 2 métriques par défaut pour un service pour essayer de déterminer une prévision d'espace à prévoir pour les dossiers RRD. L'espace disque peut être calculé de la façon suivante :
![Stacks Image 43725](files/stacks-image-8f2c304.png)
Bien sûr, c'est une estimation approximative.
4 Quelques commandes RRD intéressantes
Voici quelques commandes intéressantes pour vos fichiers RRD. Afficher les informations d'un fichier RRD.
rrdtool info /var/lib/centreon/metrics/643.rrd | more
filename = "/var/lib/centreon/metrics/643.rrd" rrd_version = "0003" step = 1 last_update = 1534247258 header_size = 752 ds[value].index = 0 ds[value].type = "GAUGE" ds[value].minimal_heartbeat = 3000 ds[value].min = NaN ds[value].max = NaN ds[value].last_ds = "52.000000" ds[value].value = 0,0000000000e+00 ds[value].unknown_sec = 0 rra[0].cf = "AVERAGE" rra[0].rows = 105121 rra[0].cur_row = 63934 rra[0].pdp_per_row = 300 rra[0].xff = 5,0000000000e-01 rra[0].cdp_prep[0].value = 8,2160000000e+03 rra[0].cdp_prep[0].unknown_datapoints = 0 rra[1].cf = "AVERAGE" rra[1].rows = 8761 rra[1].cur_row = 5434 rra[1].pdp_per_row = 3600 rra[1].xff = 5,0000000000e-01 rra[1].cdp_prep[0].value = 1,4587800000e+05 rra[1].cdp_prep[0].unknown_datapoints = 0
Afficher toutes les valeurs enregistrées dans un fichier RRD au format XML.
rrdtool dump /var/lib/centreon/metrics/643.rrd | more
0003 1 1534247258 value GAUGE 3000 NaN NaN 52.000000 0.0000000000e+00 0 AVERAGE 300 5.0000000000e-01 5.1473333333e+01 5.2000000000e+01 8.2160000000e+03 0 |
NaN |
NaN |
NaN |
NaN |
NaN
Afficher la date de la première valeur enregistrée dans un fichier RRD. Cela permet de voir rapidement, la durée de rétention des données d'un fichier RRD.
date -d @`rrdtool first /var/lib/centreon/metrics/637.rrd`
lundi 14 août 2017, 09:40:00 (UTC+0200)
Afficher la date de la dernière valeur enregistrée dans un fichier RRD
date -d @`rrdtool last /var/lib/centreon/metrics/637.rrd`
mardi 14 août 2018, 09:40:31 (UTC+0200)
Vous trouverez d'autres informations sur les fichier RRD sur cette page Gérer le graphe.