vlambda博客
学习文章列表

如何用好 Zabbix 的日志监控功能?

【作者】许远,广州九一乐维工程师  


日志中能透露的信息很多,从日志中,可以知道程序的运行状态,可以知道系统是否正常等,但是对于日志的监控却很让人头疼,要是能监控日志的变化情况,就可以及时的知道系统发生了什么,从而做出相应的对策。对于日志监控,zabbix有话说,zabbix从较早的版本就有了日志监控的功能。

1、日志监控功能

zabbix-agent支持日志文件的监控,可以对日志文件关键字进行监控,然后告警,日志监控支持普通的日志文件,支持日志轮询,切割的文件。当日志文件中出现特殊的字符串(告警,报错的字符串)可以发通知给客户

日志监控必须满足以下条件:

zabbix-agent必须运行,且工作方式必须是主动模式

日志的Item必须设置,必须指定文件名

zabbix-agent有读取日志的权限

2、日志监控的监控指标

log[/path/to/file/file_name,,,,,
,,]

logrt[path/to/file/regexpo_describing_filename_pattern,,,,,
,,]

log.count[/path/to/file/file_name,,,,,,]

logrt.cunt[path/to/file/regexpo_describing_filename_pattern,,,,,,]

参数 含义
file_name 日志文件所在的路径或者绝对路径名
regexp 匹配正则表达式
encoding 在Linux/unix系统下默认编码为UTF-8,在Windows系统下默认编码为ANSI
maxlines 每次给zabbix-server或者zabbix-Proxy发送的日志的最大行数,此参数会高于zabbix-agent.conf中的MaxLinesPerSecond参数值,通过此参数,可以控制一次发送的日志的数据条数,如果发送次数过多,可能会对zabbix-agnet的负载和I/O有很大的影响
mode all为默认参数,表示匹配所有的日志,包括以前存的日志也会进行匹配
skip 表示跳过已存在的日志数据,只有新的日志才会进行匹配
output 表示匹配输出的正则表达式,1~9表示返回的匹配的第几个字符串,表示返回匹配的全部字符串
maxdelay 以秒为单位的最大延迟,用用于忽略老的日志数据,及时获取获取当前的日志数据。(4.0+)当处理日志过多,在更新周期内达到maxlines的发送上限,但还有日志未发送时,会导致大量堆积,在严重的情况下,会造成日志处理速度跟不上,使用此参数忽略过期的日志发送0是默认值,永远不会忽略日志文件行输入可以是浮点数(float)>0.0,忽略较旧的行,以获得在maxdelay秒内分析最新行,会丢弃在规定时间内的无法发送的数据
options 日志轮询、切割方式(4.0+)rotate,日志轮询、切割,默认值copytruncate,先拷贝文件,然后清空日志的轮询方式,copytruncate不能与maxdelay一起使用,如使用此参数,maxdelay必须为0或者未指定[size=12.0000pt]
例: 控zabbix_server的日志

创建监控项,选择zabbix_server客户端(主动式)

如何用好 Zabbix 的日志监控功能?

这四个就是日志监控的指标,根据需求选择合适的键值

如何用好 Zabbix 的日志监控功能?

我的zabbix_server的日志路径事/usr/local/zabbix/logs/zabbix_server,后面跟的正则表达式事error,只有当出现error字段时,才会有数据,后面的参数可以不写,但是还是要写逗号的。信息类型选择文本或者是字符

如何用好 Zabbix 的日志监控功能?
如何用好 Zabbix 的日志监控功能?

这样这个日志监控的监控项就已经做好了

接下来就要做的就是做触发器了

触发器中监控项选择刚才创建的监控项

如何用好 Zabbix 的日志监控功能?

功能选择diff(),结果选择等于1

如何用好 Zabbix 的日志监控功能?

迭代选择无,这样再次匹配的话,告警就不会恢复

如何用好 Zabbix 的日志监控功能?

测试,往zabbix_server.log文件内写入error,测试是否会报警

3、如果zabbix用户对日志没有读取权限,则会提示权限拒绝导致数据获取失败

对于不方便设置权限的日志文件,可以使zabbix_agent采用root权限运行

在zabbix_agentd.conf文件中设置AllowRoot参数设置为1

AllowRoot=1

4、日志监控的数据库记录

日志数据存储在history_log表中

查询日志

mysql>select * from history_log;

原题:Zabbix监控日志
如有任何问题,可点击文末 阅读原文 ,到社区原文下评论交流
觉得本文有用,请转发、点赞或点击“在看”,让更多同行看到


 资料/文章推荐:



http://www.talkwithtrend.com/Topic/3937


下载 twt 社区客户端 APP

如何用好 Zabbix 的日志监控功能?

或到应用商店搜索“twt”