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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户视角的监控,再也不用凌晨起床处理线上告警了相关的知识,希望对你有一定的参考价值。

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

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

  1. http接口监控
  2. log关键字监控
  3. 操作系统,进程,端口
  4. http状态码
  5. 服务存活性
  6. 接口处理时间
  7. 用户层面监控
  8. RPC接口监控

其中1和2两项《通用+可扩展http监控平台/框架》和《通用+可扩展log监控平台/框架》分别进行了细化说明,3到6这四项上一篇《多维度立体化监控,才是真的监控》进行了简要说明,今天和大家聊聊第7项,用户视角的监控。

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

什么是用户视角的监控?

把系统内部当作黑盒:
用户怎么访问系统,用户视角的监控就怎么访问系统
用户调用哪些接口,用户视角的监控就调用哪些接口
此类监控的粒度较粗,并不直接监控web-server, service, db, cache…

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

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

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

这个问题,是和技术人密切相关的问题。如何系统设计的合理,不管是任何一台 nginx, tomcat, service, cache, db 挂了,由于系统的高可用架构设计,理论上都不应该影响一线用户的访问。
于是乎,只要用户视角的监控不告警,是可以第二天再起床处理其他监控的告警的。
画外音:这帮不靠谱的架构师,每次都说能高可用,任何一个地方挂了,用户就受影响了。

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

主要有三类方法:

  • 用户所在的地方,租机房布点监控
  • 端(APP/browser)上布点监控
  • 使用第三方监控平台

二、租机房布点监控

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

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

三、端上布点监控

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

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

四、第三方监控平台

既然是每个公司都有的痛点,实施起来又这么麻烦,自然有创业公司做这个事情。
可以购买第三方监控平台的服务,在配置后台配置

  • 待监控的页面,或者http接口
  • 频率,阈值
  • 告警接收人
    等信息,就能够快速实时全国各城市,甚至全世界各个国家的用户视角监控了,非常帅气。

第三方监控平台是怎么实现全国,全世界布点监控的?
额,他们租了机房。

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

五、总结

用户视角监控,把系统当作黑盒的一种粗粒度监控。
用户视角监控,能检测出局部地域的用户访问异常。
用户视角监控,有自主租赁机房布点,端上布点趋势检测,使用第三方服务三种方式。

调研:

  • 某个省的网络断了,你们能监控到么?
  • 你遇到过,网络供应商往你们站点插小广告么?

相关文章:
《多维度立体化监控,才是真的监控》
《通用+可扩展http监控平台/框架》
《通用+可扩展log监控平台/框架》

小手一抖,好文转走。
阅读原文

以上是关于用户视角的监控,再也不用凌晨起床处理线上告警了的主要内容,如果未能解决你的问题,请参考以下文章

互联网产品上线前,做些什么——产品开发测试的视角

开发视角看Linux系统监控命令

换种视角看问题——支持向量机(SVM)

性能监控与优化

性能监控与优化

SQL Server Alwayson架构下 服务器 各虚拟IP漂移监控告警的功能实现 -2(虚拟IP视角)