本文是关于智能运维的算法和场景的探讨,由COPS2020在深圳站的演讲内容整理而成。报告从AIOps背景和现状、研究工作、未来工作三个方面,详细介绍了智能运维在算法研究和场景探索中的应用和实践。
AIOps背景和现状: 报告首先介绍了IT运维的现状,包括运维人员与IT设备和数据的比例变化,从1:100(以往)变为1:100n(现在/将来),系统架构变得更加复杂,排障难度增加。基础架构云化、应用微服务化、双态数据中心(传统架构+互联网架构)等变化,使得企业对排障时效的要求更高。智能运维的目标是通过自动化和智能化手段,提升运维效率,降低运维成本。
智能运维三要素: 报告指出智能运维的三要素包括算法的设计能力、运维场景的理解能力、平台的工程化能力。算法只是手段,运维才是目标。大规模运维数据的处理需要高效稳定的数据平台,数据平台和算法的高效结合是关键。
研究工作: 报告详细介绍了三个研究工作,包括日志/告警聚类、日志/告警场景挖掘、知识图谱和问答系统。
1. 日志/告警聚类: - 挑战:海量日志规模、长日志/告警、模板多、数据复杂、中英文混合、分隔符难以确定。 - 多层次聚类方法:包括粗粒度解析、细粒度解析、相似性度量。ML-parser三层日志聚类方法通过不同层次的解析和度量,提高聚类效率和准确性。 - 实验:在Hadoop和Spark日志上进行实验,ML-parser模板的信息损失少于Drain和Spell,99%的日志在第一层被聚合,效率和Drain、Spell类似。 - 利用实体识别提升准确性:通过正则表达式、NLP中的命名实体识别方法、基于变量的字符相似性进行识别,提升聚类效果。 2. 日志/告警场景挖掘: - 挑战:大量的告警类型、偶发告警、搜索空间巨大、故障时间持续较长。 - 基于频繁模式的场景挖掘:通过滑动窗口、FP-growth算法、最大项集方法挖掘频繁模式,但无法挖掘偶发场景,参数难以设定。 - 基于模板相关性的场景挖掘:通过时间序列相似性度量方法、社团挖掘算法挖掘场景,但受场景出现次数、告警间隔时间的限制。 - 基于参数的场景挖掘:同一故障中的不同告警可能会共享某些参数取值,通过参数共享关系挖掘模式,不受场景出现次数、告警间隔时间的限制。 3. 知识图谱和问答系统: - 知识图谱:近年来在不同领域中发挥重要作用,包括通用知识图谱和领域知识图谱。知识图谱的应用包括语义搜索和智能问答。 - 运维知识图谱:包括应用/服务调用关系、硬件连接关系、告警流水号、告警名称、告警级别、IP地址、产生原因、问题分类、解决方案等。 - 实体抽取:通过短句切割长句、匹配/添加正式词、添加维基百科等知识,从CMDB中获取种子,最终结果包括几十万实体,融合了软件、服务、中间件、主机、故障等类型。 - 面向运维的问答系统:基于自然语言的问题系统,高易用性,便于运维人员进行个性化数据探索。核心技术包括词法分析、句法分析、SQL语句生成等。系统架构包括前端和后端,支持多种数据源。算法效果包括给与运维人员更为灵活的数据探索能力,使用自然语言查询,无需编写SQL,融合多源数据。
未来工作: 报告最后提出了未来工作的方向,包括算法在多个领域的重要作用,但仍有大量问题需要解决。随着系统日益变得复杂,智能运维必将发挥更大的作用,面临业务复杂多样、数据海量异构等挑战。
本文为智能运维的算法和场景提供了全面的分析,展示了如何通过日志/告警聚类、场景挖掘、知识图谱和问答系统,提升运维效率,降低运维成本,为其他企业提供了可借鉴的实践路径。
|