[产品]如何读懂D监控通知详情

好多同学在收到D监控宕机通知的邮件后,发现自己网站还能访问,并没有宕机,认为这是D监控的误报。

其实D监控的报警策略是很严谨的:每个网站都会被至少3个监测点监控,只有所有监测点都不能访问您的网站才会给予报警

 一、查看各监测点历史

如果您收到宕机报警,可以点击查看详情,里面的实时状态图表会显示各个监测点对您网站的访问历史,您可以看到你的网站从正常到宕机的全过程。

博客1

 

 

 

 

 

 

比如看上图,该网站有“深圳联通”,“上海电信”和“汕头移动”三个监测点,在13点10分之前每个监控点都能正常访问网站。

但在13:10的时候各监测点均不能访问该网站。

 二、查看各监测点宕机原因

然后结合各线路快照,可以得到各个监测点访问网站的失败的原因,如下:

博客2

 

 

 

 

 

像上面这个图,就是每个监测点在连接您的网站时都超时了,目前每个探测点的超时时间是15秒,是一个很长的数字,如果你的网站15秒都没打开,那肯定算是无法访问了。

 

对于一些常见宕机原因,我们整理了一个列表,主要分两大类:

1.服务器错误:是您的网站的应用本身,HTTP服务器,反向代理,CDN等出现的问题,这些原因引起的宕机报警肯定不是误报,都是您的服务器返回的错误。

错误原因 错误解释 建议解决途径
500 Internal Server Error(服务器内部错误) 一般是您网站代码引起的问题,比如数据库访问出错,网站依赖的服务崩溃等引起的。 需要查看网站运行日志进一步排查问题,对于500错误应该在日志里记录详细的错误上下文,如请求参数等。
502 Bad Gateway(网关错误) 如果您使用了nginx,apache等软件架设服务器,当你后端的cgi worker失去响应时就会报502错误。 需要去服务器上检查相关的cgi进程是否正常,服务器是否负载过高来进一步排查问题。参考文章: 在服务器上排除问题的头五分钟
503 Service Unavailable(服务不可用) 一般是请求太多引起的,比如短时间内你的网站被很多人访问. 需要根据http访问日志,第三方统计系统如腾讯分析等确认你的网站是否不是访问量上升,做好后续扩容和性能优化的工作。
504 Gateway Timeout(网关超时) 和502错误类似,但比较少见,一般是一些专门的网关或代理(如CDN,运营商wap网关等)才会返回这个错误。 如果网关和代理是第三方服务,需要联系对方和您一起排查超时是如何造成的。当然您可以先对自己的网站进行自查。

2.网络问题:是由于您网站所在机房的网络,运营商网络,以及监测点所在机房的网络出现的问题。

因为监测点至少有三个,且分布在不同运营商不同的机房,所有监测点同时都出现网络问题的几率很小,误报的几率其实也极小。

错误原因 错误解释
Connection timed out(连接超时) TCP三步握手没有成功,监测点连续发送多次syc,但您的服务器没有回复ack。
Connection reset by peer (连接被重置) TCP连接建立成功后,您的服务器马上把连接重置了。
Connection refused(连接被拒绝) 您的服务器正常启动,但网站的端口没有打开,就会出现这个错误。

这些网络问题的定位和排查一般比较困难,建议从以下几步入手:

1、  首先确认你的网站应用,HTTP服务器运行正常,服务器负载不高,网络流量没有异常上升和异常下降。

2、  如果您的网站所在机房有网络防火墙,则有可能会屏蔽掉监测点的HTTP请求,如果可以,在您的防火墙上把监测点IP加入到防火墙的白名单。监测点的IP列表:https://support.dnspod.cn/Kb/showarticle/tsid/16

3、  如果您的服务器在国外VPS,国内的云主机上,出现网络问题的几率比较大,因为这些服务器上本身会有好多网站,而且有专业的网络防护设备。

4、  如果您确认网站本身以及机房的网络都没有问题,而监测点访问时出现网络错误,那就是运营商网络和骨干网的问题了,你可以结合tracert等命令来定位问题。

5、  如果您还有疑问,可以给我们提交工单,我们帮您深入分析该问题。

 三、结合第三方监控测试服务来诊断网站

您可以在D监控发送给您宕机通知时通过17ce阿里测等第三方服务来诊断您的网站,

因为D监控是直接针对您的服务器IP进行HTTP请求,不进行域名解析,所以在诊断时你要填入您宕机的IP,然后在HOST里写上宕机的子域名,

如果提示您 http://www.baidu.com(61.135.169.125) 宕机了,那么17ce的设置如下。

博客3

阿里测的设置如下:

博客4

 

 

 

 

 

 

 

 

 

 

 

您可以用curl命令在本机上测试,命令如下,设置了连接超时和读取超时的参数

curl -v –connect-timeout 10 –max-time 10 61.135.169.125 -H “Host:www.baidu.com”

 四、经常提示短暂宕机怎么办?

如果您的网站的历史图表类似下面这样,一会儿宕机,一会儿正常,非常的不稳定

博客5

可以把你的监控设置为“短暂宕机不通知”,这样设置后如果我们发现你的网站只宕机了1分钟就不会给您报警了。

(以后这里可能会允许设置一个时间段,比如你可以设置宕机10分钟后再通知你,这样就可以少很多报警骚扰了)

博客6

我们会不断的改进D监控服务,为您的网站保驾护航。