[转]如何在AIOps中最大限度地发挥日志系统的作用
1. 智能日志中心介绍
应用 AIOps 的能力可以分为五级。
- 对 AIOps 有想法,想要去尝试的人作为一级。
- 二级和三级是目前想要达到的目的。二级需要达到单点应用,例如公司的监控系统原先固定了阈值,加入算法之后,监控如果能达到 AIOps 要求的准确,且避免手工劳动这一级别,即可为单点应用。
- 三级需要达到串联应用,例如目前整个监控系统都能达到比较好的层次,监控作为很大的模块概念,包括判断是否为告警的地方,告警发送给哪些人,发送的信息应该包含哪些关联的东西等,当将 AI 加入到这些场景后,可认为这一串执行都被 AI 化,接着可以将目标转为容量调度,这样的监控可认为达到三级水平。
- 五级实现自动化有待发展。
数据是实施 AI 的主要对象,如何获取足够多和足够好的数据,进而完成 AIOps 的场景显得比较重要。日志易期望给用户提供一个日志平台,平台中大量的工作集中在如何采集数据、采集什么样的数据、对数据做怎样的处理,进而为上层的应用提供价值上。
其中,时间戳 是日志的关键信息,时间戳后的数值即为常见的监控信息。更广义上说,变更的事件——例如某一时间点某一业务的上线,也可作为一种日志事件。当日志平台真正做好 AIOps 时,需要提供全面的日志信息。
就日志易而言,目前对很多基础架构类的设备都有内置的规则支持,有上百个 APP 去集中支持各种基础架构类的、硬件设备类的、行业内部应用类的日志。这种情况下,日志平台接收的数据会自动地进行 ETL 处理,从而推动下一步统计分析和 AIOps 的实施。日志平台在数据处理上对 AI 提供价值。
2. AIOps 场景与实现
AIOps 的应用场景有很多。目前,日志易比较关注质量保障模块。就质量保障而言,需要考虑如何发现故障、定位故障。
在日志易和阿里的 AIOps 合作中,首先寻找快速定位故障的方法。当故障发生时,可以通过多种方法去发现故障。例如仅基于 KPI 指标相互之间的关联去解析,接着通过机器学习、人工智能的办法将故障定位范围进一步缩小。当获取告警点和问题根因后,结合业务拓扑情况作出最终决策。
在由日志到告警的过程中,平台首先从日志本身可以得到大量的监控指标信息。例如,固定分钟的 404 错误数量、响应时间等,可以获取到很多维度的监控指标。通过算法,可以从这些监控数据中获取精准的、非人工设置的告警数据。在发现单个监控异常指标的基础上,梳理得到整个业务拓扑。
每个业务本身实际状态,受很多指标影响。指标影响具有一定权重,通过将单个 KPI 异常的情况进行不同的分级和赋予权重,进而可以推导出实际业务对用户体验的影响程度。经过从日志到指标异常,再到真正业务影响程度的分析,用户就能根据严重程度,判断是否真正需要关注某一问题。
从获取告警,到日志的排查,假设有 8 条日志,进行归并排序后可变为 4 行,经过不断的信息归并,所有的日志都将与通配符匹配,真正的日志便可归并为肉眼可视的状态。
实际应用中,当用户排查问题时可能会有几千条日志,用户只需关注机器学习得到的模式即可。
当用户确实在日志异常检测中获得帮助时,可以将临时故障排查转换为定时故障排查。在定时故障排查中,通过模式识别和参数识别排查异常,异常并不一定就是问题。当出现没有见过的异常处理的分支日志时,系统会获取异常分支,判断该异常是否为问题,从而将日志文本发现的问题转化为指标分析、标准的修正反馈。
3. 日志易行业案例
金融业与互联网业有着很多相似之处。
日志易在金融客户的应用中,交易状态的实时统计包括交易量、成功率、各个不同失败维度的统计等。在业务流程链中,当业务模块出现问题时,用户可以通过点击跳转到对应业务线的仪表盘,所有的仪表盘,可以通过灵活配置,使其一层一层转到某一点,该过程表现为故障知识积累。
当业务请求出现问题时,例如某一时间点的某一笔交易出现异常时,系统会清晰显示交易的时序图,以展现交易流经的模块、反复出现的交易,以及出现问题的交易。该系统展示更适合于类似银行业等传统行业中。通过总线传输大量的后台请求,可在一个模块中进行多次反复交易。
同时,得到告警后系统会进行更复杂的一些操作,包括告警的自动归并、告警人工处理记录、告警处理效率监控等。
日志易在运营商客户的应用中,处理类似手机充值的业务时,后台的业务逻辑比较复杂,系统会每 5 分钟统计所有步骤之间的差异情况并进行显示反映。系统会以两种不同的方式反映情况。针对客服人员,中间每一步串联的信息都会隐藏掉;正常情况下,会列出每一步的详细信息,从而在拿到大量告警进行排查中,节省大量时间。
在营业厅柜员的操作分析中,可以深入到每一位柜员的执行情况、工作是否认真负责,同时显示所有营业厅的分布情况、柜员操作请求号的排序统计等。
运营商在网络维护投入很大力量。日志易同时给运营商做 GSLB,CDN,DNS 的日志分析,查看 CDN 命中率的情况、带宽的情况等。
在做 DNS 日志分析时,互联网公司本身的权威 DNS 认证量不是很大,相对的运营商会承担大量的 DNS 请求。通过对 DNS 请求的分析,会将包括请求目的地、返回较多的域名、请求量上的异常等,变为监控指标,从而实时进行监控。
运营商除了做互联网业务,同时还开展一些家庭业务。人们每一次调台或进行直播、点播的切换时,机顶盒产生的数据也可以用来进行更详细的分析。
当点播电影产生卡顿时,日志易通过分析机顶盒产生的数据,显示流用户和点播用户的情况、卡顿发生的点、卡顿时的码率、具体播放的节目等,从而提高运维人员的业务可用性和用户体验指标。
作者饶琛琳是日志易产品总监,曾任职新浪微博、人人网、中华网、世纪互联,拥有10 年互联网及 IT 运维经验,出版过 3 本运维技术书籍:《网站运维技术与实践》 、《Puppet 实战手册》 、《ELK Stack 权威指南》。
[source]如何在AIOps中最大限度地发挥日志系统的作用