網站訪問狀態和超時時間監控報警設置

 

因爲公司業務比較多,部署的站點也比較多。爲了網站安全運行,以防故障發生時能第一時間知曉,特地編寫下面監控腳本,對網站訪問狀態和超時時間進行監控:當code狀態爲5xx或者訪問超時時間大於10s時進行報警。腳本腳本以下:python

[root@qd-inf-logcollector01 web_monit]$ pwd
/app/script/web_monit

[root@qd-inf-logcollector01 web_monit]$ ll
total 12
-rwxr-xr-x 1 root root 870 Oct 12 21:34 http_monit.sh      //監控腳本
-rwxr-xr-x 1 root root 857 Oct 12 21:25 sms.py             //短信報警腳本,裏面有報警聯繫人             
-rw-r--r-- 1 root root 377 Oct 12 21:27 weblist.txt        //監控的網站域名列表

[root@qd-inf-logcollector01 web_monit]$ cat http_monit.sh 
#!/bin/sh
weblist=/app/script/web_monit/weblist.txt                       
for list in `cat $weblist|grep -E -v "#|^$"`                
do
httpcode=`curl -o /dev/null -s -w %{http_code} "$list"`         
httptime=`curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "$list"|grep time_total|awk -F ":" '{print $2*1000}'`
if [ $httpcode = 500 ]||[ $httpcode = 502 ]||[ $httpcode = 503 ]||[ $httpcode = 504 ]
then
   python /app/script/web_monit/sms.py $list "$list 訪問有誤!狀態碼爲$httpcode!請收到報警後儘快查看並處理!"
else
   echo "$list is checked ok!"
fi

if [ $httptime -ge 10000 ] 
then
   python /app/script/web_monit/sms.py $list " $list訪問超時!超時時間爲$httptime毫秒!請收到報警後儘快查看並處理!"
else
  echo "$list is connect ok!"
fi
done

手動檢查網站訪問的code狀態碼git

[root@qd-inf-logcollector01 web_monit]$ curl -o /dev/null -s -w %{http_code} http://www.wang.com
200

手動檢查網站訪問的超時時間(單位:毫秒,以下網址訪問的時間爲0.8秒)web

[root@qd-inf-logcollector01 web_monit]$ curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" http://www.wang.com |grep time_total|awk -F ":" '{print $2*1000}'
800

網站列表和腳本執行安全

[root@qd-inf-logcollector01 web_monit]$cat weblist.txt 
http://nop.kevin.cn
http://ap.kevin.cn
http://ope.kevin.cn
http://opr.kevin.cn
http://www.kevin.cn 
http://kevin.cn 
http://tb.kevin.cn
http://www.wang.com
https://www.wang.com

http://doc.kevin.cn
http://docs.kevin.cn
http://git.wang.com
http://monitor.kevin.cn
http://dash.kevin.cn

[root@qd-inf-logcollector01 web_monit]$sh http_monit.sh 
http://nop.kevin.cn is checked ok!
http://nop.kevin.cn is connect ok!
http://ap.kevin.cn is checked ok!
http://ap.kevin.cn is connect ok!
http://ope.kevin.cn is checked ok!
http://ope.kevin.cn is connect ok!
http://opr.kevin.cn is checked ok!
http://opr.kevin.cn is connect ok!
http://www.kevin.cn is checked ok!
http://www.kevin.cn is connect ok!
http://kevin.cn is checked ok!
http://kevin.cn is connect ok!
http://tb.kevin.cn is checked ok!
http://tb.kevin.cn is connect ok!
http://www.wang.com is checked ok!
http://www.wang.com is connect ok!
https://www.wang.com is checked ok!
https://www.wang.com is connect ok!
http://doc.kevin.cn is checked ok!
http://doc.kevin.cn is connect ok!
http://docs.kevin.cn is checked ok!
http://docs.kevin.cn is connect ok!
http://git.wang.com is checked ok!
http://git.wang.com is connect ok!
http://monitor.kevin.cn is checked ok!
http://monitor.kevin.cn is connect ok!
http://dash.kevin.cn is checked ok!
http://dash.kevin.cn is connect ok!

定時監控任務(每兩分鐘監控一次)bash

[root@qd-inf-logcollector01 web_monit]$ crontab -l
*/2 * * * * /bin/bash -x /app/script/web_monit/http_monit.sh  > /dev/null 2>&1

簡單注意下:比較運算符只有==和!=是用於字符串比較的,不可用於整數比較;整數比較只能使用-eq, -gt這種形式app

相關文章
相關標籤/搜索