告警数据挖掘研究

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 告警数据挖掘研究 隋楷心 博士 必示科技算法总监 2021/8/7 1
2. 故障危害 由于大规模软件服务的复杂性,故障总是不可避免的 2020年3月, google云服务由 于基础资源问, 题造成长时间异 常,持续3.5h 2019年12月, 微信公众号系统异 常,持续30min 2019年12月, 支付宝系统因光 纤被挖断,造成 90min故障 2019年12月, 微软Azure系统因 软件bug导致故障, 持续164min 2019年10月, 微信支付系统故障, 持续约1h 2019年10月, 国庆期间携程酒店 系统故障,持续约 1天 2018年一小时的 宕机时间 损失约1亿美元 2
3. 智能故障分析 保证软件服务质量和用户体验,减少经济损失,对故障进行智能分析是至关重要的 故障 发现 故障 诊断 如何及时、准确 的发现故障 如何快速、准确的 诊断出故障的根因 故障 预测 如何对故障提前预 警,规避故障 3
4. 告警数据挖掘在故障智能分析中的应用 如何及时、准确 的发现故障 如何快速、准确的 诊断出故障的根因 故障 发现 故障 诊断 告警定级策略不合理,影 响故障发现的时效性 自适应的告警动态定级 告警风暴影响故障诊 断效率 告警风暴摘要 如何对故障提前预 警,规避故障 故障 预测 告警中的隐患信号未被有 效捕捉,故障预警困难 基于告警的事件预测 4
5. 问题1: 告警定级策略不合理,影响故障发现时效性 告警 异常检测 指标异 常检测 日志异 常检测 传统 监控 告警定级 告警数据样例 5
6. 问题1: 告警定级策略不合理,影响故障发现时效性 TCP无响 应 CPU利用 率超过80% PING *** 不 通 业务成功率 低于95% 进程数超 过限制 到底哪个告警 是严重的?我 该先看哪一个 告警? 数据库表 空间不足 6
7. 问题1: 告警定级策略不合理,影响故障发现时效性 故障案例 Response time increases to 500ms (P2-error). 10:14 Alert 10:20 Alert Localize root Diagnose cause: database and repair 10:45 User complaint 11:20 Recovery • 故障在10:45通过用户电话报障发现 • 在10:45之前, 有一些故障相关的告警 (响应时间上升到500ms),但是因为 级别不够高,没有引起工程师的注意 不准确的告警定级方式会导致严重告警的漏报,而工程师却花费了无用的时间去处理一些 没有意义的非严重告警 有助于 准确的告警定级算法 及时的故障发现 7
8. 问题2: 告警风暴影响故障诊断效率 用户 系统B 系统C 应用 系统A Web server Database … File storage 中间件 硬件 系统A的数据库服务器宕机会引发web server产生告警,调用系统A的相关系 统(B和C)产生告警 E7: disk alert E4: CPU alert E8: memory alert E5: network alert E6: API time cost alert En: …… 路由器问题引发的告警风暴 8
9. 问题2: 告警风暴影响故障诊断效率 服务故障 1 2 告警风暴 应用架构有很多组件, 每个组件下面都有自己 的监控数据 复杂的依赖关系:硬 件拓扑和软件调用 1 到底发生了什么故障 2 哪些告警是和故障相关的 3 告警风暴的核心内容是什么 手工检查所有告警对工程师 来说是耗时耗力且易错的 9
10. 问题3: 告警中的隐患信号未被有效捕捉,故障预警困难 学术界现有的故障预测方法主要有以下几个限制: • 大多数方法专门为某一种故障设计(比如磁盘故障,节点故障,交换机故障),不具备泛化性 • 这些方法大多是利用指标和日志数据来提取有预测作用的征兆特征,训练开销非常大 • 轻量级的告警数据来做事件预测仅仅考虑了每类告警的数量作为特征,实际表现并不理想 工业设备日志 设备故障预测 磁盘SMART 磁盘故障预测 节点性能指标 节点故障预测 交换机日志 交换机故障预测 10
11. 问题3: 告警中的隐患信号未被有效捕捉,故障预警困难 工业界也没有用告警数据做故障预测的有效方案 • 基于专家知识和运维经验,总结事件预测的规则,如果线上告警满足了某一规则,就认为要发生对 应的事件。但是基于规则的方法在实际中表现的并不好,经常会出现误报和漏报,原因如下: • 维护和制定这些规则需要足够的运维经验,且耗费时间 • 不同工程师制定规则的偏好是不一样的,很难有统一的标准 • 服务系统总是会经历不停的变更迭代,固定的规则不能适应动态的环境 • 基于频繁项集挖掘(如FP-growth)的方法。但是基于工程师的反馈,这类方法只能覆盖极小部分 的事件,由于告警数据的复杂性和告警内容中混在的参数,大多数事件都没有对应的频繁项告警, 因此这类方法在实际中的可用性也不高。 11
12. 告警数据挖掘研究 故 障 发 现 论文1:自适应的告警动态定级 故 障 诊 断 论文2:告警风暴摘要 故 障 预 测 论文3:基于告警的事件预测 Automatically and Adaptively Identifying Severe Alerts for Online Service Systems INFOCOM 2020 Understanding and Handling Alert Storm for Online Service Systems ICSE SEIP 2020 Real-time Incident Prediction for Online Service Systems ESEC/FSE 2020 12
13. 告警数据挖掘研究 故 障 发 现 论文1:自适应的告警动态定级 故 障 诊 断 论文2:告警风暴摘要 故 障 预 测 论文3:基于告警的事件预测 2021/8/6 用历史告警处置记录做标注,利用多特征融合方法 训练排序模型,对线上实时到达的告警流做排序 Automatically and Adaptively Identifying Severe Alerts for Online Service Systems INFOCOM 2020 Understanding and Handling Alert Storm for Online Service Systems ICSE SEIP 2020 Real-time Incident Prediction for Online Service Systems ESEC/FSE 2020 13
14. 论文1:自适应的告警动态定级 工业界实践 基于手工规则的告警定级 P1-严重 P2-错误 指标规则: 固定阈值 • CPU 利用率超过 90% 是P2 • CPU 利用率超过 80% 是P3 日志规则: 关键字匹配 • 日志文件中出现fail关键字是P1 • 日志文件中出现warning关键字是P3 P3-警告 不足: • 简单的手工规则的定级方式不能满 足线上服务系统的动态性与复杂性 • 手工定制和维护大量的规则是非常 耗时耗力的 1) 告警的种类很多 2) 由于系统变更会引入新类型的告警 3) 不同的工程师在制定规则时的偏好 不一样,很难有统一的规则 自适应的告警 动态定级算法 有助于 及时的故 障发现 14
15. 论文1:自适应的告警动态定级 挑战 1 2 标注开销大 告警类型复杂 多样 大量的告警 数据 应用,网络, 数据库,中间 件,存储 3 复杂动态的线 上环境 适应动态的线上 环境,如系统变 更引入的新告警 4 数据不平衡 严重告警的比 例很小 严重 普通 15
16. 论文1:自适应的告警动态定级 方法 告警的严重 性受到多种 因素影响 识别出严 重告警 多特征 融合 排序 模型 AlertRank 核心思想: • 多特征融合: 告警特征和指标特征 • 建模成ranking model 16
17. 论文1:自适应的告警动态定级 数据描述 • 告警 • KPI • 工单 1. 2. 3. 4. 5. 6. 7. None. (0; 65.1%) This alert is in white list. (0.1; 4.2%) This alert has been recovered automatically. (0.2; 7.8%) Contact the service engineers and there is no effect on business. (0.4; 10.6%) Known reasons. This alert has been resolved. (0.6; 6.4%) Contact the service engineers and there is an effect on business. Already resolved. (0.8; 3.8%) Create a ticket. (1; 2.1%) 不同类型的处置记录 用于给每一个告警的严重性打分 17
18. 论文1:自适应的告警动态定级 特征工程 1 告警特征 文本特征: • 告警语义:主题模型 • 文 本 熵 : Inverse document frequency 2 时间特征: • 频率 • 周期性 • 告警数量 • 间隔时间 3 其他特征: • 告警类型 • 发出时间… 多特征融合 指标特征 • 所在应用系统的关键业务指标: 如交易量,响应时间,成功率 • 异常检测的异常分数作为特征 18
19. 论文1:自适应的告警动态定级 特征分析 一些典型的特征和告警严重性之间的关系 19
20. 论文1:自适应的告警动态定级 排序 训练 特征工程 排序模型 • • 算法中用到的特征(40个) 在线数据 特征工程 标签: 来自历史告警数据 的处置记录 模型: XGBoost ranking a b c d e … 到达的 告警 排序 b e a 排序结果 c d 20
21. 论文1:自适应的告警动态定级 评估 数据集:来自真实工业界的三组告警数据集 • 对比方法: • Rule-based:传统基 于规则的方法 • Bug-KNN: bug report定级算法 • AlertRank可以达到平均 0.9的F1-score 告警特征和指标特征两部分对 结果都是有贡献的 21
22. 告警数据挖掘研究 故 障 发 现 故 障 诊 断 故 障 预 测 论文1:自适应的告警动态定级 Automatically and Adaptively Identifying Severe Alerts for Online Service Systems INFOCOM 2020 对告警风暴做实时的检测和摘要(降噪和聚类), 减少工程师需要查看的告警的数量,快速定位问题 论文2:告警风暴摘要 Understanding and Handling Alert Storm for Online Service Systems ICSE SEIP 2020 论文3:基于告警的事件预测 Real-time Incident Prediction for Online Service Systems ESEC/FSE 2020 22
23. 论文2:告警风暴摘要 问题定义 • 告警风暴:一般情况下,当一个应用服务出现故障时会伴随 着大量的告警产生 服务 故障 告警 风暴 • 由于告警风暴中告警的数量巨大,运维工程师手工检查每条 告警进而对系统排障的过程会变得非常费时费力 1 到底发生了什么故障 2 哪些告警是和故障相关的 3 告警风暴的核心内容是什么 X:系统每分钟产生的告警数量 Y:不同#alert/min对应的次数 因此,为了保证服务质量,对告警风暴的处置至关重要 23
24. 论文2:告警风暴摘要 现状和挑战 1 告警风暴出现的频率很高(大约每周一次) 并且在现实中会给工程师带来巨大困难 2 当前对告警风暴的识别方法只是人工设置 一个固定的阈值,但是这种方法并不能适 应动态的在线服务场景 3 告警风暴中包含一部分于服务故障无关的 常规告警,并且许多与故障相关的告警中 也存在一定的关联关系,例如文本相关性 和拓扑相关性 1 2 3 软件服务频 繁变更引发 告警数量动 态变化 故障不相关的 告警混在在告 警风暴中,影 响排障 告警之间 复杂的关 联关系 固定阈值的告 警风暴检测方 法表现不好 告警降噪: 过滤掉噪声 告警 拓扑关联; 内容相似 24
25. 论文2:告警风暴摘要 方法 ① 告警风暴检测 告警风暴的检测可以转化为突变点检测问 题,使用极值理论(EVT)能够自适应地、 准确地检测出告警风暴 ② 告警风暴摘要 告警风暴摘要的目的是选取出与服务 故障相关的告警集合,并且这些告警 能够从多方面反映故障 25
26. 论文2:告警风暴摘要 方法 告警风暴摘要 1 基于学习的告警降噪 • 定义成异常检测问题 • 特征: 告警的属性和 统计特征 • Isolation forest 1. Oracle database connection detection alerts, TNS: no listener program 2. Weblogic JDBC pool status is not running. The alert item is NBANK: EntServer 3. Syslog alert, lan24 on system SDII11P1 has gone down due to lost connection with the link partner 4. Memory check timeout. Description/Type table : No response from remote host ipaddr 5. CPU usage: Can't get necessary data 6. Disk load current value: 100.00% exceeding configured threshold 95.00% 7. Oracle log alerts. ORA-01034: Oracle not available 8. Database transfer status is abnormal. Alert item is NBANKDB_STB 9. Node ping alert. Host check timed out after 10 seconds 10.Source ipaddr ping destination ipaddr, response timeout. Average RTT is 106ms, threshold is 100ms 11. System VCS cluster alert. SDII13P1_vcs has faulted in cluster CL_NBANK_DBSRAC_SHD 2 告警聚类 • 相似性度量 • 文本相似性: Jaccard distance • 拓扑相关性: graph path • DBSCAN聚类 3 代表性告警选择 • 选择聚类中心 26
27. 论文2:告警风暴摘要 评估 数据集:来自真实生产环境的166个告警风暴案例 检测 摘要 基于极值理论的告警风暴检测 方法比固定阈值方法好 告警摘要算法能显著减少工 程师需要查看的告警数量; 且推荐的告警和故障相关的 准确度可以达到75% 告警降噪和告警聚类模块表现 得比现有方法都好 27
28. 告警数据挖掘研究 故 障 发 现 论文1:自适应的告警动态定级 故 障 诊 断 论文2:告警风暴摘要 故 障 预 测 Automatically and Adaptively Identifying Severe Alerts for Online Service Systems INFOCOM 2020 Understanding and Handling Alert Storm for Online Service Systems ICSE SEIP 2020 用历史低级别告警预测和故障相关的高级别告警, 并提供可解释的预测分析 论文3:基于告警的事件预测 Real-time Incident Prediction for Online Service Systems ESEC/FSE 2020 28
29. 论文3:基于告警的事件预测 问题定义 事件预测问题定义为一个窗口分类问题 • 即在当前时刻t,我们拿到过去一段历史告警数据(观测窗口),基于这个窗口内的告警数据,预测 在未来一段时间(预测窗口)内是否会出现某个事件 • 修复时间是留给工程师采取措施避免事件发生的时间 29
30. 论文3:基于告警的事件预测 方法 • 特征提取: 文本特征(通过LDA主题模型提出文本的潜在语义特征)+统计特征(这个窗口内的告警数 量,窗口的时间,告警间隔时间等其他的统计特征) • 特征聚合: 在实际场景中,并不是所有的告警对事件预测是有帮助的,有征兆的告警可能被淹没在大量 的噪声告警中,导致预测结果不好。为了避免噪声告警带来的影响,采用了多示例学习的思想,在聚合 的过程中弱化噪音告警的权重,增强征兆告警的权重,以此避免噪声告警对预测产生的干扰作用。 特 征 解释 : 采用LIME对每次预 测结果给出可解释分析,告诉 工程师哪些特征对事件的发生 起到的作用最大,那么这些特 征极有可能和事件的根因有关, 从而帮助工程师主动采取措施 来规避故障。 30
31. 告警数据挖掘研究总结 故 障 发 现 论文1:自适应的告警动态定级 故 障 诊 断 论文2:告警风暴摘要 故 障 预 测 论文3:基于告警的事件预测 • • • • • 提出了基于排序模型的告警动态定级算法 基于多特征融合,设计并从多源数据中提取了多种特征,用于表征告警的严重性 聚焦在告警风暴这一运维问题中,提出了用动态剧变点检测的方法准确检测告警风暴 提出了一套有效的告警风暴摘要算法框架:包括噪声告警过滤、告警聚类和典型告警选择 采用多示例学习的思想解决噪声告警对预测的干扰,基于有监督的分类算法构建了一个事 件预测模型,提供一个可解释的结果方便工程师主动采取措施去规避故障 31

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-16 02:45
浙ICP备14020137号-1 $Carte des visiteurs$