网站访问状态和超时时间监控报警设置

简介:

由于公司业务比较多,部署的站点也比较多。为了网站安全运行,以防故障发生时能第一时间知晓,特意编写下面监控脚本,对网站访问状态和超时时间进行监控:当code状态为5xx或者访问超时时间大于10s时进行报警。脚本脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[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状态码

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

手动检查网站访问的超时时间(单位:毫秒,如下网址访问的时间为0.8秒)

1
2
[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

网站列表和脚本执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
[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!

定时监控任务(每两分钟监控一次)

1
2
[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这种形式

***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************

本文转自散尽浮华博客园博客,原文链接:http://www.cnblogs.com/kevingrace/p/7658394.html,如需转载请自行联系原作者
相关文章
|
10月前
|
网络协议 Shell Perl
根据web访问日志,封禁请求量异常的IP,如IP在半小时后恢复正常,则解除封禁
根据web访问日志,封禁请求量异常的IP,如IP在半小时后恢复正常,则解除封禁
69 1
|
11月前
|
监控 小程序 API
叮咚抢菜-派送时段监听及推送工具🔧
叮咚抢菜-派送时段监听及推送工具🔧
97 0
|
11月前
|
存储 SQL 数据库
超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
206 0
|
12月前
|
数据采集 监控 Linux
一日一技:不用轮询,基于事件监控文件变动
一日一技:不用轮询,基于事件监控文件变动
85 0
如何设置agent上报频率监控间隔时间 - WGCLOUD
在agent/config/application.properties中设置即可
如何设置agent上报频率监控间隔时间 - WGCLOUD
|
存储 JSON 数据格式
报警系统QuickAlarm之报警规则的设定与加载
既然命名为规则,那么就需要有对应的解析器,以根据报警规则和报警类型等相关输入条件,来选择对应的报警执行器,因此本文主要包括的内容就比较清晰了 1.报警规则的定义 2.报警规则的加载 3.报警规则的解析以及报警执行器选择
216 0
报警系统QuickAlarm之报警规则的设定与加载
|
监控 数据库
zabbix告警持续频繁发送历史消息解决方法
zabbix持续频繁的发送历史的告警消息,一晚上告警内容高达1.7w条,严重影响查看真正出现问题的告警信息。 产生此问题的原因: 告警消息积压堆积,一直处于重试状态。 触发器的确存在,但是目标监控主机的状态是正常的,只要触发器触发的问题存在,那么就会一直发生告警。
972 0
|
负载均衡 搜索推荐 Java
定时检测服务状态脚本实现
1、定时监测服务状态需求
204 0
|
存储 消息中间件 SQL
一种低延迟的超时中心实现方式
在很多产品中都存在生命周期相关的设计,时间节点到了之后需要做对应的事情。超时中心(TimeOutCenter,TOC)负责存储和调度生命周期节点上面的超时任务,当超时任务设置的超时时间到期后,超时中心需要立即调度处理这些超时任务。对于一些需要低延迟的超时场景,超时中心调度延迟会给产品带来不可估量的影响。
一种低延迟的超时中心实现方式
|
SQL 运维 监控
监控异常操作频率并报警
当企业上云后,监控云资源的异常操作就是一件非常重要的事情。如何监控这些异常操作呢?答案就是操作审计。接下来就以一些实际场景为例,介绍如何基于操作审计,监控云上异常操作或操作频率,进行报警。
监控异常操作频率并报警