一、简介
日志中能透露的信息很多,从日志中,可以知道程序的运行状态,可以知道系统是否正常等,但是对于日志的监控却很让人头疼,要是能监控日志的变化情况,就可以及时的知道系统发生了什么,从而做出相应的对策。对于日志监控,Zabbix 可以用来监控和分析日志文件,当日志文件包含某些字符串时,可以进行抓取并触发告警,也支持配置了日志轮转的日志文件。
二、日志功能
zabbix-agent支持日志文件的监控,可以对日志文件关键字进行监控,然后告警,日志监控支持普通的日志文件,支持日志轮询,切割的文件。当日志文件中出现特殊的字符串(告警,报错的字符串)可以发通知给客户
日志监控必须满足以下条件:
zabbix-agent必须运行,且工作方式必须是主动模式
日志的Item必须设置,必须指定文件名
zabbix-agent有读取日志的权限
创建日志类型监控项与触发器
创建监控主机并关联模板
三、日志监控配置
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] |
例:
key值说明:
例: log["/var/log/message" , "error" ,,,skip,,]
logrt["/app1/logs/^logfile[0-9]{1,3}$" ,,,100]
log.count["/var/log/message"
logrt.count["/app1/logs/^logfile[0-9]{1,3}$" , "error" ,,100,skip]
四、如果zabbix用户对日志没有读取权限,则会提示权限拒绝导致数据获取失败
对于不方便设置权限的日志文件,可以使zabbix_agent采用root权限运行
在zabbix_agentd.conf文件中设置AllowRoot参数设置为1
AllowRoot=1
五、日志监控需注意事项
1、logrt 正则表达式只支持文件名并不支持目录正则表达式匹配
2、在 UNIX 平台上如果日志文件目录不存在那么 logrt []监控项会变成NOTSUPPORTED
3、在 Windows 上如果目录不存在则该监控项不会变为NOTSUPPORTED
4、logrt[]监控项没有匹配到日志文件,读取 logrt []项的日志文件错误会作为警告记录到Zabbix代理日志文件中,但该监控项不会变成 NOTSUPPORTED
5、在Zabbix 5.0.2版本之后log和logrt监控项中mtime的属性被忽略
6、参数Maxproclines最好在Agent中设置能够节省网络带宽降低server压力
7、只采集有用的日志内容
博客可能不能及时回复问题,技术问题欢迎加入交流。
具有丰富的模板资源及模板开发能力、项目落地管理经验分享欢迎加入交流
微信号:king_songax