网站url监控脚本(告警)

描述:

在日常的工作中,可能会需要同时对数百个甚至更多的url进行监控,通过浏览器访问的话,太过繁琐且效率低下,因此,针对这种场景,在公司没有监控系统的情况下,可以使用下面的脚本,通过url的返回值,对系统情况进行最直接的初步判断及检查,有兴趣的可以进行扩展。

功能:

通过对url的返回值进行判断,并产生告警邮件;

附:

邮箱的配置及定时任务的设置方式这里省略,大家可以去网上查找方法;

直接上脚本:

 #!/bin/bash
 export scrip_path='/home/xuguanping/mydocument/service_monitor'
 mail1=xxx@163.com
    
function init() {
cd $scrip_path
#if test -s erro.log;
#        then
#                echo '' >erro.log
#                date '+%F %T' >>erro.log
#                echo '系统服务情况监控' >>erro.log
#        else
#                touch erro.log
#                echo '' >erro.log
#                date '+%F %T' >>erro.log
#                echo '系统服务情况监控' >>erro.log
#        fi

if test -s normal.log;
        then
                echo '' >normal.log
                date '+%F %T' >>normal.log
                echo '系统服务情况监控' >>normal.log
        else
                touch normal.log
                echo '' >normal.log
                date '+%F %T' >>normal.log
                echo '系统服务情况监控' >>normal.log
        fi

}

function end() {
mv erro.log logs/erro/`date +%F-%T`.log
mv normal.log logs/normal/`date +%F-%T`.log
}

function service_monitor() {
for i in `cat path_list`
	do 
	school=`echo $i|awk -F '~' '{print $1}'`
	path=`echo $i|awk -F '~' '{print $2}'`
	contacts=`echo $i|awk -F '~' '{print $3}'`
	contact_information=`echo $i|awk -F '~' '{print $4}'`
	
	curl --connect-timeout 10 -m 20 -k $path >/dev/null 2>&1
	erro_value=$?
	case $erro_value in 
	0)
		echo  -e `date +%Y-%m-%d-%T`\\t "$school:服务正常!"
		echo  -e `date +%Y-%m-%d-%T`\\t "$school:服务正常!" >>normal.log
	;;

	6)
		echo -e `date +%Y-%m-%d-%T`\\t"警告:请检查:$school:timed out,错误值:$erro_value"
                echo -e `date +%Y-%m-%d-%T`\\t"警告:$school:服务异常\n错误信息:timed out,错误值:$erro_value;\n请联系:$contacts 联系方式:$contact_information 进行处理!\n" >>erro.log
	;;

	7)
		echo -e `date +%Y-%m-%d-%T`\\t"警告:$school:Network is unreachable,错误值:$erro_value"
                echo -e `date +%Y-%m-%d-%T`\\t"警告:$school:服务异常\n错误信息:Network is unreachable,错误值:$erro_value;\n请联系:$contacts 联系方式:$contact_information 进行处理!\n" >>erro.log
	;;

        28)
                echo -e `date +%Y-%m-%d-%T`\\t"警告:$school: a timeout was reached,错误值:$erro_value"
                echo -e `date +%Y-%m-%d-%T`\\t"警告:$school:服务异常\n错误信息:a timeout was reached,错误值:$erro_value;\n请联系:$contacts 联系方式:$contact_information 进行处理!\n" >>erro.log
        ;; 

	*)
		echo -e `date +%Y-%m-%d-%T`\\t"警告:请检查:$school,错误值:$erro_value"
                echo -e `date +%Y-%m-%d-%T`\\t"警告:$school:服务异常\n错误信息:其他,错误值:$erro_value;\n请联系:$contacts 联系方式:$contact_information 进行处理!\n" >>erro.log
	esac
	done
}

function sendmail_alarm() {
if test -s erro.log; 
	then 
		echo -e "begin send alarm email !"
		mail -s "系统服务监控告警(`date '+%F %T'`)" $mail1 < erro.log
	else 
		echo -e "all service is nomal"	
	fi
}

init
service_monitor
sendmail_alarm
end

补充:

需要创建一个名字未:path_list的文件,然后以以下格式把所有需要测试的url都写进去:
xxxxurlxxxx

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值