3 Découverte de bas niveau

Aperçu

La découverte de bas niveau (LLD) permet de créer automatiquement des éléments, des déclencheurs et des graphiques pour différentes entités sur un hôte. Par exemple, Zabbix peut commencer automatiquement à surveiller les systèmes de fichiers ou les interfaces réseau sur votre machine, sans qu’il soit nécessaire de créer manuellement des éléments pour chaque système de fichiers ou interface réseau. La LLD peut également créer des hôtes, par exemple pour renseigner des machines virtuelles découvertes sur un hyperviseur, ainsi que des règles de découverte imbriquées, permettant une découverte à plusieurs niveaux. De plus, il est possible de configurer Zabbix pour supprimer automatiquement les entités inutiles en fonction des résultats réels de découvertes effectuées périodiquement.

Un utilisateur peut définir ses propres types de découverte, à condition de suivre un protocole JSON particulier.

L’architecture générale du processus de découverte est la suivante.

Tout d’abord, un utilisateur crée une règle de découverte dans Collecte de données > Modèles, dans la colonne Découverte. Une règle de découverte se compose de (1) un élément qui découvre les entités nécessaires (par exemple, les systèmes de fichiers ou les interfaces réseau) et de (2) prototypes d’éléments, de déclencheurs et de graphiques qui doivent être créés en fonction de la valeur de cet élément.

Un élément qui découvre les entités nécessaires est semblable à un élément classique que l’on voit ailleurs : le serveur demande à un agent Zabbix (ou à tout autre type défini pour l’élément) la valeur de cet élément, et l’agent répond avec une valeur textuelle. La différence est que la valeur renvoyée par l’agent doit contenir une liste des entités découvertes au format JSON. Bien que les détails de ce format ne soient importants que pour les implémenteurs de contrôles de découverte personnalisés, il est nécessaire de savoir que la valeur renvoyée contient une liste de paires macro → valeur. Par exemple, l’élément "net.if.discovery" peut renvoyer deux paires : "{#IFNAME}" → "lo" et "{#IFNAME}" → "eth0".

Ces macros sont utilisées dans les noms, les clés et d’autres champs de prototype, où elles sont ensuite remplacées par les valeurs reçues afin de créer de véritables éléments, déclencheurs, graphiques, voire des hôtes, pour chaque entité découverte. Consultez la liste complète des options pour l’utilisation des macros LLD.

Lorsque le serveur reçoit une valeur pour un élément de découverte, il examine les paires macro → valeur et, pour chaque paire, génère de véritables éléments, déclencheurs et graphiques à partir de leurs prototypes. Dans l’exemple avec "net.if.discovery" ci-dessus, le serveur générerait un ensemble d’éléments, de déclencheurs et de graphiques pour l’interface de bouclage "lo", et un autre ensemble pour l’interface "eth0".

Notez que depuis Zabbix 4.2, le format du JSON renvoyé par les règles de découverte de bas niveau a changé. Il n’est plus attendu que le JSON contienne l’objet "data". La découverte de bas niveau accepte désormais un JSON normal contenant un tableau, afin de prendre en charge de nouvelles fonctionnalités telles que le prétraitement des valeurs d’élément et les chemins personnalisés vers les valeurs de macro de découverte de bas niveau dans un document JSON.

Les clés de découverte intégrées ont été mises à jour pour renvoyer un tableau de lignes LLD à la racine du document JSON. Zabbix extraira automatiquement une macro et une valeur si un champ de tableau utilise la syntaxe {#MACRO} comme clé. Toute nouvelle vérification de découverte native utilisera la nouvelle syntaxe sans les éléments "data". Lors du traitement d’une valeur de découverte de bas niveau, la racine est d’abord localisée (tableau à $. ou $.data).

Bien que l’élément "data" ait été supprimé de tous les éléments natifs liés à la découverte, pour des raisons de rétrocompatibilité, Zabbix acceptera toujours la notation JSON avec un élément "data", bien que son utilisation soit déconseillée. Si le JSON contient un objet avec un seul élément de tableau "data", alors le contenu de cet élément sera automatiquement extrait à l’aide de JSONPath $.data. La découverte de bas niveau accepte désormais des macros LLD facultatives définies par l’utilisateur avec un chemin personnalisé spécifié en syntaxe JSONPath.

En conséquence des changements ci-dessus, les agents plus récents ne pourront plus fonctionner avec un ancien serveur Zabbix.

Voir aussi : Entités découvertes

Configuration de la découverte de bas niveau

Nous allons illustrer la découverte de bas niveau à partir d’un exemple de découverte de systèmes de fichiers.

Pour configurer la découverte, procédez comme suit :

  • Allez dans : Collecte de données > Modèles ou Hôtes.
  • Cliquez sur Découverte sur la ligne du modèle/hôte approprié.

  • Cliquez sur Créer une règle de découverte dans le coin supérieur droit de l’écran.
  • Remplissez le formulaire de la règle de découverte avec les informations requises.

Règle de découverte

Le formulaire de règle de découverte contient cinq onglets, représentant, de gauche à droite, le flux de données pendant la découverte :

  • Règle de découverte - spécifie, surtout, l’élément intégré ou le script personnalisé à utiliser pour récupérer les données de découverte.
  • Prétraitement - applique un certain prétraitement aux données découvertes.
  • Macros LLD - permet d’extraire certaines valeurs de macro à utiliser dans les éléments, déclencheurs, etc. découverts.
  • Filtres - permet de filtrer les valeurs découvertes.
  • Surcharges - permet de modifier les éléments, déclencheurs, graphiques ou prototypes d’hôte lors de l’application à des objets découverts spécifiques.

L’onglet Règle de découverte contient la clé d’élément à utiliser pour la découverte (ainsi que certains attributs généraux de la règle de découverte) :

Tous les champs de saisie obligatoires sont marqués d’un astérisque rouge.

Parameter Description
Name Nom de la règle de découverte.
Type Le type de contrôle à effectuer pour la découverte.
Dans cet exemple, nous utilisons un type d’élément Agent Zabbix.
La règle de découverte peut également être un élément dépendant, dépendant d’un élément normal. Elle ne peut pas dépendre d’une autre règle de découverte. Pour un élément dépendant, sélectionnez le type correspondant (Élément dépendant) et indiquez l’élément maître dans le champ 'Master item'. L’élément maître doit exister.
Key Saisissez la clé de l’élément de découverte (jusqu’à 2048 caractères).
Par exemple, vous pouvez utiliser la clé d’élément intégrée "vfs.fs.discovery" pour renvoyer une chaîne JSON contenant la liste des systèmes de fichiers présents sur l’ordinateur, leurs types et leurs options de montage.
Notez qu’une autre option pour la découverte des systèmes de fichiers consiste à utiliser les résultats de découverte de la clé d’agent "vfs.fs.get" (voir exemple).
Update interval Ce champ indique à quelle fréquence Zabbix effectue la découverte. Au début, lorsque vous configurez juste la découverte du système de fichiers, vous pouvez souhaiter définir un intervalle court, mais une fois que vous savez que cela fonctionne, vous pouvez le définir à 30 minutes ou plus, car les systèmes de fichiers ne changent généralement pas très souvent.
Les suffixes temporels sont pris en charge, par exemple 30s, 1m, 2h, 1d.
Les macros utilisateur sont prises en charge.
Remarque : l’intervalle de mise à jour ne peut être défini à '0' que s’il existe des intervalles personnalisés avec une valeur non nulle. S’il est défini à '0' et qu’un intervalle personnalisé (flexible ou planifié) existe avec une valeur non nulle, l’élément sera interrogé pendant la durée de l’intervalle personnalisé.
Les nouvelles règles de découverte seront vérifiées dans les 60 secondes suivant leur création, sauf si elles disposent d’une planification ou d’un intervalle de mise à jour flexible et que Update interval est défini à 0.
Remarque : pour une règle de découverte existante, la découverte peut être effectuée immédiatement en appuyant sur le bouton Execute now.
Custom intervals Vous pouvez créer des règles personnalisées pour vérifier l’élément :
Flexible - crée une exception à Update interval (intervalle avec une fréquence différente)
Scheduling - crée une planification d’interrogation personnalisée.
Pour des informations détaillées, voir Intervalles personnalisés.
Timeout Définissez le délai d’expiration du contrôle de découverte. Sélectionnez l’option de délai d’expiration :
Global - le délai d’expiration du proxy/global est utilisé (affiché dans le champ Timeout grisé) ;
Override - un délai d’expiration personnalisé est utilisé (défini dans le champ Timeout ; plage autorisée : 1 - 600s). Les suffixes temporels, par exemple 30s, 1m, et les macros utilisateur sont pris en charge.
Cliquer sur le lien Timeouts vous permet de configurer les délais d’expiration du proxy ou les délais d’expiration globaux (si un proxy n’est pas utilisé). Notez que le lien Timeouts n’est visible que pour les utilisateurs de type Super admin disposant des autorisations pour les sections du frontal Administration > General ou Administration > Proxies.
Delete lost resources Indiquez dans quel délai l’entité découverte sera supprimée une fois que son statut de découverte devient "Not discovered anymore" :
Never - elle ne sera pas supprimée ;
Immediately - elle sera supprimée immédiatement ;
After - elle sera supprimée après la période spécifiée. La valeur doit être supérieure à la valeur de Disable lost resources.
Les suffixes temporels sont pris en charge, par exemple 2h, 1d.
Les macros utilisateur sont prises en charge.
Remarque : l’utilisation de "Immediately" n’est pas recommandée, car une simple modification erronée du filtre peut entraîner la suppression de l’entité avec toutes les données historiques.
Notez que les ressources désactivées manuellement ne seront pas supprimées par la découverte de bas niveau.
Disable lost resources Indiquez dans quel délai l’entité découverte sera désactivée une fois que son statut de découverte devient "Not discovered anymore" :
Never - elle ne sera pas désactivée ;
Immediately - elle sera désactivée immédiatement ;
After - elle sera désactivée après la période spécifiée. La valeur doit être supérieure à l’intervalle de mise à jour de la règle de découverte.
Notez que les ressources désactivées automatiquement seront réactivées si elles sont à nouveau découvertes par la découverte de bas niveau. Les ressources désactivées manuellement ne seront pas réactivées si elles sont à nouveau découvertes.
Ce champ n’est pas affiché si Delete lost resources est défini sur "Immediately".
Les suffixes temporels sont pris en charge, par exemple 2h, 1d.
Les macros utilisateur sont prises en charge.
Description Saisissez une description.
Enabled Si cette case est cochée, la règle sera traitée.

L’historique de la règle de découverte n’est pas conservé.

Prétraitement

L’onglet Prétraitement permet de définir des règles de transformation à appliquer au résultat de la découverte. Une ou plusieurs transformations sont possibles à cette étape. Les transformations sont exécutées dans l’ordre dans lequel elles sont définies. Tout le prétraitement est effectué par le serveur Zabbix.

Voir aussi :

Type
Transformation Description
Texte
Expression régulière Faire correspondre la valeur reçue à l’expression régulière <pattern> et remplacer la valeur par la <output> extraite. L’expression régulière prend en charge l’extraction d’un maximum de 10 groupes capturés avec la séquence \N.
Paramètres :
pattern - expression régulière
output - modèle de formatage de sortie. Une séquence d’échappement \N (où N=1…9) est remplacée par le Nième groupe correspondant. Une séquence d’échappement \0 est remplacée par le texte correspondant.
Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié.
Remplacer Rechercher la chaîne de recherche et la remplacer par une autre (ou rien). Toutes les occurrences de la chaîne de recherche seront remplacées.
Paramètres :
search string - la chaîne à rechercher et à remplacer, sensible à la casse (obligatoire)
replacement - la chaîne qui remplace la chaîne de recherche. La chaîne de remplacement peut également être vide, ce qui permet effectivement de supprimer la chaîne de recherche lorsqu’elle est trouvée.
Il est possible d’utiliser des séquences d’échappement pour rechercher ou remplacer des sauts de ligne, retours chariot, tabulations et espaces "\n \r \t \s" ; l’antislash peut être échappé sous la forme "\\" et les séquences d’échappement peuvent être échappées sous la forme "\\n". L’échappement des sauts de ligne, retours chariot et tabulations est effectué automatiquement lors de la découverte de bas niveau.
Données structurées
JSONPath Extraire une valeur ou un fragment à partir de données JSON à l’aide de la fonctionnalité JSONPath.
Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié.
XML XPath Extraire une valeur ou un fragment à partir de données XML à l’aide de la fonctionnalité XPath.
Pour que cette option fonctionne, le serveur Zabbix doit être compilé avec la prise en charge de libxml.
Exemples :
number(/document/item/value) extraira 10 de <document><item><value>10</value></item></document>
number(/document/item/@attribute) extraira 10 de <document><item attribute="10"></item></document>
/document/item extraira <item><value>10</value></item> de <document><item><value>10</value></item></document>
Notez que les espaces de noms ne sont pas pris en charge.
Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié.
CSV vers JSON Convertir les données d’un fichier CSV au format JSON.
Pour plus d’informations, voir : Prétraitement CSV vers JSON.
XML vers JSON Convertir des données au format XML en JSON.
Pour plus d’informations, voir : Règles de sérialisation.
Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié.
SNMP
Valeur SNMP walk Extraire une valeur par le nom OID/MIB spécifié et appliquer des options de formatage :
Inchangé - renvoyer Hex-STRING sous forme de chaîne hexadécimale non échappée (notez que les indications d’affichage sont toujours appliquées) ;
UTF-8 à partir de Hex-STRING - convertir Hex-STRING en chaîne UTF-8 ;
MAC à partir de Hex-STRING - convertir Hex-STRING en chaîne d’adresse MAC (dans laquelle ' ' sera remplacé par ':') ;
Entier à partir de BITS - convertir les 8 premiers octets d’une chaîne de bits exprimée comme une séquence de caractères hexadécimaux (par ex. "1A 2B 3C 4D") en un entier non signé 64 bits. Dans les chaînes de bits de plus de 8 octets, les octets suivants seront ignorés.
Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié.
SNMP walk vers JSON Convertir des valeurs SNMP en JSON. Spécifiez un nom de champ dans le JSON et le chemin OID SNMP correspondant. Les valeurs des champs seront renseignées par les valeurs du chemin OID SNMP spécifié.
Vous pouvez utiliser cette étape de prétraitement pour la découverte d’OID SNMP.
Des options de formatage de valeur similaires à celles de l’étape Valeur SNMP walk sont disponibles.
Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié.
Valeur SNMP get Appliquer des options de formatage à la valeur SNMP get :
UTF-8 à partir de Hex-STRING - convertir Hex-STRING en chaîne UTF-8 ;
MAC à partir de Hex-STRING - convertir Hex-STRING en chaîne d’adresse MAC (dans laquelle ' ' sera remplacé par ':') ;
Entier à partir de BITS - convertir les 8 premiers octets d’une chaîne de bits exprimée comme une séquence de caractères hexadécimaux (par ex. "1A 2B 3C 4D") en un entier non signé 64 bits. Dans les chaînes de bits de plus de 8 octets, les octets suivants seront ignorés.
Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié.
Scripts personnalisés
JavaScript Saisissez le code JavaScript dans l’éditeur modal qui s’ouvre lorsque vous cliquez dans le champ du paramètre ou sur l’icône en forme de crayon à côté.
Notez que la longueur disponible pour JavaScript dépend de la base de données utilisée.
Pour plus d’informations, voir : Prétraitement JavaScript
Validation
Ne correspond pas à l’expression régulière Spécifiez une expression régulière à laquelle une valeur ne doit pas correspondre.
Par ex. Error:(.*?)\.
Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié.
Vérifier une erreur dans JSON Vérifier un message d’erreur au niveau de l’application situé à l’emplacement JSONPath. Arrêter le traitement si la vérification réussit et que le message n’est pas vide ; sinon, poursuivre le traitement avec la valeur qui existait avant cette étape de prétraitement. Notez que ces erreurs de service externe sont signalées à l’utilisateur telles quelles, sans ajout d’informations sur l’étape de prétraitement.
Par ex. $.errors. Si un JSON tel que {"errors":"e1"} est reçu, l’étape de prétraitement suivante ne sera pas exécutée.
Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié.
Vérifier une erreur dans XML Vérifier un message d’erreur au niveau de l’application situé à l’emplacement Xpath. Arrêter le traitement si la vérification réussit et que le message n’est pas vide ; sinon, poursuivre le traitement avec la valeur qui existait avant cette étape de prétraitement. Notez que ces erreurs de service externe sont signalées à l’utilisateur telles quelles, sans ajout d’informations sur l’étape de prétraitement.
Aucune erreur ne sera signalée en cas d’échec de l’analyse d’un XML invalide.
Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié.
Correspond à l’expression régulière Spécifiez une expression régulière à laquelle une valeur doit correspondre.
Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié.
Limitation du débit
Ignorer les valeurs inchangées avec heartbeat Ignorer une valeur si elle n’a pas changé pendant la période définie (en secondes).
Les valeurs entières positives sont prises en charge pour spécifier les secondes (minimum - 1 seconde). Des suffixes de temps peuvent être utilisés dans ce champ (par ex. 30s, 1m, 2h, 1d). Les macros utilisateur et les macros de découverte de bas niveau peuvent être utilisées dans ce champ.
Une seule option de limitation du débit peut être spécifiée pour un élément de découverte.
Par ex. 1m. Si un texte identique est transmis deux fois à cette règle dans un délai de 60 secondes, il sera ignoré.
Remarque : la modification des prototypes d’élément ne réinitialise pas la limitation du débit. La limitation du débit n’est réinitialisée que lorsque les étapes de prétraitement sont modifiées.
Prometheus
Prometheus vers JSON Convertir les métriques Prometheus requises en JSON.
Voir Contrôles Prometheus pour plus de détails.

Notez que si la règle de découverte a été appliquée à l’hôte via un modèle, le contenu de cet onglet est en lecture seule.

Macros personnalisées

L’onglet Macros LLD permet de spécifier des macros personnalisées pour la découverte de bas niveau.

Les macros personnalisées sont utiles lorsque le JSON renvoyé ne contient pas déjà les macros requises définies. Ainsi, par exemple :

  • La clé native vfs.fs.discovery pour la découverte des systèmes de fichiers renvoie un JSON avec certaines macros LLD prédéfinies telles que {#FSNAME}, {#FSTYPE}. Ces macros peuvent être utilisées directement dans les prototypes d’éléments et de déclencheurs (voir les sections suivantes de la page) ; il n’est pas nécessaire de définir des macros personnalisées ;
  • L’élément d’agent vfs.fs.get renvoie également un JSON avec des données sur les systèmes de fichiers, mais sans macros LLD prédéfinies. Dans ce cas, vous pouvez définir vous-même les macros et les associer aux valeurs du JSON à l’aide de JSONPath :

Les valeurs extraites peuvent être utilisées dans les éléments découverts, les déclencheurs, etc. Notez que les valeurs seront extraites du résultat de la découverte et de toutes les étapes de prétraitement effectuées jusque-là.

Parameter Description
Macro LLD Nom de la macro de découverte de bas niveau, en utilisant la syntaxe suivante : {#MACRO}.
JSONPath Chemin utilisé pour extraire la valeur de la macro LLD à partir d’une ligne LLD, en utilisant la syntaxe JSONPath.
Les valeurs extraites du JSON renvoyé sont utilisées pour remplacer les macros LLD dans les champs des prototypes d’éléments, de déclencheurs, etc.
JSONPath peut être spécifié en utilisant la notation par point ou la notation entre crochets. La notation entre crochets doit être utilisée en présence de caractères spéciaux et d’Unicode, comme $['unicode + special chars #1']['unicode + special chars #2'].

Par exemple, $.foo extraira "bar" et "baz" de ce JSON : [{"foo":"bar"}, {"foo":"baz"}]
Notez que $.foo extraira également "bar" et "baz" de ce JSON : {"data":[{"foo":"bar"}, {"foo":"baz"}]} car un seul objet "data" est traité automatiquement (pour la compatibilité ascendante avec l’implémentation de la découverte de bas niveau dans les versions de Zabbix antérieures à 4.2).

Filtre

Un filtre peut être utilisé pour générer des éléments, déclencheurs et graphiques réels uniquement pour les entités qui correspondent aux critères. L’onglet Filtres contient des définitions de filtres de règle de découverte permettant de filtrer les valeurs de découverte :

Paramètre Description
Type de calcul Les options suivantes sont disponibles pour le calcul des filtres :
Et - tous les filtres doivent être validés ;
Ou - il suffit qu’un seul filtre soit validé ;
Et/Ou - utilise Et avec des noms de macro différents et Ou avec le même nom de macro ;
Expression personnalisée - offre la possibilité de définir un calcul personnalisé des filtres. La formule doit inclure tous les filtres de la liste. Limitée à 255 caractères.
Filtres Les opérateurs de condition de filtre suivants sont disponibles : correspond à, ne correspond pas à, existe, n’existe pas.
Les opérateurs correspond à et ne correspond pas à attendent une expression régulière compatible Perl (PCRE). Par exemple, si vous vous intéressez uniquement aux systèmes de fichiers C:, D: et E:, vous pouvez saisir {#FSNAME} dans le champ « Macro » et l’expression régulière "\C|\D|\E" dans le champ « Expression régulière ». Le filtrage est également possible par types de systèmes de fichiers à l’aide de la macro {#FSTYPE} (par exemple, "\ext|\reiserfs") et par types de lecteurs (pris en charge uniquement par l’agent Windows) à l’aide de la macro {#FSDRIVETYPE} (par exemple, "fixed").
Vous pouvez saisir une expression régulière ou référencer une expression régulière globale dans le champ « Expression régulière ».
Pour tester une expression régulière, vous pouvez utiliser "grep -E", par exemple : ````for f in ext2 nfs reiserfs smbfs; do echo $f | grep -E '
ext|^reiserfs' || echo "SKIP: $f"; done````

Les opérateurs existe et n’existe pas permettent de filtrer les entités selon la présence ou l’absence de la macro LLD spécifiée dans la réponse.
Notez que si une macro du filtre est absente de la réponse, l’entité trouvée sera ignorée, sauf si une condition « n’existe pas » est spécifiée pour cette macro.

Un avertissement sera affiché si l’absence d’une macro affecte le résultat de l’expression. Par exemple, si {#B} est absente dans :
{#A} matches 1 and {#B} matches 2 - affichera un avertissement
{#A} matches 1 or {#B} matches 2 - aucun avertissement

Une erreur ou une faute de frappe dans l’expression régulière utilisée dans la règle LLD (par exemple, une expression régulière incorrecte pour « File systems for discovery ») peut entraîner la suppression de milliers d’éléments de configuration, de valeurs historiques et d’événements pour de nombreux hôtes.

La base de données Zabbix dans MySQL doit être créée en mode sensible à la casse afin que les noms de systèmes de fichiers qui ne diffèrent que par la casse soient correctement découverts.

Remplacement

L’onglet Remplacements permet de définir des règles pour modifier la liste des prototypes d’élément, de déclencheur, de graphique, d’hôte et de découverte, ou leurs attributs, pour les objets découverts qui répondent à des critères donnés.

Les remplacements (le cas échéant) sont affichés dans une liste réorganisable par glisser-déposer et sont exécutés dans l’ordre dans lequel ils sont définis. Pour configurer les détails d’un nouveau remplacement, cliquez sur dans le bloc Remplacements. Pour modifier un remplacement existant, cliquez sur le nom du remplacement. Une fenêtre contextuelle s’ouvrira, permettant de modifier les détails de la règle de remplacement.

Tous les paramètres obligatoires sont marqués d’un astérisque rouge.

Paramètre Description
Nom Un nom de remplacement unique (par règle LLD).
Si le filtre correspond Définit si les remplacements suivants doivent être traités lorsque les conditions du filtre sont remplies :
Continuer les remplacements - les remplacements suivants seront traités.
Arrêter le traitement - les opérations des remplacements précédents (le cas échéant) et de ce remplacement seront exécutées ; les remplacements suivants seront ignorés pour les lignes LLD correspondantes.
Filtres Détermine à quelles entités découvertes le remplacement doit être appliqué. Les filtres de remplacement sont traités après les filtres de la règle de découverte et ont la même fonctionnalité.
Opérations Les opérations de remplacement sont affichées avec les détails suivants :
Condition - un type d’objet et une condition à remplir pour le nom de l’objet ; par exemple : le prototype de déclencheur n’est pas égal à Disk space is low (used > 50%).
Actions - des liens pour modifier et supprimer une opération sont affichés.

Configuration d’une opération

Pour configurer les détails d’une nouvelle opération, cliquez sur dans le bloc Opérations. Pour modifier une opération existante, cliquez sur à côté de l’opération. Une fenêtre contextuelle dans laquelle vous pouvez modifier les détails de l’opération s’ouvrira.

Paramètre Description
Objet Cinq types d’objets sont disponibles :
Prototype d’élément
Prototype de déclencheur
Prototype de graphique
Prototype d’hôte
Prototype de découverte
Condition Permet de filtrer les entités auxquelles l’opération doit être appliquée.
Opérateur Opérateurs pris en charge :
égal à - appliquer à ce prototype
différent de - appliquer à tous les prototypes, sauf celui-ci
contient - appliquer si le nom du prototype contient cette chaîne
ne contient pas - appliquer si le nom du prototype ne contient pas cette chaîne
correspond à - appliquer si le nom du prototype correspond à l’expression régulière
ne correspond pas à - appliquer si le nom du prototype ne correspond pas à l’expression régulière
Motif Une expression régulière ou une chaîne à rechercher.
Objet : Prototype d’élément
Créer activé Lorsque la case est cochée, les boutons apparaissent, permettant de remplacer les paramètres d’origine du prototype d’élément :
Oui - l’élément sera ajouté à l’état activé.
Non - l’élément sera ajouté à une entité découverte, mais à l’état désactivé.
Découvrir Lorsque la case est cochée, les boutons apparaissent, permettant de remplacer les paramètres d’origine du prototype d’élément :
Oui - l’élément sera ajouté.
Non - l’élément ne sera pas ajouté.
Intervalle de mise à jour Lorsque la case est cochée, deux options apparaissent, permettant de définir un intervalle différent pour l’élément :
Délai - intervalle de mise à jour de l’élément. Les macros utilisateur et les suffixes temporels (par ex. 30s, 1m, 2h, 1d) sont pris en charge. Doit être défini sur 0 si Intervalle personnalisé est utilisé.
Intervalle personnalisé - cliquez sur pour spécifier des intervalles flexibles/de planification. Pour des informations détaillées, voir Intervalles personnalisés.
Historique Lorsque la case est cochée, les boutons apparaissent, permettant de définir une période de stockage de l’historique différente pour l’élément :
Ne pas stocker - si sélectionné, l’historique ne sera pas stocké.
Stocker jusqu’à - si sélectionné, un champ de saisie permettant de spécifier la période de stockage apparaîtra à droite. Les macros utilisateur et les macros LLD sont prises en charge.
Tendances Lorsque la case est cochée, les boutons apparaissent, permettant de définir une période de stockage des tendances différente pour l’élément :
Ne pas stocker - si sélectionné, les tendances ne seront pas stockées.
Stocker jusqu’à - si sélectionné, un champ de saisie permettant de spécifier la période de stockage apparaîtra à droite. Les macros utilisateur et les macros LLD sont prises en charge.
Balises Lorsque la case est cochée, un nouveau bloc apparaît, permettant de spécifier des paires balise-valeur.
Ces balises seront ajoutées à celles spécifiées dans le prototype d’élément, même si les noms des balises correspondent.
Objet : Prototype de déclencheur
Créer activé Lorsque la case est cochée, les boutons apparaissent, permettant de remplacer les paramètres d’origine du prototype de déclencheur :
Oui - le déclencheur sera ajouté à l’état activé.
Non - le déclencheur sera ajouté à une entité découverte, mais à l’état désactivé.
Découvrir Lorsque la case est cochée, les boutons apparaissent, permettant de remplacer les paramètres d’origine du prototype de déclencheur :
Oui - le déclencheur sera ajouté.
Non - le déclencheur ne sera pas ajouté.
Sévérité Lorsque la case est cochée, les boutons de sévérité du déclencheur apparaissent, permettant de modifier la sévérité du déclencheur.
Balises Lorsque la case est cochée, un nouveau bloc apparaît, permettant de spécifier des paires balise-valeur.
Ces balises seront ajoutées à celles spécifiées dans le prototype de déclencheur, même si les noms des balises correspondent.
Objet : Prototype de graphique
Découvrir Lorsque la case est cochée, les boutons apparaissent, permettant de remplacer les paramètres d’origine du prototype de graphique :
Oui - le graphique sera ajouté.
Non - le graphique ne sera pas ajouté.
Objet : Prototype d’hôte
Créer activé Lorsque la case est cochée, les boutons apparaissent, permettant de remplacer les paramètres d’origine du prototype d’hôte :
Oui - l’hôte sera créé à l’état activé.
Non - l’hôte sera créé à l’état désactivé.
Découvrir Lorsque la case est cochée, les boutons apparaissent, permettant de remplacer les paramètres d’origine du prototype d’hôte :
Oui - l’hôte sera découvert.
Non - l’hôte ne sera pas découvert.
Lier des modèles Lorsque la case est cochée, un champ de saisie permettant de spécifier des modèles apparaîtra. Commencez à saisir le nom du modèle ou cliquez sur Sélectionner à côté du champ et sélectionnez des modèles dans la liste de la fenêtre contextuelle.
Les modèles de ce remplacement sont ajoutés à tous les modèles déjà liés au prototype d’hôte.
Balises Lorsque la case est cochée, un nouveau bloc apparaît, permettant de spécifier des paires balise-valeur.
Ces balises seront ajoutées à celles spécifiées dans le prototype d’hôte, même si les noms des balises correspondent.
Inventaire de l’hôte Lorsque la case est cochée, les boutons apparaissent, permettant de sélectionner un mode d’inventaire différent pour le prototype d’hôte :
Désactivé - ne pas renseigner l’inventaire de l’hôte
Manuel - fournir les détails manuellement
Automatisé - remplir automatiquement les données d’inventaire de l’hôte en fonction des métriques collectées.

Boutons du formulaire

Les boutons situés en bas du formulaire permettent d’effectuer plusieurs opérations.

Ajouter une règle de découverte. Ce bouton n’est disponible que pour les nouvelles règles de découverte.
Mettre à jour les propriétés d’une règle de découverte. Ce bouton n’est disponible que pour les règles de découverte existantes.
Créer une autre règle de découverte à partir des propriétés de la règle de découverte actuelle.
Exécuter immédiatement la découverte en fonction de la règle de découverte. La règle de découverte doit déjà exister. Voir plus de détails.
Remarque : lors de l’exécution immédiate de la découverte, le cache de configuration n’est pas mis à jour ; le résultat ne reflétera donc pas les modifications très récentes apportées à la configuration de la règle de découverte.
Tester la configuration de la règle de découverte. Utilisez ce bouton pour vérifier les paramètres de configuration (tels que la connectivité et la validité des paramètres) sans appliquer définitivement les modifications.
Supprimer la règle de découverte.
Annuler la modification des propriétés de la règle de découverte.

Entités découvertes

Les captures d’écran ci-dessous illustrent l’apparence des éléments, déclencheurs et graphiques découverts dans la configuration de l’hôte. Les entités découvertes sont précédées d’un lien orange vers la règle de découverte dont elles proviennent.

Notez que les entités découvertes ne seront pas créées s’il existe déjà des entités avec les mêmes critères d’unicité, par exemple un élément avec la même clé ou un graphique portant le même nom. Dans ce cas, un message d’erreur s’affiche dans l’interface web indiquant que la règle de découverte de bas niveau n’a pas pu créer certaines entités. La règle de découverte elle-même ne deviendra toutefois pas non prise en charge parce qu’une entité n’a pas pu être créée et a dû être ignorée. La règle de découverte continuera à créer/mettre à jour les autres entités.

Si une entité découverte (hôte, système de fichiers, interface, etc.) cesse d’être découverte (ou ne correspond plus au filtre), les entités créées à partir de celle-ci peuvent être automatiquement désactivées puis finalement supprimées.

Les ressources perdues peuvent être automatiquement désactivées selon la valeur du paramètre Disable lost resources. Cela affecte les hôtes, éléments et déclencheurs perdus.

Les ressources perdues peuvent être automatiquement supprimées selon la valeur du paramètre Delete lost resources. Cela affecte les hôtes, groupes d’hôtes, éléments, déclencheurs et graphiques perdus.

Lorsque des entités découvertes deviennent « Non découvertes désormais », un indicateur de durée de vie s’affiche dans la liste des entités. Placez le pointeur de la souris dessus et un message s’affichera indiquant les détails de son statut.

Si des entités ont été marquées pour suppression, mais n’ont pas été supprimées au moment prévu (règle de découverte désactivée ou hôte de l’élément), elles seront supprimées lors du prochain traitement de la règle de découverte.

Les entités contenant d’autres entités marquées pour suppression ne seront pas mises à jour si elles sont modifiées au niveau de la règle de découverte. Par exemple, les déclencheurs basés sur LLD ne seront pas mis à jour s’ils contiennent des éléments marqués pour suppression.

Autres types de découverte

Vous trouverez plus de détails et des guides pratiques sur d'autres types de découverte prêts à l'emploi dans les sections suivantes :

Pour plus de détails sur le format JSON des éléments de découverte et un exemple de mise en œuvre de votre propre outil de découverte du système de fichiers sous forme de script Perl, consultez la création de règles LLD personnalisées.