运维日常

邮件报警版本HTTP状态监控脚本

2020-02-04  本文已影响0人  大白菜的猪猪

编程需求:

在实际的生产环境中,业务可能会发生短暂的健康抖动,从而造成服务处于不可用的状态,但实际上服务是没有问题且正常运行的。抖动的原因有很多种,比如说网络的问题、运营商问题、访问量的问题、计算机硬件等问题,所以可以对服务进行多次检测,假设三次检测结果都不正常,则认定为服务器故障。使用循环语句可以实现对特定的服务器页面进行多次检测,并设置一个统计失败次数的计数器,当失败次数大于3次则触发脚本报警,否则仅通过记录日志的形式纪录状态。


检测脚本:

#! /bin/bash

#功能描述:使用curl访问具体的HTTP页面,检测HTTP状态码

#连续3次都失败则发送邮件报警

#curl选项说明

#-m 设置超时时间

#-s 设置静默时间

#-o 下载数据另存为

#-w 返回附加信息,HTTP状态码

url=服务器index.html文件路径

date=$(date +"%Y-%m-%d  %H:%M:%S")

mail_to="root@localhost"

mail_subject="http_warning"

fail_times=0

for i in 1 2 3

do

status_code=$(curl -m 3 -s -o /dev/null -w %{http_code} $url)

#使用<<-重定向可以忽略Tab键缩进的内容,代码可读性更好

if [ $status_code -ne 200 ];then

let fail_times++

fi

sleep 1

done

if [ $fail_times -eq 3 ];then

mail -s $mail_subject $mail_to <<- EOF

检测时间为:$date

$url 页面异常,服务器返回状态码为:${status_code}

请尽快排查

EOF

else

cat >> /var/log/http_check.log <<- EOF

$date "$url 页面访问正常"

EOF

fi

上一篇 下一篇

猜你喜欢

热点阅读