Règles de découverte

Options générales

Une règle de découverte permet de créer dynamiquement des services et de les lier à un hôte, en se basant sur les éléments remontés par les sondes. Les services unitaires créés sont attachés à des modèles de services ce qui permet d’utiliser les fonctionnalités de Centreon (héritage, surcharge, etc.)

Pour créer une règle de découverte, se rendre dans le menu Configuration > Services > Auto Discovery > Rules et cliquer sur le bouton Add :

../_images/create_rule_1.png

Saisir les premiers champs :

../_images/create_rule_2.png

Voici une description des premiers champs à saisir :

  • Rule name : Nom de la règle
  • Command Macro : la commande exécutée pour lister les attributs du flux XML
  • Command Discover : la commande de découverte exécutée pour lister les éléments
  • Service template : le modèle de service utilisé pour créer les nouveaux services

Se rendre dans le second onglet Inclusions / Exclusions & Macros pour visualiser les attributs disponibles :

../_images/create_rule_3.png

Revenir au premier onglet et définir le nom des services qui seront créés ainsi que les autres champs disponibles :

../_images/create_rule_4.png

Saisir le nom du service qui sera créé via le champ Service display name.

Note

Le nom du service peut contenir une macro correspondant à un attribut du flux XML. Par exemple, pour une interface réseau, son nom peut être amené par l’attribut name. Trafic-$name$ sera remplacé par Trafic-eth0 si le nom de l’interface est eth0. Le nom de l’attribut XML doit être mis entre deux caractères $.

Puis compléter la règle :

  • Hosts templates : Les modèles qui seront utilisés pour définir la liste des hôtes pour lesquels les règles de découverte seront exécutées
  • Linked Instances : permet d’exécuter la règle que pour les hôtes liés aux collecteurs sélectionnées.

Note

Laisser vide pour exécutr la règle depuis n’importe quel collecteur.

  • Contacts : Les contacts qui seront notifiés sur la création ou la désactivation de services à la suite de la découverte
  • Contact groups: Les groupes de contact qui seront notifiés sur la création ou la désactivation de services à la suite de la découverte
  • Disable elements not found : Permettre au module de désactiver les services associés aux éléments qui ne sont plus trouvés
  • Update existing services : Si actif, les services déjà découverts ne seront pas mis à jour si une propriété change (valeur de macros personnalisées, etc.).
  • Activate: Activer ou désactiver la règle (la règle sera ignorée par le processus de découverte si elle est désactivée).

Cliquer sur Save pour sauvegarder la règle de découverte.

Inclusions / Exclusions & Macros

Les inclusions / Exclusions et Macro fonctionnent de la manière suivante :

../_images/create_rule_5.png

Les Inclusions / Exclusions permettent d’inclure ou d’exclure des éléments durant la découverte. Cette inclusion/exclusion concerne les attributs XML

Les règle d’inclusion/exclusion sont définies à partir de l’algorithme suivant :

  • Si seules des règles d’inclusion sont présentes, la valeur de l’attribut correspondant à au moins une inclusion est prise en compte
  • Si seulement des règles d’exclusion sont présentes, chaque élément sera pris en compte, sauf ceux correspondant à une exclusion
  • Si les deux types sont présents, le processus vérifiera l’élément correspondant à une inclusion puis s’assurera qu’il n’est pas listé dans une exclusion

Le seconde partie Macros permet de définir la relation entre l’attribut XML et la macro du modèle de service. Pour tous les services créés, les valeurs des macros seront remplacées par les valeurs des attributs.

../_images/create_rule_6.png

Note

Sur cette image toutes les macros seront créées sur le nouveau service car toutes les cases Empty sont sélectionnées. Pour ne pas créer ces macros, ne pas cocher les cases associées. La macro $_SERVICEINTERFACEID sera créée et contiendra la valeur associée à l’attribut XML $interfaceid de l’élément.

Options avancées

Le dernier onglet Advanced permet d’appliquer des regexp sur le champ Service display name ou tout attribut du flux XML. Cliquer sur Add a new entry pour ajouter une nouvelle entrée en définissant l’expression et le résultat attendu :

../_images/create_rule_7.png

L’expression peut être appliquée sur :

  • @SERVICENAME@: le nom du service qui sera créé
  • tous les attributs du flux XML via $attribute_name$

La seconde partie Customize code permet d’utiliser du code Perl.

Custom display scan permet de modifier l’affichage dans la découverte manuelle Par défaut, la découverte manuelle affiche le nom du service. Voici un exemple pour ajouter la taille des disques :

my ($value, $unit) = change_bytes(value => $total$);
$description = "<span style='color: red; font-weight: bold'>@SERVICENAME@</span> [size = <b>$value $unit</b>]";

Custom variables permet de créer des macros personnalisables. Voici un exemple pour définir des seuils dynamiques selon la taille des disques :

my $total_gb = $total$ / 1000 / 1000 / 1000;
if ($total_gb < 100) {
    $warning$ = 80;
    $critical$ = 90;
} elsif ($total_gb < 500) {
    $warning$ = 90;
    $critical$ = 95;
} else {
    $warning$ = 95;
    $critical$ = 98;
}

Il est possible d’utiliser les macros $warning$ et $critical$ dans la partie Macros.