如何跳过读取zabbix中的时间戳?

How to skip reading the timestamp in zabbix?

我已经创建了一个 zabbix 警报 return 每当文件中有任何错误或警告时记录消息:

项目:

Type : Zabbix agent (active)

key : log[/usr/local/panorama/acs/standalone/log/server.log,WARN\s*\[|ERROR\s*\[,,,,[=10=]]

Type of information : Log

Log Time Format : yyyy-MM-ddThh:mm:ss,SSS

还有一个警报:

Name : Error/Warning log at {HOST.NAME} : {ITEM.VALUE}

Expression : {MyTemplate:log[/usr/local/abc/abc.log,WARN\s*\[|ERROR\s*\[*,,,,[=11=]].strlen()}>0

Multiple Problem Generation : Checked

示例日志消息:

2015-05-02 19:20:55,919 ERROR [com.xyz.MyClass] some log message here

使用此配置,return编辑的警报是:

Error/Warning log at CL MyHost : ERROR [

你能帮我一下吗?我想要日志消息的其他部分,即警报应该是这样的:

Error/Warning log at CL MyHost : [com.xyz.MyClass] some log message here

这里我想获取除时间戳部分之外的日志消息。

此外,解析时间戳的毫秒部分的约定是什么?我正在使用 "S"。不确定是否可以。

任何帮助将不胜感激。

项目的以下键解决了问题:

log[/usr/local/abc/abc.log,"WARN\s*\[(.*)|ERROR\s*\[(.*)",,,,]

现在警报 returns :

Error/Warning log at CL MyHost : com.xyz.MyClass] some log message here

如果最重要的目标是将“[com.xyz.MyClass] 此处的一些日志消息”作为项目值,则以下键似乎有效:

log[/tmp/logfile.txt,WARN\s*|ERROR\s*(\[.*),,,,]

不幸的是,通过仅捕获日志消息的指定部分,我们失去了解析时间戳的能力,因为时间戳是在服务器端解析的,但 \1 是在代理端捕获的。

关于毫秒解析,不支持(参见log monitoring documentation)。