运维监控脚本(http网站监控)

系列文章目录


前言

该脚本为linux的shell脚本,作用是通过网站状态码判断网站是否存活,出现两次健康检查失败就发送邮件通知管理人员。


一、脚本创建思路

思路:执行check.sh—读取interface接口内容—调用http-check脚本判断接口是否成功,失败写入文件fail.txt中—est-faile-time脚本判断失败的次数,两次及以上检测都失败——调用脚本sed-mail发送信息给相关人员。
效果:监控所有接口,连续失败两次,发送信息给运维人员

二、使用步骤

1.使用方式

在linux服务期上创建一个目录,创建下面的文件:

[root@SmartCommunity-Node01 ezc-check]# ls
check.sh  est-fail-time.sh  http-check.sh  interface.txt  sed-mail.sh

2.将对应脚本拷入对应文件

代码如下:

[root@SmartCommunity-Node01 ezc-check]# cat interface.txt
#需要监控的网站都可用直接列入下发
http://192.168.10.100:8080 tomcat服务
http://www.baidu.com   百度服务
[root@SmartCommunity-Node01 ezc-check]# cat check.sh
#!/bin/bash
dir=$(cd $(dirname $0);pwd)
rm -rvf $dir/fail.txt
cat $dir/interface.txt|while read -r line
   do
     #注意赋值不要有空格
     jk=`echo $line|awk '{print $1}'`
     name=`echo $line|awk '{print $2}'`
     
     sh $dir/http-check.sh $jk $name
 
  done
#sh $dir/sed-mail.sh
#根据结果判断是否要发送短信,一次失败不发送信息,两次及以上才发送
if [ -f "$dir/fail.txt" ];then
   sh $dir/est-fail-time.sh 1
   else
   sh $dir/est-fail-time.sh 0
fi
[root@SmartCommunity-Node01 ezc-check]# cat est-fail-time.sh
#!/bin/bash
#当前目录路径
dir=$(cd $(dirname $0);pwd)
#1表示失败0表示成功
if [ $1 -eq 1 ]
  then
    #失败一次记录一条
    echo 1 >> $dir/result.txt
    #计数
    c=$(cat $dir/result.txt|wc -l)
   #大等于2次失败 发送
    if [ $c -ge 2 ]
        then
          #发送信息
          echo sed-meil
          sh $dir/sed-mail.sh
         else
           #失败一次
            echo faile-one
    fi
   else
     rm -rvf $dir/result.txt
    echo server-ok
fi
[root@SmartCommunity-Node01 ezc-check]# cat http-check.sh
#!/bin/bash
dir=$(cd $(dirname $0);pwd)
dct(){
 http_status=$(curl -m 5 -s -w %{http_code} $1 -o /dev/null)
    #状态码等于000-o(或者)状态码大于500 如果有其他的状态码 可用自己加例如:-o $http_status -eq 403
 if [ $http_status -eq 409 -o $http_status -eq 200 -o $http_status -eq 401 -o $http_status -eq 000 ]
   then
     echo $2 server is $http_status成功
   else
     echo $2:$1 is $http_status失败 >> $dir/fail.txt
  fi
 
 }
 
dct $1 $2
[root@SmartCommunity-Node01 ezc-check]# cat sed-mail.sh
#!/bin/bash
dir=$(cd $(dirname $0);pwd)
a_name=("zhangs@qq.com" "lisi@qq.com" )
     for element in ${a_name[@]}
      do
        cat $dir/fail.txt|grep '失败'|mail -v -s "服务检测结果" $element
      done

3.赋予文件可执行权限,配置定时任务即可

注意:第一个文件修改为自己的接口,最后一个文件修改为自己邮箱

#赋予权限
[root@SmartCommunity-Node01 ezc-check]# chmod u+x *
#定时任务配置
[root@SmartCommunity-Node01 ezc-check]# crontab -l
*/5 7-22 * * * /wj/ezc-check/check.sh  #每天7点到22点每相隔5分钟测试一次


完结

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值