Zabbix自定义监控java服务日志--Linux

一、场景需求
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=tail -n 5 $dir1 |grep "ERROR" #过滤error.log关键字段
info=tail -n 10 $dir2 |grep "ERROR" #过滤info.log关键字段
if [[ -n “$error” ]];then #如果上述结果返回的长度非0则返回为真,空则为假
echo 1 #为真输出1
sudo /bin/bash KaTeX parse error: Expected 'EOF', got '#' at position 30: …pt/addError.sh #̲为真则为出现了问题,进行追加非…info" ]];then #二次判断,若为假则判断info.log是否为真
echo 2 #为真则输出2 表示重启已完成
sudo /bin/bash $add/ZabbixScript/addInfo.sh #重启成功之后追加非start字段到info.log
else
echo 0 #两次判断都为假则输出0 白女士服务正常
fi
fi

  1. addError.sh
    #!/bin/bash
    dir="/data/service/logs/fuwu/error.log" #error.log绝对路径
    add=“Add_Zabbix_test” #追加字段
    for i in seq 5 #连续追加五次
    do
    echo $add >> $dir #追加字段到error.log
    done

  2. addInfo.sh
    #!/bin/bash
    dir="/data/service/logs/scheduled/info.log" #info.log绝对路径
    add=“Add_Zabbix_test” #追加字段
    for i in seq 10 #连续追加十次
    do
    echo $add >> $dir #追加字段到info.log
    Done

四、设置权限
相关服务器需添加zabbix用户sudo权限并设置免密
cd /etc/sudoers
设置允许sudo提权并免密

五、自定义监控项设置
1.配置文件内查看自定义key值是否开启
自定义key值的路径

2.cd /etc/zabbix/zabbix_agent.d/
3.创建.conf结尾的文件
vim userparameter_script.conf
定义Key值

4.重启zabbix_agent生效 systemctl restart zabbix-agent
六、Zabbix-web端
1.对应主机添加相关监控项
2.分别创建双触发器,触发器-1只当变大时为{主机名:OutOfMem.last(#1)}=1,触发器-2指定表达式为{主机名:OutOfMem.last(#1)}=2
3.分别创建触发器对应告警动作,动作-1设置发送告警信息到钉钉群并执行远程重启命令 docker start fuwu,动作-2设置发送告警信息到指定钉钉群并自定义告警动作,增加可读性。
4.添加新报警媒介(zabbix-server服务器指定位置编写新报警媒介脚本)并设置添加至用户报警媒介。

七、测试

  1. 通过命令向error日志追加告警字段,测试告警可用性
    echo “关键字段” >> error.log
    2.告警触发后,通过 tail -f error.log/info.log查看是否成功追加非error/非start字段并查看钉钉告警信息。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值