WEB站点服务运行状态告警脚本

目的:

        此脚本是用来定时监控一个应用或者站点是否正常,如果定时监控到站点服务访问返回码不是200则认为是站点有可能发生异常,并通过企业微信机器人发送告警通知。

  • 企微告警通知的模板内容可以根据自己的情况灵活更改。
  • 可以自行修改定时脚本定时执行时间
  • 使用脚本前需要将 webhook_key 替换成您自己的企微的key
  • 脚本默认3s检查一次,连续3次检查站点返回码不是 200 就发送告警通知
  • 将 app_url 替换成您自己的站点地址
  • curl 超时时间是10秒
#!/bin/bash
# crontab 定时
# */15 * * * * /bin/bash check_app.sh >>  /dev/null
# date 2023-06-7 
# @土豆

app_url="http://localhost:8080"
webhook_key="替换成你企业微信的key"

# 企业微信告警
function send_wechat() {

 # 请替换成你自定的企业微信机器人
 #webhook_key="替换成你企业微信的key"

# 告警通知模板
message=$(cat << EOF
应用服务异常
异常访问地址: $app_url
主机名称: $(hostname -s)
IP地址: $(hostname -I)
请检查应用是否正常!!
EOF
)

 # 发送post请求
 curl "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=$webhook_key" \
     -H 'Content-Type: application/json' \
     -d "{\"msgtype\": \"text\",\"text\": {\"content\": \"$message\"}}"

 sleep 3s
 exit  # 完成发送通知,退出程序

}


# 检查应用状态,返回状态码不是 200 认为服务异常
function check_app(){

 #app_url="http://localhost:8080"
 
 local count=0
 local response=200
 
 # 每隔 3s 检查一次;连续3次检查失败,则发送告警通知
 for ((i=0;i<=3;i++));do
   response=$(curl --write-out %{http_code} --silent --max-time 10 --output  /dev/null $app_url)
   if [ "$response" -ne "200" ]; then
     let  count=$count+1
   fi
   sleep 3s
 done
 
 if [ $count -ge 3 ]; then
     send_wechat
   else 
    echo "站点服务正常"
 fi
}

check_app

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值