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
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.
Heureusement, Centreon permet la regénération des graphes RRD. Sélectionnez le menu Administration -> Paramètres -> Data
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.
-
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.
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.
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.
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.
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.
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.
Il vous reste trois métriques.
Voici le graphe avec les trois métriques. La taille totale du graphe sera de 3,6 Mo environ au lieu de 12 Mo.
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.
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 :
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.