一、场景需求
1.及时了解服务不稳定性,实时查看服务性能;
2.实现自动化告警,自动化故障恢复;
3.远程命令执行结果通知
二、思路分析
1.开发人员开发的某服务因为种种因素会导致内存溢出等问题出现,因服务性质重启并不会影响业务,经讨论得出解决方案为出现问题立即重启服务解决。
2.因为公司没有24小时值守人员,故使用zabbix监控该服务,并利用zabbix远程命令的形式实现服务重启。
3.通过脚本查看该服务error日志的后五行并过滤关键字段,使用if判断过滤的内容为真或为假来输出不同值,然后交给zabbix处理告警。
4.因为error日志文件里只能报error信息,也就是故障恢复之后也没有新内容产生,因此通过tail -5 显然是有问题的,解决方案为:再报警发生后利用addError脚本向error日志追加内容非error字段。
5.如何判断服务是否重启成功?
因为服务重启后info.log里会有start相关的重启成功日志,通过与error同理的方式过滤info.log里的start字段(确保info.log里正常时不会出现start字段)。
三、脚本解析
1.zabbix.OutOfMen.sh
#!/bin/bash
add="/data/service/logs/fuwu" #java服务的路径
dir1=“KaTeX parse error: Expected 'EOF', got '#' at position 17: …dd/error.log" #̲该服务的error脚本路径 d…add/info.log” #该服务的info脚本路径
error=
Zabbix自定义监控java服务日志--Linux
最新推荐文章于 2024-06-13 09:51:16 发布