This is a translation of the original English documentation page. Help us make it better.

Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

12. Expressions régulières

Aperçu

Perl Compatible Regular Expressions (PCRE, PCRE2) sont pris en charge dans Zabbix.

Il existe deux manières d'utiliser les expressions régulières dans Zabbix :

  • saisie manuelle d'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 dans les emplacements pris en charge. 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.

Il est possible de manquer de pile (out of stack) lors de l'utilisation d'expressions régulières. Consultez la page de manuel de pcrestack pour plus d'informations.

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

Global regular expressions

There is an advanced editor for creating and testing complex regular expressions in Zabbix frontend.

Once a regular expression has been created this way, it can be used in several places in the frontend by referring to its name, prefixed with @, for example, @mycustomregexp.

To create a global regular expression:

  • Go to: Administration → General
  • Select Regular expressions from the dropdown
  • Click on New regular expression

The Expressions tab allows to set the regular expression name and add subexpressions.

All mandatory input fields are marked with a red asterisk.

Parameter Description
Name Set the regular expression name. Any Unicode characters are allowed.
Expressions Click on Add in the Expressions block to add a new subexpression.
Expression type Select expression type:
Character string included - match the substring
Any character string included - match any substring from a delimited list. The delimited list includes a comma (,), a dot (.) or a forward slash (/).
Character string not included - match any string except the substring
Result is TRUE - match the regular expression
Result is FALSE - do not match the regular expression
Expression Enter substring/regular expression.
Delimiter A comma (,), a dot (.) or a forward slash (/) to separate text strings in a regular expression. This parameter is active only when "Any character string included" expression type is selected.
Case sensitive A checkbox to specify whether a regular expression is sensitive to capitalization of letters.

Since Zabbix 2.4.0, a forward slash (/) in the expression is treated literally, rather than a delimiter. This way it is possible to save expressions containing a slash, whereas previously it would produce an error.

A custom regular expression name in Zabbix may contain commas, spaces, etc. In those cases where that may lead to misinterpretation when referencing (for example, a comma in the parameter of an item key) the whole reference may be put in quotes like this: "@My custom regexp for purpose1, purpose2".
Regular expression names must not be quoted in other locations (for example, in LLD rule properties).

Example

Use of the following regular expression in LLD to discover databases not taking into consideration a database with a specific name:

^TESTDATABASE$

regexp_expr_2.png

Chosen Expression type: "Result is FALSE". Doesn't match name, containing string "TESTDATABASE".

Exemples

Exemple 1

Utilisation de l'expression suivante dans la découverte de bas niveau pour découvrir des bases de données à l'exception d'une base de données portant un nom spécifique :

 ^TESTDATABASE$

regexp_expr_2.png

Type d'expression choisi : "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 incluant un modificateur en ligne (?i) pour faire correspondre les caractères "error":

 (?i)error

regexp_expr_3a.png

Type d'expression choisi : "Le résultat est VRAI". Les caractères "error" sont mis en correspondance.

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).*# nous ajoutons le modificateur s pour autoriser . à faire correspondre les caractères de nouvelle ligne

regexp_expr_4_new.png

Type d'expression choisi : "Le résultat est VRAI". Les caractères après une ligne spécifique sont mis en correspondance.

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

Regular expression support by location

Location Regular expression Global regular expression Comments
Agent items
eventlog[] Yes Yes regexp, severity, source, eventid parameters
log[] regexp parameter
log.count[]
logrt[] Yes/No regexp parameter supports both, file_regexp parameter supports non-global expressions only
logrt.count[]
proc.cpu.util[] No cmdline parameter
proc.mem[]
proc.num[]
sensor[] device and sensor parameters on Linux 2.4
system.hw.macaddr[] interface parameter
system.sw.packages[] package parameter
vfs.dir.count[] regex_incl and regex_excl parameters
vfs.dir.size[] regex_incl and regex_excl parameters
vfs.file.regexp[] regexp parameter
vfs.file.regmatch[]
web.page.regexp[]
SNMP traps
snmptrap[] Yes Yes regexp parameter
Item value preprocessing Yes No pattern parameter
Trigger functions
count() Yes Yes pattern parameter if operator parameter is regexp or iregexp
logeventid() pattern parameter
iregexp()
regexp()
Low-level discovery Yes Yes Filter field
Web monitoring Yes No Variables with a regex: prefix
Required string field
Macro functions
regsub() Yes No pattern parameter
iregsub()
Icon mapping Yes Yes Expression field