目前,已经有多家IT,银行公司,在逐步构建AIOps实施和落地。这几年我们也看到了很多有意思的场景的落地,也确确实实给业务带来了很多的价值。 本文主要总结梳理了在现有背景下,如何做好监控告警的智能化, 旨在为智能告警提出可行的解决方案。
告警中存在哪些痛点
痛点基本沿着“异常发现---告警触达---决策分析”的思路演进。
1. 异常发现:如何配置好告警策略,是智能化告警的前提
基于规则的告警策略配置,必然导致一个问题:阈值配置过高,容易漏掉系统运行故障;阈值配低,又会带来大量的无效告警,影响运维团队的工作效率,形成很多告警的叨扰。同样,告警检查周期的长短设置也存在类似的问题。往往运维团队为了不 遗漏 告警, 而 提升告警的灵敏度, 导致 告警重复率高达60%。
2. 告警触达:如何保证运维同学的快速响应,则是告警能否奏效的关键
一个告警问题往往不是1个运维人员可以解决的,大部分的团队都是多 个人参与同一类告警的处理 ,而 同一个告警 就 会被推送到 团队中的 多个运维人员的手中。但是,通常在一些特殊时段只有一个值班 人 员负责处理告警,这就给其他团队成员生活带来了巨大的干扰。因为缺少高效的分派和排班管理机制,加上大量重复的无效信息,这将会在一定程度上造成告警处理的延时和遗漏,引发告警风暴。
3. 决策分析:如何辅助分析决策, 则是能否最后告警智能化的最后一步
如何形成有效的告警分析和决策,而不仅仅是一条告警通知,则是迈向智能化告警的关键 每有一个用户访问 应用系统,应用 都需要 调用链路上 多个 IT单元, 而这其中,有一个环节出现问题, 都有可能导致业务故障。 而 系统中任何一个监控对象的告警都可能引发其他多个相关策略的告警, 这些 告警的相关度高达90% 以上。
智能化的解决监控告警中的痛点。
痛点1: 如何更好的发现异常?
方案一:告警配置模版方案
告警配置模板一方面可以让配置阈值方案变得更加简洁, 另外一个方面也是可以逐步把专家配置维护经验,在各个场景进行沉淀。
方案二:智能化检测
智能检测这个话题经常被聊起,每一种算法都可以拿出来单独写一篇文稿。 那业界常用的方法包括:
- 统计分析算法(3-sigma、分位检测/箱线图检测法)
- 时间序列分析算法
- 移动平均MA
- 指数加权移动平均EWMA
- STL GRED对时间序列做分解,利用分解以后的残差 趋势,做GESD检测
- holt-winters/ARIMA
- 无监督类型的机器学习算法
- 聚类算法
- 有监督类型的机器学习算法
- 一种思路:在构建大样本数据集的基础下, 然后利用特征工程 LR/xgboost/gbdt等进行, 或者直接采用用深度学习模型
- 另外一种思路:构建小样本数据集,利用active-learning或者迁移学习等方式,进行模型的有效训练。
- 复合用法:
痛点2: 如何保证告警的有效触达?
告警分级方案:
- 人工设定:通过人工在配置告警时,设定告警分级选项
- 专家经验复用:根据专家经验,在告警系统进行沉淀, 比如对重要性指标如服务可用率,接口成功率这些关键指标, 直接设定为P0。
- 自适应的告警分级
- 复合用法:从检测的置信度出发,结合专家经验一起进行分级。 例如:基于集成学习思想,构建多种弱检测分类器。结合投票机制, 提取检测结果的置信度。 检测为异常置信度高的,则对应告警级别也高。再通过专家经验规则的结合, 对于不同大的类型的检测,设定不同的投票机制, 从而达到更好适配业务的分级效果。
告警收敛方案:
- 告警过滤(告警抑制、告警静默)
- 告警合并
- 按时间合并
- 按字段合并
- 自适应收敛
- 基于相似性算法,进行有效收敛
- 建立有效制度:运维排班、告警认领、人工升级/降级、告警问题解决统计排名奖励机制等
最后,需要强调一下的是,算法在场景应用中,更多的起到帮助人们自动化挖掘出数据中的关系,规律, 但有效制度的建立也是不可缺少的一环。
痛点3: 如何保证高效快速执行排障修复?
告警的关联:
- 告警关联其他指标、调用链等信息。
- 关联历史的告警事件和解决方案
支持下钻分析:
- 主要是针对多维指标中的告警,可以快速的定位到异常范围, 从而可以进一步在异常范围内,去搜索导致这次问题的原因。
根因分析/决策建议:
- 利用多条指标异常和告警日志等,构建异常传输链,识别根因
- 利用指标告警、结合调用链数据,识别根因
参考:
http://blog.itpub.net/69948837/viewspace-2724484/
https://www.infoq.cn/article/qta6vcyjvhdoijg5wkze
https://www.jianshu.com/p/fec4e17f61b4
https://dun.163.com/news/p/05e92b4e03fe4010bed12f0e01ef21c6