机器学习技术在监控工具中的应用已经成为 IT 运维与 DevOps 团队的一大热点话题。尽管相关的使用案例很多,对 IT 团队而已真正的「杀手级应用」是机器学习如何提高实时事件管理能力,从而帮助较大规模的企业提高服务质量。对此,关键在于在用户发现问题之前提早探测异常,进而减少生产事故与中断的负面影响。
那么,在IT运维管理的环境下,机器学习到底是什么?
网上有不少关于机器学习的宏观定义:对于某给定的任务T,在合理的性能度量方案P的前提下,某计算机程序可以自主学习任务T的经验E;随着提供合适、优质、大量的经验E,该程序对于任务T的性能逐步提高。更通俗的来讲,即:随着任务的不断执行,经验的积累会带来计算机性能的提升。
如果在IT运维管理的前提下,也许这样的定义更加准确:机器学习是分析数据,反复地向数据学习,进而在不参考明确模型的情况下,找出隐藏观点的一类方法。
在 IT 运维管理的语境中,机器学习的首要替代方案是为 IT 运维管理建立行为模型,了解这一点非常重要。行为模型方法要求了解基础架构的所有组件,才能理解出现中断或服务质量下降的可能原因。更确切地说,你要试着判断哪些事件和告警模式与你希望监控的条件相匹配。
事实上,大多数 IT 运维管理工具都属于这一类别。不论是过时的遗留事件管理器,还是使用「聚合及查询」方法进行 IT 运维的现代工具。总之,你都要对这些工具进行一定的配置,让它们留意你预先就知道需要搜寻的东西。
而另一方面,机器学习则使用数据本身来寻找值得留意的特征,这些特征可能在事先完全无法预知。例如,非监督式机器学习,可用于分析事件流或日志消息,从而找出异常的消息集群。之后,这些异常可以与某项运维结果相联系,从而捕获潜在中断的原因与症状。
然而,监督式机器学习可用于记录用户针对给定告警及告警集群的活动,并相应地做出算法上的调整。本质上,机器学习利用数据不断地创建并更新行为模型,而不是使用静态的行为模型寻找特定的结果。
在 IT 数字化转型的今天,随之而来的规模复杂度、变更速度以及软件抽象化等挑战成为了机器学习应用于 IT 运维管理的理由。
如果基础架构处于不断变化的状态,根本无法建立起固定的行为模型。如果你想了解来自应用与基础架构的大量数据的意义,使用基于规则的方法无疑是死路一条。在新的软件时代,你必须利用机器学习进行实时的数据分析,这是保证服务质量的必备条件。无可否认,IT 领域正变得越发混杂、虚拟化以及流动化,只有使用机器学习技术,才能坦然应对这些变化。
现代 IT 环境下,不断变化的基础架构会产生大量的事件数据需要处理。在 OneAlert,机器学习主要用于「消除噪音」。例如,面对每秒钟成千上万的告警事件,如何在消除噪音的同时保留有价值的信息事件?
目前 OneAlert 产品对告警事件的压缩率已经高达80%。基于时间片的告警信息压缩已经趋于成熟,基于告警属性相似度的聚类模型能够将告警压缩率达到 95%。而基于机器学习的人工智能压缩更是能够将告警压缩到 99%(我们敬请期待!)
本文转自 OneAPM 官方博客