Java 常见异常报警脚本

Java 常见异常报警脚本

1.首先确定需要监控的java应用的日志目录

2.考虑需要报警间隔多久

3.常见报错(ArithmeticExecption,NullPointerException,ClassCastException,

NegativeArrayException,ArrayIndexOutOfBoundsException,

SecturityException,EOFException,FileNotFoundException,

NumberFormatException,SQLException,IOException,NoSuchMethodException,

SocketTimeoutException)

4.进行钉钉报警

todo :自动识别服务,识别IP,支持多个应用

具体代码如下:

#!/bin/bash

#日志路径
server1='/xxx/xx.log'

#当前时间前一分钟,精确到分
curdate=`date -d "11 minute ago" +"%Y-%m-%d %H:%M"`
curdate_1=`date -d "1 minute ago"  +"%Y-%m-%d %H:%M"`

#获取server要截取日期日志的开始和结束行号
start_line=`cat -n $server1 | grep "${curdate}" | head -1 | cut -f1`
end_line=`cat -n $server1 | grep "${curdate_1}" | tail -1 | cut -f1`

#获取server要截取日期日志的开始和结束行号

sed -n "${start_line},${end_line}p" $server1 > /opt/log_err/xxx.log

#清空错误日志文件
> /opt/log_err/xxx_err.txt

#将报错信息写入文件
err_list=(ArithmeticExecption NullPointerException ClassCastException NegativeArrayException ArrayIndexOutOfBoundsException SecturityException EOFException FileNotFoundException NumberFormatException SQLException IOException NoSuchMethodException SocketTimeoutException)

for i in ${err_list[*]}; do
cat /opt/log_err/xxx.log | grep -C 20  ERROR | grep -v INFO | grep -C 1 ${i} >> /opt/log_err/unify-basic_err.txt

done

alarm(){
atMobiles=
keyword="告警"
dintalkurl="https://oapi.dingtalk.com/robot/send?access_token=xxxxx"
curl ${dintalkurl} \
 -H "Content-Type: application/json" \
   -d '{"msgtype": "markdown",
        "markdown": {
	     "title": "java出现异常",
             "text": "'"${larm_msg}"'"
        },"at": {
                "atMobiles": ['${atMobiles}']
        }
      }'
}
all_num=0
if [ -s /opt/log_err/unify-basic_err.txt ]; then
for e in ${err_list[*]}; do
num=`cat /opt/log_err/unify-basic_err.txt | grep ${e} |wc -l`
all_num=$(expr $all_num + $num)
done
msg1=`cat /opt/log_err/unify-basic_err.txt | grep -C 2 ERROR | tail -3`
larm_msg="#### 收到告警@${curdate_1} \n - **告警主机:** xxxx \n - **IP地址:** xxxx \n - **告警信息:** java Exception \n - **告警时间:** ${curdate_1} \n - **告警项目:** unify-basic \n - **详细信息:** $msg1"
alarm
fi


标题:Java 常见异常报警脚本
作者:LeeOcean
地址:https://www.leiocean.com/articles/2024/03/12/1710232917374.html

    评论
    0 评论
avatar

取消