腾讯 张戎--腾讯运维的AI实践

  • 3901 浏览

郝乐生

2018/05/13 发布于 技术 分类

本次分享将会结合QQ的运维场景,介绍在日常的运维方面,如何使用机器学习的算法来实现智能运维。例如,如何使用机器学习算法来进行KPI曲线的异常检测,如何使用人工智能算法来进行故障的根因分析和根源分析。

文字内容
1. GOPS 全球运维大会 2018 2018.4.13-4.14 中国·广东·深圳·南山区 圣淘沙大酒店(翡翠店) GOPS 全球运维大会2018·深圳站
2. 腾讯运维的 AI 实践 张戎 机器学习研究员 腾讯科技(深圳)有限公司 社交网络运营部 GOPS 全球运维大会2018·深圳站
3. 目录 1 时间序列异常检测 2 智能多维下钻分析 3 告警收敛根源分析 4 AIOPS的未来规划 GOPS 全球运维大会2018·深圳站
4. 基于机器学习的智能运维 发现问 题 • 时间序列异常 • 日志分析异常 • 设备性能异常 分析问 题 • 多维下钻分析 • 关联事件分析 • 容量预估分析 解决问 题 • 扩容 • 决策 • 调度 • 优化 GOPS 全球运维大会2018·深圳站
5. 发现问题:时间序列异常检测 织云 Monitor 智能监控项目的目标 --- 发现问题 实时寻找时间序列中的异常点 织云 Monitor 智能监控项目典型案例 GOPS 全球运维大会2018·深圳站
6. 发现问题:时间序列异常检测 织云 Monitor 智能监控项目的难点和挑战 1. 历史包袱沉重 • 误告邮件多 • 告警电话多 2. 海量的时间序列 • 200万条时间序列 • 时间序列的种类多 3. 传统的规则处理 • 最大值,最小值,均值等 • 波动率等 Question 如何找到通用的算法 同时监控百万条曲线? GOPS 全球运维大会2018·深圳站
7. 经典算法的使用场景 AR/MA/ARMA/ARIMA • 需要定阶,确定合适的参数 • 时间序列具有自相关性 • 时间序列具有自相似性 自回归 AR(p) 模型 移动平均 MA(q) 模型 ARMA(p,q) 模型 ARIMA(p,d,q) 模型 GOPS 全球运维大会2018·深圳站
8. 经典算法的使用场景 相空间重构算法 • 针对混沌序列 • 属于预测和异常检测场景 • 将一维时间序列嵌入高维空间 GOPS 全球运维大会2018·深圳站 原始的时间序列 高维的时间序列 相空间重构算法的步骤 1. 延迟时间的确定 • 自相关系数法 • 交互信息法 2. 嵌入维度的确定 • 几何不变量法 • 虚假最邻近法
9. 经典算法的使用场景 RNN/LSTM • 属于预测和异常检测场景 • 适用于文本,语音类场景 • 梯度爆炸/消失 GOPS 全球运维大会2018·深圳站
10. 技术架构的形成 • 基于正态分布的假设 • 基于弱平稳性的假设 • 基于趋势性,周期性 时间序列的统计算法 分类问题 (只用有监督算法) • 正负样本不均衡 • 正负样本不全面 • 负样本稀少,难以获取 • 使用统计判别和无监督 算法过滤掉大量正样本 • 人工标注正负样本 • 有监督算法提升精准度 解决方案 (无监督+有监督) GOPS 全球运维大会2018·深圳站
11. 织云 Monitor 时间序列异常检测的技术框架 离线模块 数据存储 (Redis) 在线模块 统计算法&无监督算法 (输出疑似异常) 样本库 (人工标注) 特征工程 (离线计算) 有监督算法 (离线训练) 人工审核 数据提取 (Redis) ABTest 模块 统计算法&无监督算法 (输出疑似异常) 加载有监督模型 特征工程 (实时计算) 有监督算法 (输出异常) GOPS 全球运维大会2018·深圳站
12. 第一层:统计判别算法 3-Sigma算法和控制图算法的优缺点 √ × • 以当前时刻为标准 数据获取 • 七天前后三小时 + 昨天前后三小时 + 今天前三小时 • 3-sigma原理 3-sigma • 移动平均算法 控制图 • 指数移动平均算法 GOPS 全球运维大会2018·深圳站
13. 第一层:无监督算法 无监督学习算法的优缺点 √ × • 以当前时刻为标准 数据获取 • 七天前后三小时 + 昨天前后三小时 + 今天前三小时 • 可以从多维特征中寻找异常点 孤立森林 • 使用超平面的思想来进行异常/正常的区分 SVM • 使用神经网络的误差来进行异常判断 RNN GOPS 全球运维大会2018·深圳站
14. 第一层:无监督算法 Isolation Forest • 属于无监督算法 • 集成学习的思想 • 适用于连续数据的异常检测 • 通过多颗 iTree 形成森林来判断是否异常 GOPS 全球运维大会2018·深圳站
15. 第一层:无监督算法 One Class SVM • 属于无监督算法 • 使用了超平面的思想 • 适用于连续数据的异常检测 • 适用于对样本进行一定比例的筛选 • 寻找高维平面区分正常点与异常点 GOPS 全球运维大会2018·深圳站
16. 第一层:无监督算法 Replicator Neural Network • 属于无监督算法 • 需要构造必要的特征 • 使用了神经网络的思想 • 适用于连续数据的异常检测 • 寻找神经网络的误差来区分正常点与异常点 GOPS 全球运维大会2018·深圳站
17. 第二层:有监督算法 有监督算法能解决的问题 √ • Linear Regression/Logistic Regression • Decision Tree/Naïve Bayes 有监督算法 • Random Forest/GBDT √ GOPS 全球运维大会2018·深圳站
18. 第二层:时间序列的特征工程 时间序列的统计特征 • 最大值,最小值,值域 • 均值,中位数 • 方差,偏度,峰度 • 同比,环比,周期性 • 自相关系数,变异系数 时间序列的拟合特征 • 移动平均算法 • 带权重的移动平均算法 • 指数移动平均算法 • 二次指数移动平均算法 • 三次指数移动平均算法 • 奇异值分解算法 • 自回归算法 • 深度学习算法 GOPS 全球运维大会2018·深圳站 时间序列的分类特征 • 熵特征 • 值分布特征 • 小波分析特征
19. 第二层:时间序列的特征工程 时间序列的统计特征 • 最大值,最小值,值域 • 均值,中位数 • 方差,偏度,峰度 • 同比,环比,周期性 • 自相关系数,变异系数 GOPS 全球运维大会2018·深圳站
20. 时间序列的拟合特征 集成学习的思想 移动平均,窗口长度 5 移动平均,窗口长度 25 •w in {5, 10, 20, 30, 50, 100} MA •alpha in {0.2, 0.4, 0.6, 0.8} EWMA •alpha in {0.2, 0.4, 0.6, 0.8} Double •beta in {0.2, 0.4, 0.6, 0.8} EWMA EWMA,alpha = 0.2 EWMA,alpha = 0.9 Double EWMA, alpha = 0.1, beta = 0.1 GOPS 全球运维大会2018·深圳站 移动平均算法 带权重的移动平均算法 EWMA 算法 Double EWMA 算法 Holt Winters 算法 SVD 算法 AR/MA/ARMA/ARIMA 算法 RNN/LSTM算法
21. 时间序列的分类特征 时间序列的分类特征 • 熵特征 • 值分布特征 • 小波分析特征 聚类算法 Kmeans等 查看效果 时间序列的典型类别:昨日放量型,毛刺型,平稳型等 GOPS 全球运维大会2018·深圳站
22. 织云 Monitor 智能监控的业务效果 目前效果 90% 用少量模型覆盖所有曲线 时间序列异常只是 AIOPS 的第一步 准确率 计算方法:人工抽查,查看告警出来的时间序列和 相应的时间点是否准确。 70% 召回率 计算方法:人工从Monitor视图里面选择一批异常的时间序列和相应的时间点,然后让这 批序列通过现有模型,看看是否被召回。 GOPS 全球运维大会2018·深圳站
23. 时间序列相关技术的发展规划 历史数据 时间序列的聚类分析 时间序列的关联分析 当前数据 时间序列的异常检测 时间序列的相似度分析 时间序列的联动分析 时间序列的相似片段提取 未来数据 时间序列的趋势预测 GOPS 全球运维大会2018·深圳站
24. 目录 1 时间序列异常检测 2 智能多维下钻分析 3 告警收敛根源分析 4 AIOPS的发展规划 GOPS 全球运维大会2018·深圳站
25. 分析问题:多维下钻分析的背景描述 背景描述 业务埋点 收集相关数据 汇聚相关数据 监控系统 多维数据 统计维度信息 1. 省份,运营商 2. 安卓,IOS 3. 客户端版本 4. 成功量,失败量 GOPS 全球运维大会2018·深圳站
26. 传统的人工分析的弊端 第一步:判断成功率是否下跌 • 人工设定阈值 • 业务随着时间会变化 第二步:人工查找可疑维度 • 查看成功数 • 查看成功率 第三步:可疑维度的汇总 • 收集第二步的结果 • 输出维度的组合 GOPS 全球运维大会2018·深圳站
27. 基于机器学习的根因分析 发现问题 分析问题 数据存储 时间序列异常 (成功率,失败量等) 拉取正负样本 特征工程 有监督算法 输出根因 GOPS 全球运维大会2018·深圳站
28. 根因分析的机器学习模型(一) 决策树 模型的性质: 1. 解释性好 2. 规则模型 3. 离线分析 模型种类: 1. ID3 2. C4.5 3. CART GOPS 全球运维大会2018·深圳站 决策树: 1. 形成分支:信息增益/信息增益率/Gini系数 2. 去掉分支:前剪枝/后剪枝 信息熵 Gini 系数
29. 根因分析的机器学习模型(一) 根因分析的样本和特征工程 成功率 99.9% 90.1% 运营商 移动 联通 操作系统 安卓 IOS 客户端版本 XXX1 YYY2 网络类型 4G WIFI 图片数量 3 20 根据成功率获得标签 1. 抽样比例 2. 抽样数量 特征类型:连续特征与离散特征 1. 连续特征直接使用 2. 离散特征使用 one-hot 编码:几个原始特征变成上千个特征 标签 特征1 特征2 特征3 ……. 0(异常) 1 1 0 1(正常) 0 1 0 特征n 3 20 GOPS 全球运维大会2018·深圳站
30. 根因分析的机器学习模型(一) 样本 特征 决策树 剪枝 关键节点 异常聚集率:节点负样本数量/节点样本总量 寻找 关键节点 异常检出率:节点负样本数量/树的样本总量 二者的加权平均:F1 Score等 GOPS 全球运维大会2018·深圳站
31. 根因分析的机器学习模型(一) 找到三个关键节点 沿着树图,寻找路径 路径上的规则就是根因 冗余规则的合并 GOPS 全球运维大会2018·深圳站
32. 根因分析的机器学习模型(二) 根因分析算法的一般流程 数据处理 • 正样本 • 负样本 • 特征处理 剪枝操作 • 移除正常维度 • 聚焦异常维度 维度组合 • 规则合并 • 输出结果 提炼决策树的核心步骤 GOPS 全球运维大会2018·深圳站 信息熵 / Gini 系数
33. 根因分析的机器学习模型(二) 如何描述两个概率分布的“距离” 男女分布情况 App1的下载量 App2的下载量 KL 散度(不对称) GOPS 全球运维大会2018·深圳站 Jensen Shannon Entropy(对称)
34. 根因分析的机器学习模型(二) JSD大 EP小 JSD大 EP大 影响异常的 主要因素 Jensen Shannon Entropy EP值 JSD小 EP小 JSD小 EP大 效果 准确率大于 95% GOPS 全球运维大会2018·深圳站
35. 目录 1 时间序列异常检测 2 智能多维下钻分析 3 告警收敛根源分析 4 AIOPS的未来发展 GOPS 全球运维大会2018·深圳站
36. 解决问题:告警收敛 1. 海量告警怎么办? 2. 如何寻找海量告警的根因? • 网络抖动 • 机房故障 • 程序异常 • 日志变更 GOPS 全球运维大会2018·深圳站
37. ROOT根源分析要解决的问题 ROOT 项目的难点和挑战 历史包袱沉重 • 误告邮件多 • 误告消息多 • 告警电话多 如何才能找到造成告警的根源故障 如何发现有价值的告警 GOPS 全球运维大会2018·深圳站
38. 织云 ROOT 根源分析 织云 ROOT 项目整体架构 GOPS 全球运维大会2018·深圳站
39. 织云 ROOT 根源分析的机器学习方案 对于要分析的模块, 考察它所在的子网构成的链路中其他模块节点在邻近时间范围内的告警情况 调用关系拓扑 GOPS 全球运维大会2018·深圳站
40. 告警收敛的机器学习方案 历史数据 • Apriori • FP-Growth 提炼规则 • A->B的概率 告警收敛 • 等待队列 • 告警发送 GOPS 全球运维大会2018·深圳站
41. 时间序列的关联分析 对两个KPI曲线的告警按时间切片进行统 计,时间切片内有告警为1,无告警为0 必要时对序列进行位移操作, 计算出皮尔逊相关系数 相关联的模块KPI曲线在发生异常时,往往会呈现相似 的异常特征 GOPS 全球运维大会2018·深圳站
42. 织云 ROOT 根源分析的效果展示 GOPS 全球运维大会2018·深圳站
43. 织云 ROOT 根源分析的效果展示 GOPS 全球运维大会2018·深圳站
44. 目录 1 时间序列异常检测 2 智能多维下钻分析 3 告警收敛根源分析 4 AIOPS的未来发展 GOPS 全球运维大会2018·深圳站
45. 织云 AIOPS 的未来规划 根因分析 多维下钻分析 故障传播链分析 1. 事件与事件的关联分析 2. 时序与事件的关联分析 3. 时序与时序的关联分析 发现问 题 分析问 题 解决问 题 GOPS 全球运维大会2018·深圳站 时间序列 异常检测 1. 时间序列聚类 2. 时间序列分类 3. 时间序列的局部相似度 4. 时间序列的整体相似度 5. 时间序列的关键部分提取 趋势预测 智能决策 扩容 决策 调度 优化
46. Thanks GOPS 全球运维大会2018·深圳站 高效运维社区 开放运维联盟 腾讯运维体系专场 荣誉出品
47. 想第一时间看到高效运维社区 的新动态吗? GOPS 全球运维大会2018·深圳站