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 :

Saisir les premiers champs :

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 :

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

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 :

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.

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 :

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.