监控日志:大家可以监控系统日志、nginx、Apache、业务日志。想用好用对,不是辣么容易。zabbix最主要的是监控日志文件中有没有某个字符串的表达式,支持日志文件正则和关键字正则,其是把日志文件中符合关键字的日志过滤出来入库,不包含的日志不采集,且只支持主动模式。
1、 zabbix日志监控表达式描述
1 log[/var/log/syslog,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>]
2 logtr[/var/log/.*.log,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>]
1. file - 日志文件完整路径和名称
2. regexp - 描述所需模式的正则表达式,要匹配内容的正则表达式,或者直接写你要检索的内容也可以。譬如一个ERROR 二个 ERROR|FALSE,当然你也可以不写,就采集了所有的日志了
3. encoding - 编码相关,linux建议用UTF-8,WIN建议用ANSI,具体情况具体分析
4. maxlines - 一次性最多提交多少行,这个参数覆盖配置文件zabbxi_agentd.conf中的’MaxLinesPerSecond’,默认留空
5. mode - 默认是all,也可以是skip,skip会跳过老数据,这个最好是skip,不然会采集历史数据
6. output - 输出给zabbixserver的数据。可以是\1、\2一直\9,\1表示第一个正则表达式匹配出得内容,\2表示第二个正则表达式匹配错的内容。这个没怎么用
7. maxdelay - 最大延迟(秒)。 类型:float。 值:0-(默认)不忽略日志文件行; > 0.0-忽略旧行,以便在“maxdelay”秒内获取最近分析的行。使用前请阅读 maxdelay注释!
zabbix官网:支持的监控项key
log支持日志切割,只监控当前文件夹日志
logrt支持文件正则,支持多个日志文件采集,不管新旧文件,只要他们有变更,zabbix都会监控。
注意,一定要保证Zabbix用户对日志文件有可读权限,正则表达式正确度,否则这个Item的状态会变“unsupported”表示不支持会报错的
1.在zabbixWEB页面上按照1.配置 > 2.主机 > 3.创建监控项来创建所需要的监控项。
2.按照所需顺序添加所需的监控项,在这里我监控的是Windows系统日志我选的是logrt来监控Windows日志。
3. 下面是我配置好的日志监控。
08:09:59.197 >> ALRM: OnCallEvent nChn=112 License Data is error!!! 报错信息
logrt["F:\Program Files (x86)\Tomisoft\QuarkCall 5.4\IVRSERVICE\msg\^IVR_[0-9]+.log$"日志文件位置,"([0-9]{2}:[0-9]{2}:[0-9]{2}).*ALRM.*OnCallEvent.nChn=([0-9]+).*"正则,,,skip,]
4.我这边触发器创建的是,有报错日志小于大于1就告警。
注意:windows日志如果日志内容有中文的话,你不配置好编码,你就等着乱码吧。具体跟前面差不多,怎样判断编码方式呢,这里有个小技巧,你用记事本打开日志内容,然后另存日志,就可以看到你的日志的编码方式了,不知道准不准,一般来说都是ANSI编码:
例子
logrt["c:\server.*.log","连接服务器失败",ANSI,,skip,]