• http接口监控脚本


    环境:centos7

    效果:监控所有接口,连续失败两次,发送信息给运维人员

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

    [root@SmartCommunity-Node01 ezc-check]# ls
    check.sh  est-fail-time.sh  http-check.sh  interface.txt  sed-mail.sh
    [root@SmartCommunity-Node01 ezc-check]# tail interface.txt 
    /ctv/jzgjyxwx/taswk/sync 居住轨迹应销未销任务表数据同步
    /ctv/relTaskBauck/push   涉诈预警劝阻数据推送
    [root@SmartCommunity-Node01 ezc-check]# for i in `ls |grep -v interface.txt`;do echo $i && cat $i;done
    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
    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
    http-check.sh
    #!/bin/bash
    dir=$(cd $(dirname $0);pwd)
    dct(){
     http_status=$(curl -m 5 -s -w %{http_code} https://ym.popin.com/ezcvsiprod$1 -o /dev/null)
        #状态码等于000,-o(或者)状态嘛大于500
     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
    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 "ezc所有接口https://ym.popin.com/ezcvsiprod结果" $element
          done
          
    #定时任务配置
    [root@SmartCommunity-Node01 ezc-check]# crontab -l
    */5 7-22 * * * /wj/ezc-check/check.sh  #每天7点到22点每相隔5分钟测试一次 
    

      

      

    做一个决定,并不难,难的是付诸行动,并且坚持到底。
  • 相关阅读:
    redis之 Redis常用数据类型
    mysql5.6之 传输表空间迁移表或恢复误删除的表
    mysql之 double write 浅析
    网络防火墙实战-基于pfsense(1)
    信息战(四)——战场演练(线段树,树状数组)
    dojo(四):ajax请求
    网络防火墙实战-基于pfsense(2)
    [置顶] 最小生成树Prim算法
    (DP6.1.2.1)UVA 147 Dollars(子集和问题)
    Redis的Time Event与File Event的微妙关系
  • 原文地址:https://www.cnblogs.com/wukc/p/14743127.html
Copyright © 2020-2023  润新知