zabbix 的 PCRE 正则表达式转换
PCRE Regex conversion for zabbix
我目前监控一个打印以下健康检查的页面
<status>
<link type="text/css" id="dark-mode" rel="stylesheet" href=""/>
<style type="text/css" id="dark-mode-custom-style"/>
<cache>ok</cache>
<databaseMaster>error</databaseMaster>
<databaseSlave>error</databaseSlave>
<redis>ok</redis>
<files>ok</files>
</status>
我使用以下触发器来完成(这个有效)
{host:web.page.regexp[{$HOST_IP},health/check,,[error|warning],,].str(error)}=1
然而,当试图详细解析每个单独的行响应时(即数据库主机,
在第 5 行,它可以显示 3 个值,ok、error 和 warning,我试图得到的表达式 运行 是(这不起作用)
{host:web.page.regexp[{$HOST_IP},health/check,,[<databaseMaster>error|<databaseMaster>warning],,].str(error)}=1
然而,尽管语法我找不到任何错误,因为大于和小于符号不是元字符,不知何故我怀疑我的正则表达式是错误的但我不确定如何翻译pcre
这样我就可以匹配要触发警报的字符
我也想知道 zabbix 是否有更适合这个的功能?
[<databaseMaster>error|<databaseMaster>warning]
- 您试图匹配 <databaseMaster>error
或 <databaseMaster>warning
,但您实际上是在匹配列表 <d,a,t,b,s,e,M,r,>,o,|,w,n,i,g
中的一个字符。
[方括号] 在这种情况下表示 "match one character present in the list." 尝试使用捕获组,它的行为将如您所料:
(<databaseMaster>error|<databaseMaster>warning)
查看 this answer 了解有关正则表达式中圆括号和方括号之间区别的更多信息。
我目前监控一个打印以下健康检查的页面
<status>
<link type="text/css" id="dark-mode" rel="stylesheet" href=""/>
<style type="text/css" id="dark-mode-custom-style"/>
<cache>ok</cache>
<databaseMaster>error</databaseMaster>
<databaseSlave>error</databaseSlave>
<redis>ok</redis>
<files>ok</files>
</status>
我使用以下触发器来完成(这个有效)
{host:web.page.regexp[{$HOST_IP},health/check,,[error|warning],,].str(error)}=1
然而,当试图详细解析每个单独的行响应时(即数据库主机, 在第 5 行,它可以显示 3 个值,ok、error 和 warning,我试图得到的表达式 运行 是(这不起作用)
{host:web.page.regexp[{$HOST_IP},health/check,,[<databaseMaster>error|<databaseMaster>warning],,].str(error)}=1
然而,尽管语法我找不到任何错误,因为大于和小于符号不是元字符,不知何故我怀疑我的正则表达式是错误的但我不确定如何翻译pcre 这样我就可以匹配要触发警报的字符
我也想知道 zabbix 是否有更适合这个的功能?
[<databaseMaster>error|<databaseMaster>warning]
- 您试图匹配 <databaseMaster>error
或 <databaseMaster>warning
,但您实际上是在匹配列表 <d,a,t,b,s,e,M,r,>,o,|,w,n,i,g
中的一个字符。
[方括号] 在这种情况下表示 "match one character present in the list." 尝试使用捕获组,它的行为将如您所料:
(<databaseMaster>error|<databaseMaster>warning)
查看 this answer 了解有关正则表达式中圆括号和方括号之间区别的更多信息。