zabbix4.0 应用日志关键字报警

需求1

log 里面“[2021:03:22 14:4666:49]:发生错误数:0! ” ,截取关键字,如果不是0就报警

实现1

1 实现日志关键字报警

创建模板


image.png

创建应用集


image.png

创建监控项
image.png
log[/etc/zabbix/zabbix_agentd.log,"root",,,skip,,]

选择如图

image.png

各个指标含义请参考
https://www.zabbix.com/documentation/3.4/zh/manual/config/items/itemtypes/zabbix_agent#supported_item_keys
创建触发器
image.png

{test yejilog errors num check:log[/etc/zabbix/zabbix_agentd.log,"root",,,skip,,].iregexp()}=1

将模板添加到机器中就可以报警
最新数据


image.png

2 做判断,大于0报警

修改监控项键值


image.png
log[/data/tools-yeji/logs/yeji.log,"发生错误数:([1-9]+)",,,skip,,]

"发生错误数:([1-9]+)" // 正则
skip表示忽略日志中之前的报警

将模板添加到机器中就可以报警

3 注意事项

1>agent为主动模式
2>监控的log日志的权限以及上层目录是否为755权限
chown zabbix.root /data/tools-yeji/logs/yeji.log

需求2

配置tomcat日志监控,有关键字“ERROR”会报警

实现2

1 配置主动模式
2 查看log文件zabbix是否有权限

使用添加zabbix权限
setfacl -m u:zabbix:r /usr/local/tomcat1/logs/catalina-daemon.out
查看zabbix是否有权限
sudo -u zabbix cat /usr/local/tomcat1/logs/catalina-daemon.out|more
getfacl /usr/local/tomcat1/logs/catalina-daemon.out

3 更新hostname,修改zabbix配置文件|zabbix web配置中hostname和主机hostname一致,如果不一致会出现下面无法识别主机名的情况,记得重启zabbix-agent

服务器:*UNKNOWN*发生: *UNKNOWN* tomcat1_log发生错误故障!
{
告警主机:*UNKNOWN*
告警地址:*UNKNOWN*
监控项目:*UNKNOWN*
监控取值:*UNKNOWN*
告警等级:Average
当前状态:PROBLEM
告警信息:*UNKNOWN* tomcat1_log发生错误
告警时间:2021.09.07 15:01:32
事件ID:131257
}

4 创建相应模板,最好一个日志创建一个模板


image.png

5 监控项配置


image.png
log[/usr/local/tomcat1/logs/err.log,"Exception",,,skip,,]

监控项选择log即可,刚开始选择logrt发现命名监控的是/usr/local/tomcat1/logs/error.log但是真正去监控的居然是/usr/local/tomcat1/logs/error.log-20210908这种轮转文件,后来更换log没有问题
6 触发器配置


image.png
{tomcat1 log error:log[/usr/local/tomcat1/logs/catalina-daemon.out,"Exception",,,skip,,].nodata(2m)}=0

nodata代表如果有Exception关键字就保健,如果2min之内没有这个关键字就恢复,只有一条就可以实现报警和恢复两个功能,当然你也可以更改2min这个时间
7 添加报警


image.png

8 问题:
配置setfacl可能会出现

setfacl -m u:zabbix:r manager.2020-11-11.log

setfacl: manager.2020-11-11.log: Operation not supported
是因为日志所在目录挂载点没有acl挂载

vim /etc/fstab
/dev/VolGroup/lv_svn /svn  ext4  defaults,acl  0 0

需要重新挂载目录
需要关注:
1 不是所有的关键字都会报出来,如果一个时间段有多个报错只会报一个,目前是2min,2min不会再报,下一个2min再报,虽然触发器不会被触发但是日志中会被记录,最新记录->历史记录
2 如果获取不到数据重启zabbix-agent
3 日志轮转的话不会有影响,不会因为日志轮转日志权限发生变化
4 目前报警发送只能实现发送关键字当条日志,想实现发送关键字上下文多少条,就合grep -C10这种,但是没找到方法???
5 当条error报错日志大的话发送的报警可能不完整??

参考:
https://cloud.tencent.com/developer/article/1860374
https://www.jianshu.com/p/e28c0f295404

你可能感兴趣的:(zabbix4.0 应用日志关键字报警)