You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用正则提取日志内容实现Zabbix监控及异常告警?

日志提取与Zabbix监控告警实现方案

1. 正则表达式编写

针对你的日志结构,可使用以下PCRE正则精准提取每个检查项的名称和对应详情信息(支持跨多行匹配):

^===== (\S.*?)\s*=====\s*(?:.*\n)*?Details: \[(\w+)\] (.*)$
  • ^===== (\S.*?)\s*=====:匹配检查项标题行,捕获标题文本(如Backup Failures)
  • \s*(?:.*\n)*?:非贪婪匹配标题到Details行之间的所有内容,避免跨区块误匹配
  • Details: \[(\w+)\] (.*)$:匹配详情行,捕获状态标签(OK/CRITICAL等)和具体描述

2. Zabbix监控项配置

方式一:自动发现所有检查项(推荐)

创建日志监控项,利用正则捕获组自动生成对应检查项的监控键:

log[/path/to/your/target/log,"^===== (\S.*?)\s*=====\s*(?:.*\n)*?Details: \[(\w+)\] (.*)$",,,,\1]
  • 替换/path/to/your/target/log为实际日志文件路径
  • 最后一个参数\1会将捕获的检查项名称作为监控键后缀,最终生成如log[/path/to/log].Backup Failures的监控项

方式二:单独配置单个检查项

如果需要针对特定检查项单独监控,可编写专属正则,比如针对Zombie Services:

log[/path/to/your/target/log,"^===== Zombie Services\s*=====\s*(?:.*\n)*?Details: \[(\w+)\] (.*)$"]

3. 告警触发器配置

创建触发器,当监控项捕获的状态非OK时触发告警:

单检查项触发器示例:

{Your_Hostname:log[/path/to/log].Zombie Services.str(OK)}=0

批量检查项触发器示例(适配自动发现的监控项):

{Your_Hostname:log[/path/to/log].*[regexp("\[CRITICAL\]|\[ERROR\]")].strlen()}>0
  • 替换Your_Hostname为你的Zabbix主机名
  • 设置合适的告警级别(如CRITICAL对应严重故障),并配置恢复条件为状态回到OK时自动清除告警

4. 验证测试

  • 修改日志文件,手动写入非OK状态的检查项条目,确认Zabbix能正确捕获并触发告警
  • 查看监控项的历史数据,验证提取的内容与预期一致

内容的提问来源于stack exchange,提问作者Peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 11:35:17