监控脚本-通过日志内容监控服务是否异常重启(Shell)

背景:

公司某微服务异常崩溃后其守护进程会将其拉起,此时日志内容中会有记录Load()字段。

当出现崩溃重启后,可能进程监视器轮询时间不一定能够覆盖到,特可以是用日志监控的方式。

而日志监控的方式若不进行过滤筛选,则可能消耗大量系统资源。

所以写一个脚本,主要逻辑是:

find查找程序所在路径的logs目录,对修改时间为一小时内的日志文件进行操作,操作是查询倒数1000行日志内容中是否包含Load()字段,并对结果进行统计,如果不为0则代表为有发生服务重启。

但是大家可能发现,怎么还有一个B5的过滤,-B5的含义是过滤到Load()后再显示前五行内容。此处的设计意义是前五行内容当中会有时间字段,可以与之匹配,从而减少误报。

因为可能1000行中会有前几天的日志内容也说不定呢。通过-B5与当前脚本执行的小时进行匹配,可以大大减少误报可能。

脚本:

TimeDate="$(date +%Y-%m-%d) $(date +%H)"  
N=$(find /home/jemma/log/ -mmin -60 -type f -name '*.log' |xargs tail -n 1000 |grep -B5 "Load()" |grep "$TimeDate"|wc -l)
echo $N

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值