Perl互換の正規表現 (PCRE、PCRE2)がZabbixでサポートされています。
Zabbixで正規表現を使用するには2つの方法があります。
サポートされている場所に正規表現を手動で入力することができます。 ただし、Zabbixでは@記号がグローバル正規表現を参照するために使用されているため、式の先頭に@を付けることはできません。
正規表現を使用するとスタックが不足する可能性があります。 詳細については pcrestack manページ を参照してください。
複数行マッチングでは、^ および $ のアンカーはそれぞれ各行の先頭/末尾にマッチし、文字列全体の先頭/末尾にはマッチしないことに注意してください。
さまざまなコンテキストでの正しいエスケープの例も参照してください。
Zabbix フロントエンドで複雑な正規表現を作成およびテストするための高度なエディターがあります。
このようにして作成した正規表現は、@mycustomregexp のように、先頭に @ を付けたその名前を参照することで、フロントエンドのさまざまな場所で使用できます。
グローバルな正規表現を作成するには:
条件式 タブでは、正規表現名を設定し、部分式を追加できます。

必須入力項目には、赤いアスタリスクが表示されています。
| パラメータ | 説明 | |
|---|---|---|
| 名前 | 正規表現名を設定します。 すべての Unicode 文字を使用できます。 | |
| 条件式 | 条件式ブロックの 追加 をクリックして、新しい部分式を追加します。 | |
| 条件式の形式 | 条件式の形式を選択します: 文字列が含まれる - 部分文字列と一致します いずれかの文字列が含まれる - 区切りリストの任意の部分文字列と一致します。 区切りリストには、コンマ (,)、ドット (.)、またはスラッシュ (/) が含まれます。 文字列が含まれない - 部分文字列以外の任意の文字列に一致します 結果が真 - 正規表現に一致する 結果が偽 - 正規表現に一致しない |
|
| 条件式 | 部分文字列/正規表現を入力します。 | |
| 区切り文字 | 正規表現でテキスト文字列を区切るには、コンマ (,)、ドット (.)、またはスラッシュ (/) を使用します。 このパラメーターは条件式の形式が"いずれかの文字列が含まれる"を選択している場合にのみ有効です。 | |
| 大文字と小文字を区別 | 正規表現が文字の大文字と小文字を区別するかどうかを指定するチェックボックス | |
式内のスラッシュ (/) は、区切り文字ではなく文字どおりに扱われるので、スラッシュを含む式はエラーなしで保存できます。
Zabbixのカスタム正規表現名には、カンマやスペースなどを含むことができます。そのため、参照時に誤解を招く可能性がある場合(例えば、アイテムキーのパラメータにカンマがある場合)、参照全体を次のように引用符で囲むことができます。"@My custom regexp for purpose1, purpose2".
正規表現名は、他の場所(たとえば LLD ルールのプロパティ)では引用符で囲まないでください。
テスト タブでは、テスト文字列を指定することで、正規表現とその部分式をテストできます。

結果には、各部分式のステータスとカスタム式の合計ステータスが表示されます。
カスタム式の合計ステータスは、結合結果として定義されます。 複数のサブ式が定義されている場合、Zabbix は AND 論理演算子を使用して 結合結果 を計算します。 これは、少なくとも 1 つの結果が False の場合、結合された結果 も False ステータスになることを意味します。
Zabbixには、デフォルトのデータセットにいくつかのグローバル正規表現が含まれています。
| 名前 | 式 | 一致する内容 |
|---|---|---|
| ディスカバリ用ファイルシステム | ^(btrfs|ext2|ext3|ext4|jfs|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|refs|apfs|ntfs|fat32|zfs)$ |
"btrfs" または "ext2" または "ext3" または "ext4" または "jfs" または "reiser" または "xfs" または "ffs" または "ufs" または "jfs" または "jfs2" または "vxfs" または "hfs" または "refs" または "apfs" または "ntfs" または "fat32" または "zfs" |
| ディスカバリ用ネットワークインターフェース | ^Software Loopback Interface |
"Software Loopback Interface"で始まる文字列 |
^lo$ |
"lo" | |
^(In)?[Ll]oop[Bb]ack[0-9._]*$ |
任意で"In"で始まり、次に"L"または"l"、"oop"、"B"または"b"、"ack"が続き、その後に任意の桁数の数字、ドット、アンダースコアが続く文字列 | |
^NULL[0-9.]*$ |
"NULL"で始まり、その後に任意の桁数の数字またはドットが続く文字列 | |
^[Ll]o[0-9.]*$ |
"Lo"または"lo"で始まり、その後に任意の桁数の数字またはドットが続く文字列 | |
^[Ss]ystem$ |
"System"または"system" | |
^Nu[0-9.]*$ |
"Nu"で始まり、その後に任意の桁数の数字またはドットが続く文字列 | |
| SNMPディスカバリ用ストレージデバイス | ^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$ |
"Physical memory" または "Virtual memory" または "Memory buffers" または "Cached memory" または "Swap space" |
| ディスカバリ用Windowsサービス名 | ^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$ |
"MMCSS" または "gupdate" または "SysmonLog" または "clr_optimization_v2.0.50727_32"や"clr_optimization_v4.0.30319_32"のような文字列(ドットの代わりに改行以外の任意の文字を入れることができる) |
| ディスカバリ用Windowsサービスの起動状態 | ^(automatic|automatic delayed)$ |
"automatic" または "automatic delayed" |
低レベルの検出で次の式を使用すると、特定の名前のデータベース以外を検出できます。

選択されたExpression type : "結果はFALSE "です。"TESTDATABASE" を含んだ名前と一致しません。
インラインモディファイアを含む次の正規表現を使用します。
(?i) を使用して、"error" という文字にマッチさせます。

選択されたExpression type : "結果はTRUE "です。文字 "error "にマッチする。
複数のインライン修飾子を含む次の正規表現を使用すると、特定の行以降の文字にマッチします。
(?<=match (?i)everything(?-i) after this line\n)(?sx).*# we add s modifier to allow .match newline characters
選択されたExpression type : "結果はTRUE "です。
特定の行以降の文字にマッチします。
g修飾子は、行内で指定することはできません。利用可能な修飾子の一覧は
利用可能な修飾子のリストは、pcresyntax manpageにあります。
PCRE の構文に関するより詳しい情報は PCRE HTML documentation を参照してください。
| ロケーション | 正規表現 | グローバル正規表現 | 複数行マッチング | コメント | |
|---|---|---|---|---|---|
| エージェントアイテム | |||||
| eventlog[] | Yes | Yes | Yes | regexp, severity, source, eventid パラメータ |
|
| eventlog.count[] | regexp, severity, source, eventid パラメータ |
||||
| log[] | regexp パラメータ |
||||
| log.count[] | |||||
| logrt[] | Yes/No | regexp パラメータは両方サポート、file_regexp パラメータはグローバル以外のみサポート |
|||
| logrt.count[] | |||||
| proc.cpu.util[] | No | No | cmdline パラメータ |
||
| proc.get[] | |||||
| proc.mem[] | |||||
| proc.num[] | |||||
| sensor[] | Linux 2.4 の device および sensor パラメータ |
||||
| system.hw.macaddr[] | interface パラメータ |
||||
| system.sw.packages[] | regexp パラメータ |
||||
| system.sw.packages.get[] | regexp パラメータ |
||||
| vfs.dir.count[] | regex_incl, regex_excl, regex_excl_dir パラメータ |
||||
| vfs.dir.get[] | regex_incl, regex_excl, regex_excl_dir パラメータ |
||||
| vfs.dir.size[] | regex_incl, regex_excl, regex_excl_dir パラメータ |
||||
| vfs.file.regexp[] | Yes | regexp パラメータ |
|||
| vfs.file.regmatch[] | |||||
| web.page.regexp[] | |||||
| SNMPトラップ | |||||
| snmptrap[] | Yes | Yes | No | regexp パラメータ |
|
| アイテム値の事前処理 | Yes | No | No | pattern パラメータ |
|
| トリガー/計算アイテムの関数 | |||||
| count() | Yes | Yes | Yes | operator パラメータが regexp または iregexp の場合の pattern パラメータ |
|
| countunique() | Yes | Yes | |||
| find() | Yes | Yes | |||
| logeventid() | Yes | Yes | No | pattern パラメータ |
|
| logsource() | |||||
| ローレベルディスカバリ | |||||
| フィルター | Yes | Yes | No | 正規表現 フィールド | |
| オーバーライド | Yes | No | 操作 条件の 一致する、一致しない オプション | ||
| アクション条件 | Yes | No | No | 一致する、一致しない オプションでの ホスト名 および ホストメタデータ の自動登録条件 | |
| スクリプト | Yes | Yes | No | 入力検証ルール フィールド | |
| Web監視 | Yes | No | Yes | regex: プレフィックス付きの 変数 必須文字列 フィールド |
|
| ユーザーマクロのコンテキスト | Yes | No | No | regex: プレフィックス付きのマクロコンテキスト | |
| マクロ関数 | |||||
| regsub() | Yes | No | No | pattern パラメータ |
|
| iregsub() | |||||
| マップのリンクインジケータ | Yes | No | No | (テキストアイテム用の)パターン フィールド | |
| アイコンマッピング | Yes | Yes | No | 式 フィールド | |
| 値のマッピング | Yes | No | No | マッピングタイプが regexp の場合の 値 フィールド |
|