Centreon méta service : configuration par SQL Matching

Centreon méta service

J’ai décidé de faire une série d’articles sur les fonctions mal connues de Centreon. Le premier de cette série est les méta services de Centreon.

Définition d’un méta service Centreon

Un méta service Centreon agrège les données de performance de plusieurs services Centreon pour effectuer sur celles-ci des calculs mathématiques et fournir un nouvel objet (appelé méta service Centreon), équivalent à un service.

Cette définition n’étant pas simple à comprendre, nous allons l’illustrer par des cas d’utilisation. Les cas d’utilisation permettent de mieux exprimer la fonctionnalité apportée par les méta services.

Cas d’utilisation du méta service Centreon

  1. Vous disposez d’une application 3-Tiers avec 2 serveurs frontaux Apache, 2 serveurs MySQL en maître-esclave et 5  serveurs d’application JBoss. Sur chaque serveur JBoss, vous supervisez le taux d’occupation du CPU. Avec Centreon, vous pouvez créer un méta service qui sera la moyenne des taux d’occupation du CPU des serveurs JBoss. Vous pouvez alors désactiver les notifications sur chaque service « CPU » des serveurs JBoss et ne l’activer que sur le méta-service.
  2. Autre exemple, toujours sur le même contexte (Apache/JBoss/MySQL). Vous avez configuré un service sur chaque serveur JBoss qui mesure le nombre de connexions. Vous pouvez créer un méta service correspondant au nombre total de connexions : c’est la somme de toutes les connexions.
  3. Vous disposez d’imprimantes sur lesquelles vous mesurez le nombre de pages imprimées. Grâce au méta service, vous pouvez connaître le nombre total de pages imprimées. Vous pourrez alors vérifier l’impact des recommandations faites aux utilisateurs de ces imprimantes et même communiquer avec eux sur ce graphique.

D’autres exemples, plus concis :

  1. connaître la bande passante totale consommée lorsque vous disposez de plusieurs connexions internet
  2. disposer du nombre total de connexions sur les 2 pare-feux en cluster
  3. obtenir la consommation électrique totale de tous les serveurs
  4. temps moyen de connexion sur plusieurs frontaux web

Fonctionnalités du méta-service

Le méta service se base sur des services existants. Il ne permet pas d’inventer des chiffres : des données doivent exister avant la création du méta service. Dans tous les cas ci-dessus, le méta service ne fait qu’effectuer des calculs sur des données pré-existantes. Les services doivent donc exister mais leurs données de performance doivent aussi être identiques. Par exemple, il n’est pas logique d’effectuer la moyenne d’un taux d’occupation du cpu et du taux d’occupation de la mémoire. Le type de donnée de performance doit être exactement le même quelques soient les services sur lesquels seront effectués le calcul.

En créant un méta service, vous choisissez les services sur lesquels seront effectués les calculs, la donnée de performance et la fonction (somme, moyenne, minimum et maximum) à appliquer sur les données de performance. De ce fait, vous choisissez l’expression de votre méta service. A vous de définir quelle expression vous souhaitez obtenir. Les exemples ci-dessus peuvent vous aider.

Un méta service se comporte comme un service. Il a donc:

  1. un état : ok/warning/unknown/critical
  2. une période de supervision, un intervalle de test et de retry, un nombre maximum de tentatives, …
  3. des valeurs seuils : si le résultat du calcul dépasse la valeur seuil critical alors le méta service sera en état critical
  4. des notifications : le(s) contact(s) ou le(s) groupe(s) de contact(s) à notifier, un intervalle de notification, une période de notification, …
  5. un graphique permettant de tracer au cours du temps le résultat de la fonction de calcul sur les données de performance
  6. un modèle de graphique

Configuration d’un méta service

La configuration d’un méta service impose les réflexions préalables suivantes :

  1. quels sont les services sur lesquels effectués mon calcul?
  2. quelle est la donnée de performance sur laquelle le calcul sera effectué? C’est ce que l’on appelle aussi « metric »
  3. quelle est la formule de calcul?

Les réponses aux questions 2 et 3 sont très évidentes dès que l’on a identifié l’expression que l’on souhaite représentée à l’aide d’un méta service. La réponse à la question 1 est soit:

  1. « tous les services identiques ». Dans ce cadre, la configuration du méta service se fera par un « matching SQL ». Il s’agit d’identifier tous les services portant le même nom. Exemple : tous les services portant le nom « pages_imprimees » pour traduire « la somme des pages imprimées de toutes les imprimantes »
  2. « une liste identifiée de services ». C’est le cas du groupe de machines ayant un même rôle dans une grappe (exemple : les serveurs JBoss). Ce sera traduit par la sélection précise des services dans une liste lors de la configuration du méta service.

 

Configuration d’un méta service par matching SQL

Pour configurer un méta service, il faut se rendre dans le menu « Configuration –> Services –> Meta Services –> Add ». Le formulaire suivant apparaît:

Centreon méta service : configuration par SQL Matching
Centreon méta service : configuration par SQL Matching

Les paramètres sont les suivants:

  • Meta Service Name : le nom que vous choisissez pour le méta service
  • Output format string (printf-style) : l’affichage du statut lorsque vous parcourez l’interface de supervision. C’est « l’output » d’un service. En général, la donnée est décrite et affichée à l’aide d’un appel équivalent à la commande « printf ». Par exemple: « Load15 is : %f ». Le « %f » représente la valeur calculée par l’opération mathématique et affichée sous forme d’un nombre flottant.
  • Warning Level : la valeur seuil warning
  • Critical Level : la valeur seuil critique
  • Calculation Type : la fonction de calcul
  • Selection Mode : le type de sélection des services. Dans notre cas, SQL Matching.
  • SQL LIKE-clause expression : l’expression SQL permettant de filtrer les services. Dans notre cas, nous mettons le nom du service tel que nous l’avons défini dans notre configuration. Il est possible d’utiliser les filtres SQL (% par exemple)
  • Metric : le nom de la donnée de performance (metric) sur laquelle le calcul sera effectué.

Les autres paramètres non présentés ici sont identiques à ceux présents pour un service. Je vous laisse les remplir puis sauvegarder.

Attention : le méta service ne sera créé que lorsque la configuration Nagios sera générée et Nagios redémarré.

Représentation dans l’interface de Supervision

Le résultat de la configuration apparaît dans le menu « Monitoring –> Services –> Meta-Services »:

Centreon méta service : résultat obtenu dans l'interface de supervision
Centreon méta service : résultat obtenu dans l'interface de supervision

 

Configuration d’un méta service par sélection unitaire dans une liste

La création d’un méta service par sélection unitaire des services dans une liste se fait en deux étapes:

  1. création du méta service en sélectionnant le type « Service list » et sauvegarde
  2. sélection unitaire des services

Pour simplifier la compréhension, une vidéo est meilleure qu’une série de screenshots:

[EZWebPlayerLite VIDEOURL= »http://blog.cedrictemple.net/wp-content/uploads/2011/12/centreon_meta_service_creation_par_liste_de_selection_640x360.flv » THUMBNAILURL= »http://blog.cedrictemple.net/wp-content/uploads/2011/12/centreon_meta_service_creation_par_liste_de_selection_640x360.png » WIDTH= »640″ HEIGHT= »360″ /]

Enfin, penser à générer la configuration Nagios et à redémarrer Nagios!

 

5 réflexions au sujet de « Centreon méta service »

  1. Dears,

    Thanks for your tutorial.

    I have created meta service to calculate the aggregated bandwidth (traffic_out) of same service vlans on different devices. Its created but not showing the correct data in graphs.
    i have set the calculation method as SUM because i need aggregated traffic and tried data source type as DERIVE, ABSOLUTE and COUNTER as well but graphs isn’t generating propoerly. max valus its showing so around 25M however the actual traffic is more than Gbps.
    Please note that If i am seeing the meta service status, performance data value output is like a[traffic_out] =3792803213.60 which seems to be ok as aggregration of all service VLAN (around 3.7Gbps) but i dont know that why its not plotting the accurate graph.
    Please also review my meta service parameters setting.
    Calculation Type *: Sum
    Data Source Type : DERIVE
    Selection Mode * : Service List
    Metric: traffic_out
    Graph Template: Traffic

  2. merci bien pour ce tuto , j’ai deja reussi a integrer des meta-services , mais est-il possible de visialiser les courbes dans l’interface d’acceuil avec le widget de traffic !! ?? merci

  3. Bonjour,

    Merci pour ce tuto, super 😉

    Par contre petite question. Imaginons que je fais un meta service sur deux equipements différents pour avoir un traffic global.
    Nagios ne va pas check les deux services au même moment non ?

    Donc cela biaise le résultat ?

    Merci d’avance.

    Vincent

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *