运维数据:建设与落地AIOps的基石
自全球著名IT咨询机构Gartner在2017年正式提出AIOps以来,国内外各个企业与厂商都在积极探索与尝试利用大数据、机器学习技术来改进和增强传统IT运维能力(如在监控、自动化和服务管理等方向)。
关于AIOps,业界有很多的定义和解释,但笔者在2019年底参加Gartner全球I&O大会时,分析师Charley Rich一语道破了本质:“智能运维另外一个名字就是数据分析;(My name is AIOps, but you can call me Data Analytics……)”。所以,拨开迷雾,除了各种各样数据应用场景、高深复杂的算法和酷炫的可视化,其最基础的部分就是数据——运维数据是构建和落地AIOps的基石。
运维数据驱动AIOps成为必选项
业务增长速度快、架构复杂度指数级升高,带来的是运维数据的极大变化。传统运维数据一般仅涉及到底层基础设施以及部分应用,但是在以用户体验和业务结果为核心的外向型运维管理模式下,运维数据的边界已然被打开了。
现在的运维数据不仅包括面向多层技术栈的各类参数与文件,同时还包括了各种用户体验的数据以及与企业休戚相关的核心业务质量KPI等,如下图所示。
面向全栈的运维数据
运维数据的另外一个特点是数据类型的多样性(Variety),可分为时序型指标、追踪(关联)模型、日志数据、配置管理数据、告警事件、工单数据和运维知识/运维知识图谱等类型。
运维数据边界的开放,同时意味着数据量的极速暴涨,以某大型企业运维部门的数据为例,在2017年数据处理量稳定在150亿条/天, 2018年的数据是800亿条/天,而到2019年中处理量已经达到了惊人的2000亿条/天,数据洪水带来价值挖掘成本也越来越高。
运维监控另一个突出特点是问题发现的敏捷性,故障发生的同时就要根据数据实现事件的产生与消息通知。因此大部分运维数据都是流式数据,数据的价值随着时间的流逝而降低,因此必须实时计算并给出秒级响应。
运维监控最核心任务之一就是对业务应用的故障预防、定位与处置。而在处理突发故障时,现有工具和解决手段存在效率低、不准确、不及时的问题,因为我们面向的IT环境架构比以往规模更大、复杂度更高、海量数据的挖掘更困难,而处理海量、实时、多样的数据并产生高价值的工作恰恰是机器学习的特长。因此,利用机器学习等AI技术对运维数据进行处理的AIOps,成为运维发展的必然走向。
面向智能运维的数据体系方案
落地AIOps战略,一方面要强调运维数据的基础作用,另一面要形成运维数据治理与应用的全局体系,围绕规划、系统与实施三个阶段,面向运维数据的全生命周期与业务导向结果,从数据的整体规划、运维数据源、数据采集、数据的计算与处理、指标管理体系规划与实施、专业运维数据库的建立以及数据的典型应用场景等多角度着手,如下图所示。
【面向AIOps的数据体系建设】
面向未来的基于数据驱动的运维管理模式将以主动、集中、业务价值为核心,构建一种颠覆传统运维的全新管理方法:
●从IT系统的各个对象,以及现有监控工具中获取全量,海量以及多样的运维数据;
●将指标、事件、告警、日志、工单等各类运维数据在运维大数据系统上进行统一存储与处理;
●通过机器学习和先进的运维场景分析方法,主动识别和响应数据模型潜在的问题,评价IT基础设施和应用对于业务运营的影响。
数据作为企业的核心资产,提升数据分析能力、数据决策水平以及数字化运维效能,努力营造“基于数据说话、基于数据管理、基于数据决策”的工作氛围是数字化转型的行动方针。
对于运维团队,面向不断变化的业务与极速挑战,更要用“夯实数据基础,提升数据质量,稳步推进数据应用”作出表率。借助新的运维数据管理模式,能对IT系统以及业务进行高效精准的管理,辅助故障根因分析,有效降低MTTD(Mean Time To Detect,平均故障检测时间)和MTTR(Mean Time To Restore,平均故障恢复时间),并大幅减轻运维工作压力,显著降低成本,不断提升服务质量和用户体验。
运维数据的典型应用场景
所有运维数据的智能运维场景,都是AIOps本身的应用场景,这里用问题发现、智能告警、故障诊断、数据预测等几个典型场景进行举例说明。
(1)智能异常检测:企业IT系统规模的扩大、运维环境的复杂化、监控数据量的海量增长,使得运维人员从海量的数据中发现问题的难度也越来越大。而智能异常检测通过基于历史数据模型的异常检测等方法,能够自动、实时、准确地从监控数据中发现异常,为后续故障的分析与处理提供基础。根据对象的不同异常检测可划分为数据源异常检测、文本异常检测、数据源异常检测。
(2)智能异常预测:在实际的运维过程中,故障往往不是独立存在的。海恩法则告诉我们,任何不安全的事故都可以预防。智能异常预测通过对重要特性数据进行预测算法学习来实现故障的提前诊断、从而避免损失。故障预测的典型场景包括:磁盘故障预测、网络故障预测以及内存泄露预测等。
(3)故障关联分析:在运维过程中,各类监控工具每天会产生大量冗余的告警,而这些告警之间可能存在一些关联,只有找到产生告警的根本原因才能快速、有效地对故障进行处理。关联分析可以用于发现隐藏在大型数据集中有意义的联系。在智能运维中,我们通过对历史数据的学习和分析,发现有意义的关联数据,再通过对关联数据的分析建立业务与硬件的拓扑关系,从而实现故障的提前预警以及根源分析。
(4)故障根因分析:对故障进行根源分析是在众多可能引起故障的因素中,追溯到导致故障发生的症结所在,并找出根本性的解决方案。利用机器学习或者深度学习的方法,我们可以找出不同因素之间的强相关关系,并利用这些关系,推断出哪些因素是根本性的因素。故障根因分析可以帮助用户快速诊断问题、提高故障的定位速度以及修复效率。
(5)容量规划预测:为保证业务的正常运营,企业需要对容量进行合理的评估。过多的预留容量会造成浪费、增加企业成本;而过少的容量则可能带来故障、造成业务损失。而随着IT架构的广泛云化,容量评估也不仅仅是对硬件需求的预测,更有可能是为优化业务运行成本而进行的服务平台选择的关键。利用智能运维中的解决方案,通过分析业务量、业务性能以及资源的占用情况的历史数据,并结合业务量预测数据来建立容量规划模型,从而在保证业务性能最优的同时帮助企业节省运营成本。
(6)业务与性能关联分析:应用故障以及性能问题发生时,往往会影响用户体验进而对业务造成影响,在智能运维方案里,通过建立业务关键指标与性能之间的关系模型,从海量的历史数据中分析性能与业务之间的非线性、多因素关系,从事后的影响评估、事前的What-if预测分析等多方面来考虑性能问题对业务的影响。比如通过分析IT性能提升与降低对业务好坏的量化影响来快速发现业务与IT性能之间的量化关系,分析IT性能对业务的影响程度。
(7)告警压缩:企业各种监控工具会产生海量的告警信息,这些告警信息中可能存在大量的冗余告警甚至形成告警风暴,对运维人员产生极大干扰。传统运维平台无法对告警风暴进行有效处理,而在智能运维中,我们针对短时、大量、甚至是持续的冗余告警,可以通过相似度、相关性判断对这些冗余告警进行合并,从而为运维人员提供有效的告警信息,大幅降低运维工作难度、提升运维KPI。
(8)智能化故障处理:传统运维管理中对故障的处理非常依赖运维人员的经验,但人的经验无法覆盖所有故障范围,运维人员经验不足可能造成运维效率低下或者产生错误决策。而在智能运维中,将API接入的实时监测结果或预测结果引入决策知识库(智慧大脑)智能生成决策建议,并根据实际结果及趋势判断采用的处理策略,可以是人工处理或者自动处理。故障智能处理可以减少问题排查的时间、大幅提高问题解决的效率,提升企业运维标准化程度。
总结和展望
运维数据作为AIOps的最基础构成,无疑起到了基石的作用。企业在实施AIOps时,必须从最开始就注重运维数据,建设数字化运维数据体系,践行数据文化与应用模式,面向业务与用户体验不断迭代与优化,才能把AIOps战略落到实处。