分级告警策略,人性化系统监控?

2018 年 1 月 24 日 架构师之路 58沈剑

要介绍统一监控平台,得先从告警策略聊起,后续再聊不同维度监控的架构与实现细节。

 

一、啥是告警?

监控平台发现系统异常,向系统负责人发出文字(例如,邮件/短信),色彩(有些公司,编译不过,CI平台会亮红灯),声音(有些公司,有蜂鸣器嗡嗡响,研发压力大呀)等警示,就是告警。

 

绝大部分公司,主要是通过文字发出系统异常告警信息。

 

文字告警有哪些常见的方法?

以58到家为例,目前提供了四种文字告警的方式,其成本,到达率,实时性都不一样:

  • 短信:成本高,实时性好,到达率高

  • 邮件:成本低,实时性差,到达率高

  • 钉钉/微信:成本低,实时性中,到达率中

画外音:当然,得现有短信、邮件、钉钉、微信等消息网关的基础服务。

 

二、啥是告警策略?

绝大部分公司,可能都没有考虑系统监控告警策略,一旦发生异常,就发邮件/短信通知系统负责人,这样可能导致这样一些问题:

  • 同一个集群的不同实例出问题,可能会造成重复告警,浪费带宽资源,升高短信成本

  • 系统负责人短时间内手机被告警短信刷屏,导致产生麻木感

  • 系统负责人短时间内手机,邮箱,钉钉,微信同时对一个故障告警,导致产生巨大压力

  • 员工不重视告警,无法判断告警的优先级,leader又不知情,导致事故影响扩大

画外音:你猜,BAT一年的短信告警费用是多少?


为了解决上述问题,针对不同的服务,在不同的时间段,不同的员工层级,应该设定不同的告警策略,有哪些常见的告警策略呢?

  • 模块告警收敛策略:当一个模块/服务异常时,与其对应的所有接口监控,与其对应集群的多有实例,都会告警,此时,应该收敛为一个模块/服务告警,常见的实现方式是,模块/服务按照集群名称做告警去重

  • 接口告警收敛策略:当一个模块/服务的一个接口异常,与其对应集群的多个实例,都会告警,此时,应该收敛为一个接口告警,常见的实现方式是,按照接口名称做告警去重

  • 告警频率收敛策略:对同一个服务或者接口,应该在固定的时间内,只发送有限的告警,常见的方式是,按照1分钟1次限制告警次数,一来降低研发的紧张感与压力感,二来节省成本

  • 不同时段区分告警方式策略工作日工作时段在公司时,通过邮件/钉钉/微信发送告警能更加节省成本;半夜或者周末发生故障时,通过邮件发送告警能保证实时性

  • 逐层上报告警策略:每个模块都应该有负责人,原则上告警会发送给模块的负责人,但如果告警连续1小时未恢复正常,告警会自动发送给系统负责人的直属leader,如果告警连续3个小时未恢复正常,告警会自动发送给系统负责人的二级leader

  • 黑白跳动策略:当系统由正常变为异常,异常恢复正常,出现正反的变化时,都应该发出告警

画外音:额,这么人性化,是“别人家”的公司么?


三、监控平台,告警策略依赖的基础模块

要实现统一监控平台,要实现告警策略化,需要依赖两个非常重要的基础模块:

  • 集群信息管理

  • 员工信息管理

 

什么是集群信息管理?

额,这个架构设计中最容易忽略的部分,《监控平台基础服务,集群信息统一管理》一文已经有过描述,文本不再展开。


以下是通过全局配置文件,实现集群信息集中管理,一个global.config举例:

[user.service]

ip.list : ip1, ip2, ip3

port : 8080

bin.path : /user.service/bin/

log.path : /user.service/log/

conf.path : /user.service/conf/

ftp.path:ftp://192.168.0.1/USER_2_0_1_3/user.exe

owner.list : shenjian, zhangsan, lisi

 

从这里,监控中心能够知道被监控的是 [user.service] 集群,有三个实例部署在 ip1/ip2/ip3 上,如果发生异常,要将告警发送给 shenjian, zhangsan, lisi 三个模块直接负责人

 

什么是员工信息?

额,顾名思义,是员工基础信息的管理(额,这算什么解释)。和集群信息管理一样,员工信息的管理一定要集中化,不能分散在各处(分散的坏处是耦合,在监控平台基础服务,集群信息统一管理一文里谈得很多了)。

 

员工信息管理的实现方式主要有两种:

  • 员工信息管理服务

  • 全局员工信息配置

 

如何通过员工信息管理服务集中管理员工信息?

如上图,建立员工信息管理服务,绝大部分公司应该都是这么统一管理员工信息的,这个服务和HR系统结合应该是非常紧密的,即使是外采的HR系统,肯定有相关的模块管理员工信息,相关的数据库存储员工信息。

 

如何通过全局配置文件集中管理员工信息?

如果不考虑和HR系统的打通,而只考虑监控系统,分级告警的需求,完全可以通过配置文件来管理系统负责人信息,例如global.owner.config

[shenjian]

department : tech

leader : sandy

email : XX@OO.com

phone :15912345678

dingding : 15912345678@dingding.com

wechat : XXOO


四、总结

要开发统一监控平台,至少有两个基础模块:

  • 集群信息统一管理

  • 员工信息统一管理

 

统一监控平台,不能一异常就告警,太不人性化,要实现统一的分级告警策略

  • 模块告警收敛策略:按照集群名称做去重

  • 接口告警收敛策略:按照接口名称做去重

  • 告警频率收敛策略:按照M分钟N次限制告警

  • 不同时段区分告警方式策略:工作日/非工作日,白天/夜晚区分

  • 逐层上报告警策略:先模块负责人告警,n分钟未恢复升级,m分钟未恢复再升级

  • 黑白跳动策略:当系统由正常变为异常,异常恢复正常都通报

 

员工信息管理,需要注意:

  • 避免分散管理,导致耦合

  • 应当集中管理,有两种常见的实现方式,统一服务/统一全局配置

 

五、调研

调研一、对于监控平台,你的感受是:

  • ca1,无监控平台,都是用户反馈系统挂了

  • 有机器层面的监控,有nginx层面404监控

  • 有异常日志监控,有服务接口监控

  • 头疼,有各种奇形怪状的警示灯,蜂鸣器告警,压力异常之大

 

调研二、对于人性化告警,你的感受是:

  • ca2,没有监控,谈不上告警

  • ca3,没有考虑人性化,每次手机短信响起,就紧张,每次批量收到告警,压力就很大

  • 有区分工作日/周末,白天/黑夜的告警策略区分

  • 有收敛,去重,逐层上报的告警策略区分


嗯,有道理,得转发一下。


下期预告:统一http接口监控平台

本期推荐:《集群信息管理,架构设计中最容易遗漏的一环

登录查看更多
2

相关内容

众所周知,系统越大,系统也就越复杂;而越是复杂的系统,也就越是容易出现各种各样的问题,IPTV系统也不例外。为了给用户提供稳定、持续的IPTV服务,IPTV系统必须要能时刻知晓系统的当前运行状态,并且在系统出现异常之前或者出现异常的时候,能及时方便地对IPTV系统进行检查,对问题进行排查和定位。这些都是由系统监控功能来实现的。通过系统监控可以了解系统的运行状态、及时发现异常、分析原因、提早解决,避免系统故障,确保用户对系统的感知度和满意度。IPTV系统一般是通过告警管理、日志管理、信令跟踪、探针、诊断测试来实现对系统的监控。
大数据安全技术研究进展
专知会员服务
90+阅读 · 2020年5月2日
【北京大学】面向5G的命名数据网络物联网研究综述
专知会员服务
35+阅读 · 2020年4月26日
【SIGMOD2020-腾讯】Web规模本体可扩展构建
专知会员服务
29+阅读 · 2020年4月12日
专知会员服务
121+阅读 · 2020年3月26日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
滴滴离线索引快速构建FastIndex架构实践
InfoQ
21+阅读 · 2020年3月19日
5G时代:北京移动业务支撑系统 DevOps 实践
DevOps时代
15+阅读 · 2019年6月13日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
大数据安全技术浅析
计算机与网络安全
14+阅读 · 2019年4月24日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
为什么分布式一定要有消息队列?
互联网架构师
4+阅读 · 2018年7月5日
【智能商务】海量商品查找利器—苏宁搜索系统
产业智能官
5+阅读 · 2017年12月1日
认识个性化推荐系统:从推荐算法到产品冷启动
人人都是产品经理
6+阅读 · 2017年9月15日
CoCoNet: A Collaborative Convolutional Network
Arxiv
6+阅读 · 2019年1月28日
Arxiv
3+阅读 · 2018年10月25日
Learning Blind Video Temporal Consistency
Arxiv
3+阅读 · 2018年8月1日
Arxiv
6+阅读 · 2018年2月7日
Arxiv
8+阅读 · 2018年1月12日
VIP会员
相关资讯
滴滴离线索引快速构建FastIndex架构实践
InfoQ
21+阅读 · 2020年3月19日
5G时代:北京移动业务支撑系统 DevOps 实践
DevOps时代
15+阅读 · 2019年6月13日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
大数据安全技术浅析
计算机与网络安全
14+阅读 · 2019年4月24日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
为什么分布式一定要有消息队列?
互联网架构师
4+阅读 · 2018年7月5日
【智能商务】海量商品查找利器—苏宁搜索系统
产业智能官
5+阅读 · 2017年12月1日
认识个性化推荐系统:从推荐算法到产品冷启动
人人都是产品经理
6+阅读 · 2017年9月15日
Top
微信扫码咨询专知VIP会员