12. 正则表达式

    概述

    在Zabbix中有两种方法使用正则表达式

    • 手动输入正则表达式

    正则表达式

    你可以在受支持位置中手动输入正则表达式。请注意,表达式不能以@开头,因为该符号在Zabbix中用于引用全局正则表达式。

    全局正则表达式

    有一个高级编辑器用于在Zabbix前端中创建和测试复杂的正则表达式。

    创建全局正则表达式

    • 进入: 管理(Administration)→ 一般(General)

    • 从下拉列表中选择正则表达式(Regular expressions)

    表达式选项卡允许设置正则表达式名称和添加子表达式。

    自Zabbix 2.4.0开始,表达式中的正斜杠作为字符处理,而不是分隔符。这样可以保存包含斜杠的表达式,而以前它会产生错误。

    Zabbix中的自定义正则表达式名称可能包含逗号,空格等。在引用时可能导致错误解释的情况下(例如,监控项键的参数中的逗号),整个引用可以放在引号中,如下所示 :“@我的自定义regexp为purpose1,purpose2”。\正则表达式名称不能在其他位置引用(例如,在LLD规则属性中)。

    自定义正则表达式可能由多个子表达式组成,并且可以通过提供测试字符串在测试选项卡中进行测试

    结果显示每个子表达式的状态和自定义表达式的状态

    正则表达式支持位置

    位置正则表达式支持全局正则表达式支持注释
    宏函数
    regsub() 模式(pattern) 参数
    iregsub()
    触发器函数
    count() 模式(pattern) 参数,如果 (操作员)operator 参数是regexp or iregexp
    logeventid()模式(pattern) 参数
    iregexp()
    regexp()
    自动发现
    过滤(Filter) 字段
    Web监测
    变量regex: 为前缀Required string 字段的变量
    Zabbix 代理(agent) 项
    eventlog[] regexp, severity, source, eventid 参数
    log[] regexp 参数
    log.count[]
    logrt[] 是/否regexp 参数支持两老师, file_regexp 参数只支持non-global 表达式
    logrt.count[]
    proc.cpu.util[] cmdline 参数
    proc.mem[]
    proc.num[]
    sensor[] devicesensor 参数在 Linux 2.4
    system.hw.macaddr[] interface 参数
    system.sw.packages[]package 参数
    vfs.dir.size[] regex_inclregex_excl 参数
    vfs.file.regexp[] regexp 参数
    vfs.file.regmatch[]
    web.page.regexp[]
    SNMP 捕获
    snmptrap[]regexp 参数
    图标映射(Icon mapping)
    Expression 字段