This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

12. Expressions régulières

Aperçu

Les expressions régulières compatibles Perl (PCRE) sont supportées dans Zabbix.

Il y a deux façons d'utiliser des expressions régulières dans Zabbix :

  • en entrant manuellement une expression régulière
  • en utilisant une expression régulière globale créée dans Zabbix

Expressions régulières

Vous pouvez entrer manuellement une expression régulière aux endroits supportés. Notez que l’expression ne peut pas commencer par @ car ce symbole est utilisé dans Zabbix pour référencer des expressions régulières globales.

::: notewarning ​Il est possible de manquer de pile (out of stack) en utilisant des expressions régulières. Reportez-vous à la page de manuel de pcrestack] pour plus d'informations. :::​

Notez que dans une correspondance multiligne, les ancres ^ et $ correspondent au début/à la fin de chaque ligne, respectivement, au lieu du début/de la fin de la chaîne entière.

Expressions régulières globales

Il existe un éditeur avancé pour la création et le test d’expressions régulières complexes dans l'interface web de Zabbix.

Une fois qu'une expression régulière a été créée de cette manière, elle peut être utilisée à plusieurs endroits dans l'interface en se référant à son nom, précédé de @, par exemple, @mycustomregexp.

Pour créer une expression régulière globale :

  • Aller dans Administration → Général
  • Sélectionnez Expressions régulières dans la liste déroulante.
  • Cliquez sur Nouvelle expression régulière

L'onglet Expressions permet de définir le nom de l'expression régulière et d'ajouter des sous-expressions.

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

Paramètre Description
Nom Définissez le nom de l'expression régulière. Tous les caractères Unicode sont autorisés.
Expressions Cliquez sur Ajouter dans le bloc Expressions pour ajouter une nouvelle sous-expression.
Type d'expression Sélectionnez le type d'expression :
Chaîne de caractères inclue - correspond à la sous chaîne
Toute chaîne de caractère inclue - correspond à n'importe quelle sous-chaîne d'une liste délimitée. La liste délimitée comprend une virgule (,), un point (.) ou une barre oblique (/)
Chaîne de caractères non inclue - correspond à n'importe quelle chaîne sauf la sous-chaîne
Le résultat est VRAI - correspond à l'expression régulière
Le résultat est FAUX - ne correspond pas à l'expression régulière
Expression Entrez une sous-chaîne/expression régulière.
Délimiteur Une virgule (,), un point (.) ou une barre oblique (/) pour séparer les chaînes de texte dans une expression régulière. Ce paramètre est actif uniquement lorsque le type d'expression "Toute chaîne de caractères inclue" est sélectionné.
Sensible à la casse Une case à cocher pour spécifier si une expression régulière est sensible à la casse.

Depuis Zabbix 2.4.0, une barre oblique (/) dans l'expression est traitée littéralement, plutôt que comme délimiteur. De cette façon, il est possible de sauvegarder des expressions contenant une barre oblique, alors que cela produisait auparavant une erreur.

Un nom d'expression régulière personnalisé dans Zabbix peut contenir des virgules, des espaces, etc. Dans les cas où cela peut conduire à une interprétation erronée lors du référencement (par exemple, une virgule dans le paramètre d'une clé d'élément), la référence entière peut être placée entre guillemets : "@My custom regexp for purpose1, purpose2".
Les noms des expressions régulières ne doivent pas être entre guillemets ailleurs (par exemple, dans les propriétés de la règle LLD).

Exemple

Utilisation de l'expression régulière suivante dans la LLD pour découvrir des bases de données ne prenant pas en compte une base de données portant un nom spécifique :

^TESTDATABASE$

Type d'expression choisie : "Le résultat est FAUX". Ne correspond pas au nom, contenant la chaîne “TESTDATABASE”.

Exemple avec un modificateur de regex en ligne

Utilisation de l'expression régulière suivante, y compris un modificateur en ligne (?i) pour faire correspondre les caractères "error" :

(?i)error

Type d'expression choisie : "Le résultat est VRAI". Les caractères "error" correspondent.

Un autre exemple avec un modificateur de regex en ligne

Utilisation de l'expression régulière suivante, y compris plusieurs modificateurs en ligne, pour faire correspondre les caractères après une ligne spécifique :

(?<=match (?i)everything(?-i) after this line\n)(?sx).*# we add s modifier to allow . match newline characters

Type d'expression choisie : "Le résultat est VRAI". Les caractères après une ligne spécifique correspondent.

Le modificateur g ne peut pas être spécifié dans la ligne. La liste des modificateurs disponibles se trouve dans la page du manuel pcresyntax. Pour plus d'informations sur la syntaxe PCRE, reportez-vous à la documentation HTML de PCRE.

Exemple plus complexe

Une expression régulière personnalisée peut comprendre plusieurs sous-expressions et peut être testée dans l'onglet Test en fournissant une chaîne de test.

Les résultats montrent le statut de chaque sous-expression et le statut total de l'expression personnalisée.

Le statut total de l'expression personnalisée est défini en tant que Résultat combiné. Si plusieurs sous-expressions sont définies, Zabbix utilise l'opérateur logique ET pour calculer le Résultat combiné. Cela signifie que si au moins un résultat est faux, le Résultat combiné a également le statut faux.

Explication des expressions régulières globales

Regexp Globale Expression Description
Système de fichiers pour la découverte ^(btrfs\|ext2\|ext3\|ext4\|jfs\|reiser\|xfs\|ffs\|ufs\|jfs\|jfs2\|vxfs\|hfs\|refs\|apfs\|ntfs\|fat32\|zfs)$ Correspond à "btrfs" ou "ext2" ou "ext3" ou "ext4" ou "jfs" ou "reiser" ou " xfs" ou "ffs" ou "ufs" ou "jfs" ou "jfs2" ou "vxfs" ou "hfs" ou "refs" ou "apfs" ou "ntfs" ou "fat32" ou "zfs"
Interfaces réseau pour la découverte ^Software Loopback Interface Correspond aux chaînes commençant par "Software Loopback Interface"
^lo$ Correspond à "lo"
^(In)?[Ll]oop[Bb]ack[0-9._]*$ Correspond aux chaînes qui commencent éventuellement par "In", puis ont "L" ou "l", puis "oop", puis "B" ou "b", puis "ack", qui peut éventuellement être suivi d'un nombre quelconque de chiffres, points ou underscores
^NULL[0-9.]*$ Correspond aux chaînes avec "NULL" éventuellement suivies d'un nombre quelconque de chiffres ou de points
^[Ll]o[0-9.]*$ Correspond aux chaînes commençant par "Lo" ou "lo" et éventuellement suivies d'un nombre quelconque de chiffres ou de points
^[Ss]ystem$ Correspond à "System" ou "system"
^Nu[0-9.]*$ Correspond aux chaînes avec "Nu" éventuellement suivies d'un nombre quelconque de chiffres ou de points
Périphériques de stockage pour la découverte SNMP ^(Physical memory\|Virtual memory\|Memory buffers\|Cached memory\|Swap space)$ Correspond à "Physical memory" ou "Virtual memory" ou "Memory buffers" ou "Cached memory" ou "Swap space"
Noms de services Windows pour la découverte ^(MMCSS\|gupdate\|SysmonLog\|clr_optimization_v2.0.50727_32\|clr_optimization_v4.0.30319_32)$ Correspond à "MMCSS" ou "gupdate" ou "SysmonLog" ou des chaînes comme "clr_optimization_v2.0.50727_32" et "clr_optimization_v4.0.30319_32" où au lieu de points, vous pouvez insérer un caractère sauf newline
États de démarrage du service Windows pour la découverte ^(automatic\|automatic delayed)$ Correspond à "automatic" ou "automatic delayed"

Support d'expression régulière par emplacement

Emplacement Expression régulière Expression régulière globale Commentaires
Élément d'agent
eventlog[] Oui Oui paramètres regexp, severity, source, eventid
log[] paramètre regexp
log.count[]
logrt[] Oui/Non paramètre regexp supporte les deux, paramètre file_regexp supporte uniquement les expressions non-globales
logrt.count[]
proc.cpu.util[] Non paramètre cmdline
proc.mem[]
proc.num[]
sensor[] paramètres device et sensor sur Linux 2.4
system.hw.macaddr[] paramètre interface
system.sw.packages[] paramètre package
vfs.dir.count[] paramètres regex_incl et regex_excl
vfs.dir.size[] paramètres regex_incl et regex_excl
vfs.file.regexp[] paramètre regexp
vfs.file.regmatch[]
web.page.regexp[]
Traps SNMP
snmptrap[] Oui Oui paramètre regexp
Pré-traitement de la valeur d'un élément Oui Non paramètre pattern
Fonction déclencheur
count() Oui Oui paramètre pattern si paramètre operator est regexp ou iregexp
logeventid() paramètre pattern
logsource()
iregexp()
regexp()
Découverte de bas niveau Oui Oui champs Filtre
Supervision Web Oui Non Variables avec un préfix regex:
champs Chaîne requise
Fonctions de macro
regsub() Oui Non paramètre pattern
iregsub()
Correspondance d'icônes Oui Oui champs Expression