欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何使用Zabbix监控日志文件?

最编程 2024-02-02 17:48:19
...

参考:https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/zabbix_agent#supported_item_keys

KEY NAME
log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>] Log file monitoring. Returns log
log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>] Count of matched lines in log file monitoring. Returns integer
logrt[file_regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>] Log file monitoring with log rotation support. Returns log
logrt.count[file_regexp,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>] Count of matched lines in log file monitoring with log rotation support. Returns integer



log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>]


描述

日志文件监控

返回值

Log

参数

file - 日志文件的全路径和文件名
regexp - 正则表达式
encoding - 编码。如果留空,UNIX/LINUX默认utf-8,Win默认ANSI。参考 identifier
maxlines - 每秒agent发送给server或proxy的最大新行数量。这个参数会覆盖在 zabbix_agentd.conf内配置的参数 'MaxLinesPerSecond' 的值。
mode - 可用值:
all (默认), skip - 跳过旧数据不处理 (仅影响新创建的items).
output - 可选的输出格式模板。 转义序列 \0会被替换为匹配的文本,转义序列 \N ( N=1…9) 会被替换为第N个匹配的组 (或者空字符串,如果N超过最大抓取组的数量)
maxdelay - 最大delay时间(秒)。 类型: float。
值: 0 - (默认) 从不忽略日志 ; > 0.0 - 忽略旧日志行,以在“maxdelay” 内获取最新的日志行分析并分析完毕。
参考 maxdelay

说明

这个监控项必须被配置为主动检查 active check.
如果文件不存在,或者权限不允许访问,监控项会显示 unsupported。

如果 output 留空 - 返回匹配的整行。注意,除 'Result is TRUE' 外的所有全局正则表达式总会返回整行, output 参数会被忽略。

在agent上,内容的提取发布使用 output 参数来进行。

Examples:
⇒ log[/var/log/syslog]
⇒ log[/var/log/syslog,error]
⇒ log[/home/zabbix/logs/logfile,,,100]

范例:使用 output 参数从日志记录提取一个数值:
log[/app1/app.log,"task run [0-9.]+ sec, processed ([0-9]+) records, [0-9]+ errors",,,,\1]
→ 将匹配一行日志记录 "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors",并且将仅发送数字 6080 给server。因为发送的是一个数值,那么监控项的 "Type of information" 可以从"Log" 变更为 "Numeric (unsigned)",这个值可以被用于图形展示,触发器等。

范例:使用 output 参数重写发给server的日志记录:
log[/app1/app.log,"([0-9 :-]+) task run ([0-9.]+) sec, processed ([0-9]+) records, ([0-9]+) errors",,,,"\1 RECORDS: \3, ERRORS: \4, DURATION: \2"]
→ 将会匹配一行日志记录 "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors ",并且将修改日志记录为"2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08",然后发给server。

mode 参数支持始于 Zabbix 2.0.
output 参数支持始于 Zabbix 2.2.
maxdelay 参数支持始于 Zabbix 3.2.

更多文档请参见 log monitoring.



log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>]

描述

统计日志监控匹配的行数

返回值

整数

参数

file - 日志文件的全路径和文件名
regexp - 正则表达式
encoding - 编码。如果留空,UNIX/LINUX默认utf-8,Win默认ANSI。参考 identifier
maxproclines - 每秒agent将分析的最大行数。默认值是 zabbix_agentd.conf中参数'MaxLinesPerSecond'的10倍。
mode - 可用值:
all (默认), skip - 跳过旧数据不处理 (仅影响新创建的 items)
maxdelay - 最大delay时间(秒)。类型: float。
值: 0 - (默认) 从不忽略日志 ; > 0.0 - 忽略旧日志行,以在“maxdelay” 内获取最新的日志行分析并分析完毕。
参考 maxdelay notes before using it!

说明

这个监控项必须被配置为主动检查 active check.
如果文件不存在,或者权限不允许访问,监控项会显示 unsupported。

更多文档请参见 log monitoring.

支持始于 Zabbix 3.2.0.



logrt[file_regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>]

描述

日志监控(支持日志滚动)

返回值

日志

参数

| file_regexp - 日志文件的绝对路径&文件名的正则匹配。
regexp - 正则表达式
encoding - 编码。如果留空,UNIX/LINUX默认utf-8,Win默认ANSI。参考 identifier
maxlines - 每秒agent发送给server或proxy的最大新行数量。 这个参数会覆盖在 zabbix_agentd.conf内配置的参数 'MaxLinesPerSecond' 的值。
mode - 可用值:
all (默认), skip - 跳过旧数据不处理 (仅影响新创建的 items)。
output - 可选的输出格式模板。转义序列 \0会被替换为匹配的文本,转义序列 \N ( N=1…9) 会被替换为第N个匹配的组 (或者空字符串,如果N超过最大抓取组的数量)
maxdelay - 最大delay时间(秒)。 类型: float。
值: 0 - (默认) 从不忽略日志 ; > 0.0 - 忽略旧日志行,以在“maxdelay” 内获取最新的日志行分析并分析完毕。
参考 maxdelay notes before using it! |

说明

这个监控项必须被配置为主动检查 active check.
日志滚动(循环)基于文件的最后修改时间。

如果 output 留空 - 返回匹配的整行。注意,除 'Result is TRUE' 外的所有全局正则表达式总会返回整行, output 参数会被忽略。

在agent上,内容的提取发布使用 output 参数来进行。

Examples:
⇒ logrt["/home/zabbix/logs/^logfile[0-9]{1,3}$",,,100] → will match a file like "logfile1" (will not match ".logfile1")

⇒ logrt["/home/user/^logfile_.*_[0-9]{1,3}$","pattern_to_match","UTF-8",100] → will collect data from files such "logfile_abc_1" or "logfile__001".

范例:使用 output 参数从日志记录中提取一个数值:
logrt[/app1/^test.*log$,"task run [0-9.]+ sec, processed ([0-9]+) records, [0-9]+ errors",,,,\1]
→ 将匹配一行日志记录"2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors",并且仅发送数值 6080 给 server。 因为发送的是一个数值,那么监控项的 "Type of information" 可以从"Log" 变更为 "Numeric (unsigned)",这个值可以被用于图形展示,触发器等。

范例:使用 output 参数重写发给server的日志:
logrt[/app1/^test.*log$,"([0-9 :-]+) task run ([0-9.]+) sec, processed ([0-9]+) records, ([0-9]+) errors",,,,"\1 RECORDS: \3, ERRORS: \4, DURATION: \2"]
→ 将匹配一行日志 "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors " ,并且修改日志记录为 "2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08" ,然后发给 server。

mode 参数支持始于 Zabbix 2.0.
output 参数支持始于 Zabbix 2.2.
maxdelay 参数支持始于 Zabbix 3.2.

更多参见 log monitoring.



logrt.count[file_regexp,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>]

描述

统计匹配的日志数量(支持日志滚动)

返回值

整数

参数

file_regexp - 日志文件的绝对路径&文件名的正则匹配
regexp - 正则表达式
encoding - 编码。如果留空,UNIX/LINUX默认utf-8,Win默认ANSI。参考 identifier
maxproclines - 每秒agent将分析的最大行数。默认值是 zabbix_agentd.conf中参数'MaxLinesPerSecond'的10倍。
mode - 可用值:
all (默认), skip - 跳过旧数据不处理 (仅影响新创建的 items)
maxdelay - 最大delay时间(秒)。类型: float。
值: 0 - (默认) 从不忽略日志 ;> 0.0 -忽略旧日志行,以在“maxdelay” 内获取最新的日志行分析并分析完毕。
参考 maxdelay notes before using it!

说明

这个监控项必须被配置为主动检查 active check.
日志滚动(循环)基于文件的最后修改时间。

更多 log monitoring.

支持始于 Zabbix 3.2.0.

推荐阅读