用户视角的监控,再也不用凌晨起床处理线上告警了
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户视角的监控,再也不用凌晨起床处理线上告警了相关的知识,希望对你有一定的参考价值。
昨天《要过年了,就别再背电脑回家》情怀了一把,没想到评论里的技术人们(特别是运维)竟如此感人。
上一篇介绍多维度立体化监控,提到系统需要监控的八个维度:
- http接口监控
- log关键字监控
- 操作系统,进程,端口
- http状态码
- 服务存活性
- 接口处理时间
- 用户层面监控
- 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监控平台/框架》
小手一抖,好文转走。
阅读原文
以上是关于用户视角的监控,再也不用凌晨起床处理线上告警了的主要内容,如果未能解决你的问题,请参考以下文章