用户视角的监控,再也不用凌晨起床处理线上告警了

昨天《要过年了,就别再背电脑回家》情怀了一把,没想到评论里的技术人们(特别是运维)竟如此感人。

上一篇介绍多维度立体化监控,提到系统需要监控的八个维度:

http接口监控

log关键字监控

操作系统,进程,端口

http状态码

服务存活性

接口处理时间

用户层面监控

RPC接口监控

一、为什么要进行用户视角的监控

什么是用户视角的监控?

把系统内部当作黑盒:

用户怎么访问系统,用户视角的监控就怎么访问系统

用户调用哪些接口,用户视角的监控就调用哪些接口

此类监控的粒度较粗,并不直接监控web-server,service,db,cache…

为什么要有用户视角的监控,非用户视角进行的监控有什么不足?

如上图所示,立体化监控的八大维度,除了用户视角的监控,另外七大维度,不管是机器监控,日志监控,接口监控,都是系统内部发起的,当系统外部与系统之间出现问题的时候,例如“某个省的光纤被挖断”或者“某条网络链路出现丢包”或者“某个地域供应商往页面里又插入小广告了”,是检测不出来的,只有站在用户视角的监控,才能检测出类似的问题。

凌晨三点,告警短信响了,到底要不要起床检查系统?

这个问题,是和技术人密切相关的问题。如何系统设计的合理,不管是任何一台nginx,tomcat,service,cache,db挂了,由于系统的高可用架构设计,理论上都不应该影响一线用户的访问。

于是乎,只要用户视角的监控不告警,是可以第二天再起床处理其他监控的告警的。

画外音:这帮不靠谱的架构师,每次都说能高可用,任何一个地方挂了,用户就受影响了。

如何进行用户视角的监控?

主要有三类方法:

用户所在的地方,租机房布点监控

端(APP/browser)上布点监控

使用第三方监控平台

二、租机房布点监控

如上图所示,在用户所在城市租赁机房(只需要一台服务器),部署监控小程序,对系统进行外网访问监控,就能够检测网络链路,路由延时。

缺点:额,各个城市租赁一台服务器,成本有点高(不止费用,管理成本也高)。

三、端上布点监控

如上图所示,假设用户使用的是APP产品,可以在APP上部署一个小的监控sdk,定期上报一些数据,根据地域IP访问的同比环比“趋势”判定某个地域用户的网络情况。

缺点:会损耗用户一些流量。另外,既然是“趋势判定”,没有在自己机房内布点那么精确。

四、第三方监控平台

既然是每个公司都有的痛点,实施起来又这么麻烦,自然有创业公司做这个事情。

可以购买第三方监控平台的服务,在配置后台配置

待监控的页面,或者http接口

频率,阈值

告警接收人

等信息,就能够快速实时全国各城市,甚至全世界各个国家的用户视角监控了,非常帅气。

第三方监控平台是怎么实现全国,全世界布点监控的?

额,他们租了机房。

缺点:有点贵,是按照调用次数来收费的。

五、总结

用户视角监控,把系统当作黑盒的一种粗粒度监控。

用户视角监控,能检测出局部地域的用户访问异常。

用户视角监控,有自主租赁机房布点,端上布点趋势检测,使用第三方服务三种方式。

调研

某个省的网络断了,你们能监控到么?

你遇到过,网络供应商往你们站点插小广告么?

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180209B10DPJ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券