AIOps事件管理解决方案:技术指南和全面的文献综述
YOUCEF REMIL,里昂大学INSA里昂,法国和信息学,法国肛门本二美,法国,法国,法国MEHDI,里昂大学INSA里昂,法国和信息,法国现代信息系统的管理提出独特的挑战,需要可扩展性,可靠性和效率处理广泛的数据流。传统的方法依赖于手动任务和基于规则的方法,但对于由IT系统生成的大量数据量和警报,它们被证明是低效的。操作系统的人工智能(AIOps)已经成为一种解决方案,利用机器学习和大数据等高级分析来增强事件管理。AIOps检测和预测事件,识别根本原因,并自动化治疗行动,提高质量和降低运营成本。然而,尽管有潜力,AIOps领域仍处于早期阶段,分散到多个部门,缺乏标准化的约定。研究和工业贡献的分配没有关于数据管理、目标问题、实施细节的一致框架
1.1随着新技术的出现和新的工作方法的采用,当今的IT环境不断变得越来越大和复杂。他们在确保效率和可靠性方面遇到了挑战。许多组织正在从产品交付过渡到服务发布,从传统的静态基础设施转移到本地、管理、私有和公共云环境的动态混合。由于设备的移动性、不断发展的运行时环境、频繁的更新、升级和在线维修等因素,这些系统越来越容易出现[66,73,196,220]故障。根据Lin等人[153]的说法,微软的Azure云系统每天大约有0.1%的服务器节点出现故障。这些故障可能导致系统可用性减少、财务损失和负面的用户体验[64]。国际数据公司(IDC)进行的调查显示,应用程序停机可能使企业损失高达55万美元的[52,88,108]。这些重大的损失触发了需要自主的和自我管理的系统来解决故障的根本原因和
在目前的情况下。此外,它们基于传统的工程思维方式,即强调手动执行重复任务和个别案例分析,通常依赖于bug复制步骤或详细的日志[73]。这些因素引发了人们对用一个能够从大量数据中学习的智能平台取代多种传统维护工具,以主动响应事件的兴趣。因此,各组织正转向空中行动来预防和减轻高影响的事件。AIOps一词最初是由高德纳公司在2017年推出的,目的是为了解决DevOps [205]中面临的人工智能挑战。最初,aIOp源于IT运营分析(ITOA)的概念。然而,随着人工智能在各个领域的日益普及,高德纳后来根据公众舆论重新定义了AIOps,将其描述为操作系统的人工智能[226]。AIOps涉及到应用大数据和机器学习技术,以智能地增强、加强和自动化各种IT操作[73,196,205]。AIOps从从服务、基础设施、一个
1.2在[205,226]的工作基础上,我们建议一个典型的空中作战系统包括六种基本能力,在事件管理程序中产生各种任务。感知。该功能集中于从多个数据源收集异构数据源的能力,包括日志和事件数据、关键性能指标、网络流量数据等,如网络、基础设施和应用程序。摄入过程必须同时适应实时流媒体和历史数据分析。此外,强大的数据可视化、查询和索引机制也是必要的元素。预防。这个过程需要积极识别潜在的故障并预测系统中的严重中断。预防突发事件对于维护一个健康和健全的系统至关重要。因此,实现一个持续监控系统运行状况并及时提醒管理员有关潜在问题的自动化系统是至关重要的。
AIOps事件管理解决方案:技术指南和全面的文献综述
表1.具有相应能力的可用AIOps定义
图1。探索以事件管理为重点的aiop分区的研究前景。检测。如果出现错误,系统就必须检测到相关的异常或症状。这是通过分析大量的感知和历史数据来识别时域或空间域,或两者都的异常内容来实现的。这个过程包括发现数据中的异常模式和检测超过静态阈值的灵活异常条件,同时最小化数据中的噪声,如假警报或冗余事件。位置。这个过程的目的是通过进行因果关系和相关性研究来识别和分析导致潜在事件的潜在根本原因和错误行为。本研究必须结合在一个统一的拓扑结构中,以确保其准确性。如果没有拓扑的上下文和约束,检测到的模式虽然有效,但可能没有帮助和分散注意力。通过从拓扑中的数据中推导出模式,可以减少循环模式和冗余模式的数量,可以突出显示数据中的异常情况,并可以识别隐藏的依赖关系。
行动这包括对问题进行反应性分类,并对一旦发现或预测的事件进行优先排序,以及根据当前的情况和过去已经提供的解决方案实施一系列纠正措施。然而,需要注意的是,自动愈合动作需要安全地执行。交互作用。它被称为人机智能交互。这涉及到智能模型和用户的专业知识之间的双向交互式分析。例如,该系统可以集成人类的专业知识来增强其模型,或者类似地利用模型的洞察力来丰富和更新用户的背景知识。此外,这还包括促进不同维护团队之间以及与客户之间的沟通和协作,促进有效的信息共享和有效的问题升级。利用这些能力,一些公司在过去几年中开始将AIOps工具作为商品分发,而一些技术巨头已经采用了AIOps算法的观点来维护他们的本地或云计算基础设施
尽管aiop提供了很好的好处,但作为一个研究和实践主题[46,196,216],它仍然是联合的和非结构化的。它涉及到来自涉及工业界和学术界的各种专业学科的各种贡献。由于其新颖性和跨学科性质,AIOps的贡献广泛分散,缺乏关于数据管理、目标领域、技术实施细节和需求的标准化分类约定。因此,发现和比较这些贡献已被证明是对[196]的挑战。由于缺乏统一的术语,因此缺乏指导方针和明确的路线图来解决aiop内部最先进的差距。事实上,虽然各种数据分割方法可能归因于AIOps的研究领域,但来自不同领域的发现,如机器学习,可能不一定适用于软件分析领域,如AIOps [165]。因此,在AIOp的范围内确定最佳分类,必须由IIOp的工业需求驱动,需要IT操作和AI的领域专业知识。它也很高。
我们的工作重点是为AIOps的知识库提供一个整体的框架,包括技术和研究方面。该框架被明确地设计用于解决在IT环境中熟练地管理事件的挑战。为了追求这一目标,我们的贡献可以概述如下:❏我们建立了一个统一的和不可知的术语来定义最相关的术语和关键概念,在现有的研究工作领域的事件管理(例如,硬件/软件故障管理、异常检测、错误分类、故障定位等)。此外,我们还阐述了这个过程的各个维度,包括维护协议级别。❏这一努力使我们揭示了现有的挑战和痛点,并定义了实现系统的AIOps方法所需的基本构件,以实现智能和有效的事件管理程序。这包括为数据管理提供技术规范
路线图。本文的结构如下。在第2节中,我们首先提供了突发事件管理过程的概述,其中包括明确的定义、术语、现有协议和有针对性的维护层。接下来,在第3节中,我们将深入研究使用AIOps来标准化事件管理过程,并强调在设计和实现AIOps解决方案时的重要考虑事项。接下来,第4节介绍了分类法,概述了其组件,如数据源和评估指标。接下来,在第5节中,我们将基于所建议的分类法,回顾在突发事件管理领域中最相关的工作。此外,第6节还介绍了用于评估AIOps方法的公开可用的AIOps数据集和基准测试。最后,本文最后进行了讨论,包括总结性评论、开放挑战和AIOps研究的改进领域。2.1术语和定义如下,我们的目标是为在事件管理和AIO中常用和可互换使用的各种术语提供一个易于理解的解释
图2。全面的时间顺序模式,突出了故障、错误、错误、异常、故障和中断之间的区别和关键联系。Salfner等人。[220]的工作,我们建立在他们的术语的基础上,提供一个正式的定义,有助于澄清这些术语在该领域的意义和相关性。与事件相关的各种术语,如故障、错误、错误、故障、停机和异常,已在该领域广泛使用,往往没有对其确切含义进行彻底的检查。例如,文献中最常用的术语是未能指示系统停机时间、硬件和软件崩溃、服务中断、网络流量干扰等。[138, 204, 287, 298].另一方面,其他一些方法使用术语中断来指代可以显著降低系统可用性和影响用户体验[64,293]的最严重的情况。然而,也有一些研究集中于异常检测,它处理识别数据中已经存在的异常行为,通常是在系统指标[68,189,256]中。在对根本原因的分析方面,大多数的研究都属于tAIOps事件管理解决方案:技术指南和全面的文献综述7个中断。中断是指系统、服务或网络对用户完全无法访问或不可用的时间。中断可能源于故障,如硬件故障或表明完全中断和所需服务不可用的软件故障。这些情况往往需要立即采取姑息措施来恢复正常手术,然后深入研究潜在问题进行治疗维持。错误错误表示系统偏离其正确和正常状态的实例,表明存在实际问题。这些错误可能并不总是对用户立即很明显,并且可以保持隐含,直到它们显示为失败,特别是如果它们没有在适当的时候被准确地检测到。或者,也可以通过使用专门的工具或为检测目的而设计的特定算法来识别错误。异常异常被定义为偏离预期状态的模式的意外或异常行为。他们代表伊雷古故障和错误。故障涉及到在硬件或软件组件中发现的异常或缺陷,并显示出不正确的行为,如果没有及时检测到,则可能会导致错误和故障。这些故障通常来自于系统组件内部的固有问题或弱点。它们可能由各种因素引起,包括最终用户或管理员的人为干预、设计缺陷、系统设置或处理不当。在软件开发中,错误表现为源于编码错误的bug。识别导致错误的错误经常发生在测试阶段。相反,在出现硬件或设置问题的情况下,故障会直接导致系统运行过程中的错误。警报。除了导致故障外,未检测到和检测到的错误和异常都可能导致系统偏离正常行为的副作用。这种情况通常被称为症状[97]。这些症状通常表现为警报报告,指示需要注意或采取行动的特定事件或条件。警报通常是根据与t相关联的预定义规则或阈值来触发的
并保持服务交付。因此,一个失败的内存分配本身可能不会导致服务故障或中断。但是,如果整个系统由于一系列错误或严重的资源消耗而无法正确地交付其服务,那么就会发生故障。此故障表明系统不再能够实现其预期的功能,从而影响其用户,并可能导致服务中断。在停机期间,系统将完全不可用,用户无法访问或利用其服务。在给定示例的上下文中,如果没有及时解决内存泄漏问题,可能会发生中断,导致严重的资源耗尽,导致系统无法操作。总之,故障的存在和随后的错误可以通过内存消耗或消耗等症状来表示。异常检测和监测可以帮助识别与预期的系统行为之间的偏差。可以生成警报,通知系统管理员或开发人员这些异常情况,从而允许他们采取纠正措施。如果错误和问题持续存在,并阻止系统交付i
2.2事件管理中的现有维护协议事件管理过程应遵守IT组织普遍接受的标准化维护协议和策略。这些协议规定了如何根据事件的发生时间和可用的物理和人力资源来处理事件。它们还根据可用性、性能和质量等关键因素来衡量事件的影响。这些协议可以作为评估图1中所示的各种突发事件管理任务的影响的框架。与之前一些基于这些协议[75,90]对不同的事件管理方法进行分类的工作不同,我们将它们作为事件管理任务如何帮助实现最优和有效的策略的抽象来呈现。我们不将这些协议视为事件管理过程中的独立阶段,因为我们的分类主要侧重于使用数据驱动的方法,以分阶段的方式处理报告、检测或预测的事件,从报告到缓解,而不管所选择的协议。不同的维护策略可以分为两类
AIOps事件管理解决方案:技术指南和全面的文献综述
图3。不同维护方案的行为方案。改编和改进。采取积极主动的方式,智能地计划和计划资产维护。与仅依赖历史数据的预测性维护不同,规定性维护结合了当前的设备条件,为维修或更换提供精确的说明。此外,处方性维持有能力推荐最佳的姑息治疗或治疗行动。2.3目标维护层主动维护和反应性诊断的方法包括对多层的其组件的全面检查。❏技术层或物理层。这一层主要于机器及其各种组件。例如,技术层将涉及监控应用程序服务器机器、数据库,以及诸如RAM、SWAP、处理器和磁盘使用情况、网络身份和连接器等元素。它还涉及监视和分析系统的硬件和基础设施方面(例如,物理组件的剩余有用的使用寿命)。此层中的检查示例包括执行等等。例如,维护团队可能会分析数据检索的响应时间或由应用程序执行的统计计算的准确性。❏业务层。该层评估对关键业务参数的控制。它涉及评估系统的关键指标和与业务相关的方面,以确保它与总体目标和目标相一致,如处理的事务数量、数据传输的成功率或对预定义的服务级别协议的遵守情况。3针对事件管理的自动化AIOPS解决方案应用AIOPS来彻底改变事件管理是一个复杂的过程,需要从传统和传统的实践转向完全自动化的过程。在真实的软件系统场景中设计、实现和部署机器学习模型并不是一项简单的任务,需要仔细考虑。为了充分发挥事件管理的综合智能解决方案的潜力,并将知识从人工智能模型转移到操作系统领域,有必要对当前的形势进行彻底的评估。钍
3.1在软件行业中,AIOps解决方案正在进行开发和采用,但它仍处于[73]的早期阶段。在现实场景中构建和实现AIOps解决方案继续从技术和非技术角度提出[46,65,66,161,208,216]的挑战。为了进一步阐述,我们概述了构建aiop解决方案所涉及的重大挑战。AIOps的新颖性。AIOps仍然是一个相对较新的、非结构化的研究领域,缺乏一个明确和全面的[73,196]定义。它涉及到系统和模式设计、软件工程、大数据、机器学习、分布式计算和信息可视化等多个研究领域。由于其新颖性和跨学科的性质,AIOps的贡献和方法被广泛地分散,缺乏关于数据管理、目标领域、实施细节和需求的标准化约定。因此,从这些不同的贡献中选择最合适的技术来实现特定的目标已经被证明是具有挑战性的。因此,它对i
AIOps事件管理解决方案:技术指南和全面的文献综述11的这些应用。因此,所使用的数据管理系统必须在跨不同数据类型的数据存储、摄入、压缩和查询能力方面表现出最佳的性能。数据规范化。AIOps模型有特定的数据需求,不同于一般机器学习模型中通常使用的数据需求。尽管主要的云服务收集了大量的遥测数据,每天或每月都可以达到tb甚至pb,但可用数据的质量和数量仍然不能满足AIOps解决方案的需求。Dang等人[73]、Levin等人[136]和Chen等人[65]的研究强调了使用来自不同来源的不同数据的挑战,这些数据通常具有不同的格式和结构,使标准化和清理变得复杂。这些数据可以是非结构化的,也可以是半结构化的,包括日志、执行跟踪、源代码、分层和图数据,以及网络流量,这需要特定的预处理技术。此外,AIOps的模型表明
人类与AIOps的互动。在这种情况下,我们面临的主要挑战之一是,很难改变IT从业者的思维方式,即放弃旧的维护例行程序,而采用全新的方法[73]。面向aiop的工程仍处于非常早期的阶段,在行业中为aiop建立公认的最佳实践和设计模式的建立还远未完成。有经验的从业者努力放弃他们基于适应和审计任务的手工活动。同时,AIOps解决方案的基本方法是围绕着从历史数据中学习来预测未来。另一方面,传统的工程思维模式,包括调查个别案例和基于日志数据重现事件步骤,但在大规模服务场景中是低效甚至不切实际的。事实上,当涉及到aiop时,从业者之间有两种不同的观点和观点。一方面,人们相信人工智能可以解决所有的挑战,但这种期望并不是基于现实的[73]。另一方面,一些人对机器学习模型的效率表示了怀疑
给Menzies[174]和Ray等人[207]。另一方面,如前所述,构建一个有监督的机器学习模型面临着与数据质量和可用性相关的挑战。这些挑战包括不平衡的数据集和缺乏明确的地面真实标签。为了解决这些问题,可以探索无监督或半监督的机器学习模型。然而,由于系统行为的动态特性以及客户的需求和基础设施的变化,获取足够的标签来理解“什么是异常”的模式被证明是困难的。此外,由于组件和服务[46,61,161]之间复杂的依赖关系和关系,开发高质量的无监督模型是困难的。Lou等人的[161]认为,服务事件的诊断不能仅仅依赖于学习模型,而是需要关于服务系统的大量知识。然而,在实践中,这种类型的知识往往组织不善或文件记录不足。此外,当涉及到复杂的特性引擎时,需要频繁的模型更新和在线学习对DevOps/MLOps实践带来了挑战
最后,机器学习模型的有效性往往与其复杂性成正比。高精度的模型,被称为黑箱模型,缺乏透明度,也不能解释其决策过程[98,182]。这种透明度的缺乏严重阻碍了行业从业人员对维护过程和工具行为的清晰理解。虽然利用健壮的模型来进行成本优化和任务自动化是有价值的,但它是以牺牲透明度为代价的。最近在AIOps领域的研究表明,可解释的模型,即使性能略低,也比高性能但不可解释的模型[165]更受青睐。因此,成功地自动化事件管理过程需要通过为模型决策提供解释来建立从业者的信任,并与可解释的人工智能(XAI)[98]的概念保持一致。实施事件管理程序的智能解决方案是一项复杂的任务,它并不仅仅依赖于实施和培训
图4。事件管理过程的全面的目标管理事件参考架构[13,205]图4概述了一个分层的AIOps参考架构,旨在支持智能事件管理过程,并无缝集成关键工具和模块。该体系结构适用于传统的内部应用程序环境和基于云的应用程序环境,为实现AIOps解决方案提供了一个灵活的框架。在下面,我们将简要概述该框架中所包含的基本模块,同时还涵盖了可用于执行底层任务的潜在可用的和现有的开源工具。数据收集和摄入。动态基础设施会生成大量的操作和性能数据,包括基础设施运行状况、应用程序性能、活动日志、事件通知、网络流量流、用户交互等。在此上下文中,理解各种数据源所使用的不同格式、协议和接口是至关重要的。提取监控数据通常需要在机器上安装和配置收集代理
这允许组织收集特定的用例数据,利用预先构建的数据操作库,并在其基础设施[43]中利用现有的BI工具。此外,自定义代理还提供了根据特定需求定制配置的灵活性。
为了以不同的格式处理来自不同来源的数据,必须实现一个数据输入器模块。该模块确保高效可靠地捕获和将接收数据聚合成系统易于理解的统一格式。该过程包括规范化数据结构,解决数据不一致性,并确保无缝互操作性。在某些情况下,在持久化转换之前,会执行适当的转换,以确保不同数据源之间的一致性和兼容性。这可能包括数据解析、规范化、过滤和浓缩。数据摄取可以通过各种工具和技术来实现,包括ETL(提取、转换、加载)流程、API集成或专门的数据摄取平台。有一系列工具和技术可用帮助AIOps系统中的数据摄取。Kafka [2]、Apache NiFi [3]、RabbitMQ [18]或RocketMQ [19]等开源平台提供了数据流、消息排队、数据路由和来自不同来源的可靠数据摄取的功能。此外,还有一些专有的/受管理的服务工具,如数据存储和组织。在aiop上下文中收集的数据可以分为结构化、半结构化和非结构化数据。这包括一系列数据类型,例如表示系统度量或性能指标的时间序列数据、事件日志、顺序模板、可以可视化为图形的网络流量,以及最终用户以文本形式报告的事件记录单。由于数据特征的多样性,使用“一刀切”的方法将所有这些数据存储在一个单一的仓库中变得具有挑战性。为了应对这一挑战,组织需要在将数据输入人工智能模型之前理解并组织这些数据。根据特定的需求和用例,可以使用存储和查询数据的不同方法。在历史上,数据持久性有两种主要选择:用于结构化数据的数据库管理系统(DBMS)和用于未处理数据的数据湖。DBMS解决方案,如关系数据库,是为具有预定义方案的结构化数据设计的。它们提供了预定义的结构,通过表、列和关系来加强数据的完整性,并提供了ACID prACID属性(原子性、一致性、隔离性、持久性),确保事务处理的一致性。另一方面,数据湖作为存储大量原始和未处理数据的存储库,容纳半结构化和非结构化数据。在数据湖和DBMS之间的选择取决于诸如数据量、多样性、速度、查询需求、数据治理需求以及组织的具体用例和目标等因素。在图4所示的aiop上下文中,以支持商业智能,机器学习以及大数据挖掘技术,同时维护这两种数据结构并将系统连接在一起通常是有益的。最好采用一种结合了数据湖和数据仓库的混合方法,这被称为数据湖室体系结构。这种方法允许组织利用每种方法的优势来满足其数据管理需求的不同方面。图5说明了数据仓库的架构,并突出显示了它的关键组件和工作流。数据仓库是一种集中式、功能强大和灵活的大数据存储体系结构,它集成了来自多个来源的各种数据类型,假设有不同的格式。它结合了数据仓库和数据湖的最佳特性。最初,数据湖开始是包含原始数据的数据湖的原始格式,对帐户大小或文件没有限制。然后根据分析、查询对原始数据进行处理、转换和结构化,从而创建数据集市存储库。为了实现这一点,数据湖屋利用了三角洲湖(建立在阿帕奇拼花和阿帕奇阿vro上)[7]等技术来提供sche等功能AIOps事件管理解决方案:技术指南和全面的文献综述数据。面向数据的人员和其他用户可以通过SQL或其他查询语言访问数据。数据仓库通过优化数据进行查询,同时保留原始数据进行探索,实现了快速和高效的数据检索和分析。人们提出了各种工具来有效地存储和组织数据,以满足不同的需求和用例。例如,弹性搜索[9]作为一个分布式和开源的搜索全文搜索引擎。通过一个HTTP web界面和无模式的JSON文档,弹性搜索提供了强大的搜索和索引功能。它擅长于管理AIOps系统中的日志和事件数据。类似地,InfldxDB[14]作为一个时间序列数据库,用于处理时间戳数据的高写入和查询负载。在AIOps系统中存储和分析度量和传感器数据的一个流行的选择。这些数据库配备了它们自己的领域特定语言(DSL)。InduldxDB使用语言流量,而弹性搜索使用ESQL。另一方面,点击库[8]最近已经成为一个开源的柱状数据库管理系统。它以它的幽灵脱颖而出数据可视化和监控。在数据管理中,无论数据是组织在数据集市存储库中还是保存在数据湖中,都需要通过数据可视化仪表板获得有价值的见解的潜力。这些工具在促进对数据的全面理解、支持深入检查和支持数据驱动的决策过程方面发挥着关键作用。这些可视化工具在于它们能够提供用户友好的界面,以及一系列可视化面板,包括多功能选项,如时间序列图、仪表、动态拓扑等,以满足从事监控活动的IT专业人员的各种需求。通过使用这些工具,我们获得了持续监控基础设施、诊断潜在问题、熟练识别各种组件之间的复杂关系、导航到事件的根本原因的能力,从而导致更快的解决时间。此外,工具
通过视觉表现异常行为来擅长异常检测,从而允许早期识别潜在的问题和威胁。在大量可用的数据可视化工具中,一些值得注意的开源选项包括Grafana [12]、Kibana [15]、元数据库[17]和Apache超集[4]。《智能突发事件管理程序》。AIOps的见解是建立在基于历史和实时数据的智能算法的基础上的,旨在提供可操作的模式和规定性的建议。这些见解旨在优化运营绩效、增强态势感知和改进事件管理程序。更具体地说,事件管理程序可以被视为一种系统的方法,它包括一个预定义的步骤和过程序列,无论事件是意外发生的还是可预见的。其主要目标是确保一致和协调的反应,无论事件报告的来源如何。这个过程涉及到使用健壮的人工智能算法来帮助报告和分类
时间敏感性也是至关重要的,所有的努力自然都指向最小化各种与时间相关的指标,包括检测的时间(TTD)1、参与的时间(TTE)、确认或诊断的时间(TTA),以及修复或减轻的时间(TTR)。此外,在成功解决事件后,就会开始进行必要的事件后审查,以记录对特定事件所采取的纠正或预防措施。这一阶段在确定所吸取的宝贵经验教训和主动预防今后发生类似事件方面也发挥着关键作用。3.3智能事件管理程序任务根据AIOps的事件管理能力,我们的建议旨在以标准化的方法组织维护程序,从创建到诊断到解决事件。这个重新设计的过程涉及一个连续的工作流程,指导事件通过四个定义良好的阶段,从最初的报告开始,并导致缓解和事后分析。实际上,其目标是将尽可能多的维护任务自动化,以优化报告时间、诊断和分诊时间以及解析时间。这种议定书不仅应有助于突发事件的解决,而且还应有助于记录维护情况。图6提供了这个分类2的一个清晰的可视化表示。需要注意的是,事件通常在所示的工作流程中经历许多子阶段,但可能有某些阶段可能不需要。在这种情况下,如果一个阶段被认为不必要或不能帮助解决报告的问题,则可以跳过该阶段。例如,如果一个事件被归类为一个男人下面,我们将从我们的角度对事件管理程序中的基本子类别进行了广泛的审查。我们的目标是检查针对这些阶段提出的最相关的方法。值得一提的是,以前的一些工作已经定义了与事件管理相关的某些术语。例如,Chen等人[66]将事件管理程序定义为一个三步过程,包括事件报告、分诊和缓解。然而,它们的定义仍然是通用的,并没有深入研究这些阶段的子类别,例如解决事件分类和相关性的问题。另一方面,Notaro等人[196]专注于研究失败,并开发了一种基于1的分类,也称为报告时间,包括人工报告和预测事件2为了清晰起见,检测包括检测和预测,而分类也包括重复数据删除。AIOps事件管理解决方案:技术指南和全面的文献综述图6。在aip背景下为事件管理提出的标准化端到端程序。积极主动和反应性的方法,重点是报告阶段。然而,他们的研究似乎忽略了其他重要的阶段。此外,Zhang[286]等人还提供了一个正式的定义,其中包括分配、优先级、故障定位和缓解等详细阶段。然而,本调查只集中于软件错误,并没有推广到其他特定领域。在这项工作中,我们的目标是在一个统一的分类法下涵盖所有这些用例,而不管使用了什么术语(失败、bug、异常等)。或者是特定的行业焦点。事件检测。事件检测是指识别和识别偏离正常操作的过程,表明存在异常行为或错误事件,这可能表明事件的发生(例如,错误或异常)。这个过程涉及到监视和分析各种数据源(例如,KPI指标、系统日志和用户报告)。例如,异常检测研究领域就属于这个子类别。事件预测。事件预测是指预测、预测或e的过程
评估其容错等级。相反,在线预测发生在系统运行时。它涉及软件恢复[26,246]等技术,解决资源耗尽问题,防止软件系统老化或累积故障导致的意外系统故障。此外,在线预测还包括估计系统的剩余使用寿命。这个类别还涉及到对硬件和软件故障的实时预测,并考虑到时间限制,如图7所示。要使预测有效,必须提前期(Δ𝑡𝑙()大于最小预警时间(Δ𝑡𝑤)。此外,只有当故障发生在一个被称为预测周期(Δ𝑡𝑝)的特定时间段内时,预测才被认为是有效的。为了做出这些预测,使用了达到一定时间范围(Δ𝑡𝑑)的数据,称为数据窗口大小。事件优先级。事件优先级化是根据事件的紧急性、影响和业务优先级对事件进行分类和排序的过程。它包括评估事件的严重程度,并考虑诸如af等因素事件分类。事件分类包括根据事件的不同特征、症状或影响对事件进行系统的分组和/或分类。这种分类过程建立了一个结构化的框架,从而加强了对事件的理解和有效的管理。这个过程可以看作是对分配过程的一种改进。事实上,有必要对事件进行分类,并尽可能根据事件各自的主题将其分配给特定的团队。例如,IT组织内的技术服务团队可能会负责解决与资源饱和、对CPU和SWAP产生重大需求的流程、安全漏洞等相关的事件。为了有效地管理这些问题,技术团队应该为每个主题分配知识渊博的人员。因此,一旦将事件分配给负责小组,最好及时确定适当的主题作为程序的初始步骤。令人惊讶的是,尽管事件分类在优化事件管理时间响应方面发挥了关键作用,但它还没有得到足够的覆盖图8。根本原因分析、异常检测和故障预测之间的区别。结果显示,有相当一部分(20%-40%)的错误报告被开发人员标记为副本。本研究为检测重复事件的必要性提供了具体的证据。这个过程也可以被认为是对事件分类问题的进一步细化。根本原因分析。根本原因分析(RCA),也称为根本原因诊断,在事件管理过程中起着关键作用。这是一个系统的过程,旨在调查和确定事件的潜在原因和促成因素,我们通常称之为故障。如图8所示,RCA深入研究了事件发生背后的基本故障,认识到它不一定源于错误的操作或有缺陷的源代码。它的目标不仅仅是解决这些症状。相反,它试图揭示和理解其根本原因,即使它起源于外部因素。在相关研究中,这一过程通常被称为故障定位[261]。这些研究的重点是确定具体的情况
可识别的和可实现的。在许多情况下,可以引用具有类似解决方案的历史事件,从而消除了使用复杂模型的需要。3.4为事件管理创建智能的、数据驱动的策略是一项复杂的工作,它超出了有效的机器学习技术的设计。仅仅依赖于高性能的机器学习或大数据挖掘模型并不足以成功地采用AIOps解决方案。为了确保这些解决方案的有效性,它们必须遵守一套既定的标准,我们称之为需求。从包括[73,143,161,165,296]在内的众多回顾研究中,我们编制了一份全面的需求清单,在构建AIOps解决方案时应该考虑,全部或部分考虑。这些要求如下:❏的可信性和人的循环。文献声称,随着AIOps [208]的引入,对员工技能和心态的要求会发生改变。在处理人工智能的需求时,人工活动倾向于转向适应和审计任务
可解释性。AIOps的解决方案应该优先考虑可解释性,即使它是以牺牲模型性能为代价的。在aiop中,当高性能模型缺乏可解释性时,可解释模型是首选。模型的透明度使用户能够充分理解、交互和推理关于模型提出的建议,这可以帮助从高级管理人员那里获得遵循这些建议的支持。然而,解释AIOps模型会有一定的约束和要求。在[165]的一项研究中,我们从三个关键维度上研究了影响AIOps模型解释的不同因素。(1)内部一致性,评估在相同设置下训练的AIOps模型的解释之间的相似性。它检查了当使用相同的数据和跨多个执行的实现来训练该模型时,从AIOps模型中获得的解释是否是可重复的。(2)外部一致性,主要关注来自于给定数据集上类似执行的AIOps模型的解释之间的相似性。直观上说,解释来自于
AIOps事件管理解决方案:技术指南和全面文献综述21表明,在一个时间段上训练的模型在不同时间段上测试时可能不能很好地推广。此外,训练数据的大小可能会影响模型的派生解释。❏的可伸缩性。AIOps解决方案必须有效地处理复杂IT环境中的大规模数据,在这些环境中需要大量的监控和日志数据。这些环境可以包含成千上万到数百万个组件,包括服务器、网络设备和应用程序。为了超越有效的建模和准确的结果,aiop解决方案在擅长高效摄取、存储和处理大数据的健壮架构中实现是至关重要的。可扩展的体系结构和数据处理框架在分配工作负载和有效处理大量数据方面发挥着关键作用。此外,当考虑所采用的方法时,AIOps解决方案应该利用可伸缩的计算技术,如分布式和联邦学习,如在[41,83,191],t等研究中所讨论的
稳健性AIOps解决方案需要建立在健壮和稳定的机器学习模型上,该模型能够处理广泛的场景,并表现出对数据模式的变化表现出弹性。这些模型应该被设计为对现实IT环境[73]中经常遇到的噪声和不完整的数据不那么敏感。为了保证建模过程的可靠性,可以采用稳健的预处理技术,如系统的数据清理和有效的计算方法。此外,AIOps解决方案必须能够检测和适应概念漂移,概念漂移指的是在动态IT环境[164]中发生的底层数据分布的变化。强大的算法和模型,比如那些基于在线学习的算法和模型,可以用来处理概念漂移,并在面对不断发展的数据模式[51,53]时保持最新的见解。此外,AIOps解决方案应该能很好地跨不同的IT环境。为了实现这一点,应该对不同和具有代表性的数据进行培训,这些数据捕获适用于各种场景的底层模式和关系。❏上下文评估。不像c
评估是同分布的,这在IT环境中可能不成立。真实世界的数据通常显示出时间依赖性、概念漂移和动态模式,这需要考虑这些因素的专门评估技术。要进行上下文评估,必须创建能够捕获生产环境特殊性的评估框架。这涉及到使用具有广泛场景的数据集,包括正常操作、各种类型的事件以及不同的环境和时间条件。除了数据集的选择之外,在上下文中评估AIOps解决方案还需要定义与所期望的结果和目标相一致的适当的评估指标和基准。(详见第4.2节)
评估是同分布的,这在IT环境中可能不成立。真实世界的数据通常显示出时间依赖性、概念漂移和动态模式,这需要考虑这些因素的专门评估技术。要进行上下文评估,必须创建能够捕获生产环境特殊性的评估框架。这涉及到使用具有广泛场景的数据集,包括正常操作、各种类型的事件以及不同的环境和时间条件。除了数据集的选择之外,在上下文中评估AIOps解决方案还需要定义与所期望的结果和目标相一致的适当的评估指标和基准。(详见第4.2节)
在本文中,我们提出了一个全面的分类法,对与事件管理的AIOps相关的研究工作进行了分类。我们的分类法包括主要的组,涵盖了在评估所审查方法的必要性、设计、实现和可重复性时必须考虑的各种因素。仔细选择这些类别使我们能够分析对事件管理有显著影响的aiop的许多维度。这些维度包括环境因素,它们代表了驱动和围绕拟议方法的环境因素。此外,我们还研究了与数据的特征及其表示相关的因素。此外,我们还探讨了必要的措施,以使数据易于进行有效的分析和解释。最重要的是对该方法的设计和实施的详细探索。我们阐明了所采用的方法,所采用的学习范式或研究领域,以及如何评估该方法。弗瑟姆
缺陷的发生。机器学习算法使用这些度量标准进行训练,以识别代码质量和缺陷之间的模式和关系。源代码的另一种表示是抽象语法树(AST)[253]的形式,它通过将代码分解为如表达式、语句、函数、类和变量等组成元素,来捕获代码的语法结构(图9)。源代码已经使用程序频谱[22,55]进行建模,它从特定的角度提供执行信息,如条件分支或无循环的过程内路径,并且在许多研究工作中也作为标记[193,282]的序列,特别是在软件故障定位中。拓扑结构(环境特征)。拓扑结构指的是IT环境的物理结构或逻辑结构。它包括关于系统内的组件、连接和空间关系的信息。这个数据源提供了对整个体系结构的有价值的见解,并提供了关于服务器、网络设备、数据库等的详细信息。此外,拓扑数据可能包括配置设置,sof
AIOps的事件管理解决方案:技术指南和一个全面的文献综述25个事件日志。日志由由软件应用程序、操作系统或设备生成的用来描述事件或操作的人类可读的语句组成。它们作为有价值的记录,提供有关系统活动、错误、警告和其他相关事件的信息。时间戳通常包含在日志中,以及诸如事件的来源、严重性和描述等详细信息。分析日志对于理解导致突发事件的事件序列、识别异常行为、调试问题以及最终确定根本原因至关重要。一般来说,日志是由源代码中的日志语句(例如,printf()、ingo().info())生成的半结构化文本。一旦收集了日志,就需要对它们进行解析,以便用于各种下游日志挖掘任务,如事件检测。解析日志消息是使日志可用于不同的分析任务的关键步骤。该过程的目的是通过提取常量部分和
图11。Eclipse中一个错误的事件报告示例。这个错误是关于产品Web工具平台[277]中缺少一个XML文件节点。在同一作者[130]的后续工作中,诸如源和目标目标地址或端口等静态特性被合并到流量数据中,以检测和诊断安全威胁和服务中断。另一种由[255]提出的方法,使用IDX文件格式进行加密流量分类,将网络流量表示为类似图像的结构。这个过程涉及到将网络流量数据映射到一个二维网格上,其中每个网格单元代表一个特定的流量属性,如数据包大小、源IP地址或目标端口。图像中每个像素的强度或颜色反映了在该特定位置上对应的网络流量属性的值或频率。此外,网络流量已经被[35]表示为图,以定位网络中性能问题的来源。通过观察网络基础设施中交换的数据包,构造了概率推理图。推理图的节点被分为r
这个问题,包括关于如何重现这个问题、堆栈跟踪(在出现bug的情况下)以及预期的行为的信息。报告中的其他评论可能包括讨论潜在的解决方案、诊断和根本原因分析,以及为减轻事件而采取的行动。附件还可能包括在内,如提议的补丁、测试用例或屏幕截图,以提供进一步的上下文和支持。此外,事件报告应提供历史背景,以利用来自类似事件的历史知识。从以前的事件中标记相关信息,可以应用在当前解决过程中获得的宝贵经验教训。处理事件报告的挑战在于数据类型的多样性,包括结构化、半结构化和非结构化数据。例如,环境特征通常以结构化或表格格式的[66,202,277]表示,而堆栈跟踪、有问题的SQL查询和用户跟踪则属于半结构化数据[202,286]的类别。另一方面,对问题的描述和评论部分专门用于分析和绘图
YOUCEF REMIL,里昂大学INSA里昂,法国和信息学,法国肛门本二美,法国,法国,法国MEHDI,里昂大学INSA里昂,法国和信息,法国现代信息系统的管理提出独特的挑战,需要可扩展性,可靠性和效率处理广泛的数据流。传统的方法依赖于手动任务和基于规则的方法,但对于由IT系统生成的大量数据量和警报,它们被证明是低效的。操作系统的人工智能(AIOps)已经成为一种解决方案,利用机器学习和大数据等高级分析来增强事件管理。AIOps检测和预测事件,识别根本原因,并自动化治疗行动,提高质量和降低运营成本。然而,尽管有潜力,AIOps领域仍处于早期阶段,分散到多个部门,缺乏标准化的约定。研究和工业贡献的分配没有关于数据管理、目标问题、实施细节的一致框架
1.1随着新技术的出现和新的工作方法的采用,当今的IT环境不断变得越来越大和复杂。他们在确保效率和可靠性方面遇到了挑战。许多组织正在从产品交付过渡到服务发布,从传统的静态基础设施转移到本地、管理、私有和公共云环境的动态混合。由于设备的移动性、不断发展的运行时环境、频繁的更新、升级和在线维修等因素,这些系统越来越容易出现[66,73,196,220]故障。根据Lin等人[153]的说法,微软的Azure云系统每天大约有0.1%的服务器节点出现故障。这些故障可能导致系统可用性减少、财务损失和负面的用户体验[64]。国际数据公司(IDC)进行的调查显示,应用程序停机可能使企业损失高达55万美元的[52,88,108]。这些重大的损失触发了需要自主的和自我管理的系统来解决故障的根本原因和
在目前的情况下。此外,它们基于传统的工程思维方式,即强调手动执行重复任务和个别案例分析,通常依赖于bug复制步骤或详细的日志[73]。这些因素引发了人们对用一个能够从大量数据中学习的智能平台取代多种传统维护工具,以主动响应事件的兴趣。因此,各组织正转向空中行动来预防和减轻高影响的事件。AIOps一词最初是由高德纳公司在2017年推出的,目的是为了解决DevOps [205]中面临的人工智能挑战。最初,aIOp源于IT运营分析(ITOA)的概念。然而,随着人工智能在各个领域的日益普及,高德纳后来根据公众舆论重新定义了AIOps,将其描述为操作系统的人工智能[226]。AIOps涉及到应用大数据和机器学习技术,以智能地增强、加强和自动化各种IT操作[73,196,205]。AIOps从从服务、基础设施、一个
1.2在[205,226]的工作基础上,我们建议一个典型的空中作战系统包括六种基本能力,在事件管理程序中产生各种任务。感知。该功能集中于从多个数据源收集异构数据源的能力,包括日志和事件数据、关键性能指标、网络流量数据等,如网络、基础设施和应用程序。摄入过程必须同时适应实时流媒体和历史数据分析。此外,强大的数据可视化、查询和索引机制也是必要的元素。预防。这个过程需要积极识别潜在的故障并预测系统中的严重中断。预防突发事件对于维护一个健康和健全的系统至关重要。因此,实现一个持续监控系统运行状况并及时提醒管理员有关潜在问题的自动化系统是至关重要的。
AIOps事件管理解决方案:技术指南和全面的文献综述
表1.具有相应能力的可用AIOps定义
图1。探索以事件管理为重点的aiop分区的研究前景。检测。如果出现错误,系统就必须检测到相关的异常或症状。这是通过分析大量的感知和历史数据来识别时域或空间域,或两者都的异常内容来实现的。这个过程包括发现数据中的异常模式和检测超过静态阈值的灵活异常条件,同时最小化数据中的噪声,如假警报或冗余事件。位置。这个过程的目的是通过进行因果关系和相关性研究来识别和分析导致潜在事件的潜在根本原因和错误行为。本研究必须结合在一个统一的拓扑结构中,以确保其准确性。如果没有拓扑的上下文和约束,检测到的模式虽然有效,但可能没有帮助和分散注意力。通过从拓扑中的数据中推导出模式,可以减少循环模式和冗余模式的数量,可以突出显示数据中的异常情况,并可以识别隐藏的依赖关系。
行动这包括对问题进行反应性分类,并对一旦发现或预测的事件进行优先排序,以及根据当前的情况和过去已经提供的解决方案实施一系列纠正措施。然而,需要注意的是,自动愈合动作需要安全地执行。交互作用。它被称为人机智能交互。这涉及到智能模型和用户的专业知识之间的双向交互式分析。例如,该系统可以集成人类的专业知识来增强其模型,或者类似地利用模型的洞察力来丰富和更新用户的背景知识。此外,这还包括促进不同维护团队之间以及与客户之间的沟通和协作,促进有效的信息共享和有效的问题升级。利用这些能力,一些公司在过去几年中开始将AIOps工具作为商品分发,而一些技术巨头已经采用了AIOps算法的观点来维护他们的本地或云计算基础设施
尽管aiop提供了很好的好处,但作为一个研究和实践主题[46,196,216],它仍然是联合的和非结构化的。它涉及到来自涉及工业界和学术界的各种专业学科的各种贡献。由于其新颖性和跨学科性质,AIOps的贡献广泛分散,缺乏关于数据管理、目标领域、技术实施细节和需求的标准化分类约定。因此,发现和比较这些贡献已被证明是对[196]的挑战。由于缺乏统一的术语,因此缺乏指导方针和明确的路线图来解决aiop内部最先进的差距。事实上,虽然各种数据分割方法可能归因于AIOps的研究领域,但来自不同领域的发现,如机器学习,可能不一定适用于软件分析领域,如AIOps [165]。因此,在AIOp的范围内确定最佳分类,必须由IIOp的工业需求驱动,需要IT操作和AI的领域专业知识。它也很高。
我们的工作重点是为AIOps的知识库提供一个整体的框架,包括技术和研究方面。该框架被明确地设计用于解决在IT环境中熟练地管理事件的挑战。为了追求这一目标,我们的贡献可以概述如下:❏我们建立了一个统一的和不可知的术语来定义最相关的术语和关键概念,在现有的研究工作领域的事件管理(例如,硬件/软件故障管理、异常检测、错误分类、故障定位等)。此外,我们还阐述了这个过程的各个维度,包括维护协议级别。❏这一努力使我们揭示了现有的挑战和痛点,并定义了实现系统的AIOps方法所需的基本构件,以实现智能和有效的事件管理程序。这包括为数据管理提供技术规范
路线图。本文的结构如下。在第2节中,我们首先提供了突发事件管理过程的概述,其中包括明确的定义、术语、现有协议和有针对性的维护层。接下来,在第3节中,我们将深入研究使用AIOps来标准化事件管理过程,并强调在设计和实现AIOps解决方案时的重要考虑事项。接下来,第4节介绍了分类法,概述了其组件,如数据源和评估指标。接下来,在第5节中,我们将基于所建议的分类法,回顾在突发事件管理领域中最相关的工作。此外,第6节还介绍了用于评估AIOps方法的公开可用的AIOps数据集和基准测试。最后,本文最后进行了讨论,包括总结性评论、开放挑战和AIOps研究的改进领域。2.1术语和定义如下,我们的目标是为在事件管理和AIO中常用和可互换使用的各种术语提供一个易于理解的解释
图2。全面的时间顺序模式,突出了故障、错误、错误、异常、故障和中断之间的区别和关键联系。Salfner等人。[220]的工作,我们建立在他们的术语的基础上,提供一个正式的定义,有助于澄清这些术语在该领域的意义和相关性。与事件相关的各种术语,如故障、错误、错误、故障、停机和异常,已在该领域广泛使用,往往没有对其确切含义进行彻底的检查。例如,文献中最常用的术语是未能指示系统停机时间、硬件和软件崩溃、服务中断、网络流量干扰等。[138, 204, 287, 298].另一方面,其他一些方法使用术语中断来指代可以显著降低系统可用性和影响用户体验[64,293]的最严重的情况。然而,也有一些研究集中于异常检测,它处理识别数据中已经存在的异常行为,通常是在系统指标[68,189,256]中。在对根本原因的分析方面,大多数的研究都属于tAIOps事件管理解决方案:技术指南和全面的文献综述7个中断。中断是指系统、服务或网络对用户完全无法访问或不可用的时间。中断可能源于故障,如硬件故障或表明完全中断和所需服务不可用的软件故障。这些情况往往需要立即采取姑息措施来恢复正常手术,然后深入研究潜在问题进行治疗维持。错误错误表示系统偏离其正确和正常状态的实例,表明存在实际问题。这些错误可能并不总是对用户立即很明显,并且可以保持隐含,直到它们显示为失败,特别是如果它们没有在适当的时候被准确地检测到。或者,也可以通过使用专门的工具或为检测目的而设计的特定算法来识别错误。异常异常被定义为偏离预期状态的模式的意外或异常行为。他们代表伊雷古故障和错误。故障涉及到在硬件或软件组件中发现的异常或缺陷,并显示出不正确的行为,如果没有及时检测到,则可能会导致错误和故障。这些故障通常来自于系统组件内部的固有问题或弱点。它们可能由各种因素引起,包括最终用户或管理员的人为干预、设计缺陷、系统设置或处理不当。在软件开发中,错误表现为源于编码错误的bug。识别导致错误的错误经常发生在测试阶段。相反,在出现硬件或设置问题的情况下,故障会直接导致系统运行过程中的错误。警报。除了导致故障外,未检测到和检测到的错误和异常都可能导致系统偏离正常行为的副作用。这种情况通常被称为症状[97]。这些症状通常表现为警报报告,指示需要注意或采取行动的特定事件或条件。警报通常是根据与t相关联的预定义规则或阈值来触发的
并保持服务交付。因此,一个失败的内存分配本身可能不会导致服务故障或中断。但是,如果整个系统由于一系列错误或严重的资源消耗而无法正确地交付其服务,那么就会发生故障。此故障表明系统不再能够实现其预期的功能,从而影响其用户,并可能导致服务中断。在停机期间,系统将完全不可用,用户无法访问或利用其服务。在给定示例的上下文中,如果没有及时解决内存泄漏问题,可能会发生中断,导致严重的资源耗尽,导致系统无法操作。总之,故障的存在和随后的错误可以通过内存消耗或消耗等症状来表示。异常检测和监测可以帮助识别与预期的系统行为之间的偏差。可以生成警报,通知系统管理员或开发人员这些异常情况,从而允许他们采取纠正措施。如果错误和问题持续存在,并阻止系统交付i
2.2事件管理中的现有维护协议事件管理过程应遵守IT组织普遍接受的标准化维护协议和策略。这些协议规定了如何根据事件的发生时间和可用的物理和人力资源来处理事件。它们还根据可用性、性能和质量等关键因素来衡量事件的影响。这些协议可以作为评估图1中所示的各种突发事件管理任务的影响的框架。与之前一些基于这些协议[75,90]对不同的事件管理方法进行分类的工作不同,我们将它们作为事件管理任务如何帮助实现最优和有效的策略的抽象来呈现。我们不将这些协议视为事件管理过程中的独立阶段,因为我们的分类主要侧重于使用数据驱动的方法,以分阶段的方式处理报告、检测或预测的事件,从报告到缓解,而不管所选择的协议。不同的维护策略可以分为两类
AIOps事件管理解决方案:技术指南和全面的文献综述
图3。不同维护方案的行为方案。改编和改进。采取积极主动的方式,智能地计划和计划资产维护。与仅依赖历史数据的预测性维护不同,规定性维护结合了当前的设备条件,为维修或更换提供精确的说明。此外,处方性维持有能力推荐最佳的姑息治疗或治疗行动。2.3目标维护层主动维护和反应性诊断的方法包括对多层的其组件的全面检查。❏技术层或物理层。这一层主要于机器及其各种组件。例如,技术层将涉及监控应用程序服务器机器、数据库,以及诸如RAM、SWAP、处理器和磁盘使用情况、网络身份和连接器等元素。它还涉及监视和分析系统的硬件和基础设施方面(例如,物理组件的剩余有用的使用寿命)。此层中的检查示例包括执行等等。例如,维护团队可能会分析数据检索的响应时间或由应用程序执行的统计计算的准确性。❏业务层。该层评估对关键业务参数的控制。它涉及评估系统的关键指标和与业务相关的方面,以确保它与总体目标和目标相一致,如处理的事务数量、数据传输的成功率或对预定义的服务级别协议的遵守情况。3针对事件管理的自动化AIOPS解决方案应用AIOPS来彻底改变事件管理是一个复杂的过程,需要从传统和传统的实践转向完全自动化的过程。在真实的软件系统场景中设计、实现和部署机器学习模型并不是一项简单的任务,需要仔细考虑。为了充分发挥事件管理的综合智能解决方案的潜力,并将知识从人工智能模型转移到操作系统领域,有必要对当前的形势进行彻底的评估。钍
3.1在软件行业中,AIOps解决方案正在进行开发和采用,但它仍处于[73]的早期阶段。在现实场景中构建和实现AIOps解决方案继续从技术和非技术角度提出[46,65,66,161,208,216]的挑战。为了进一步阐述,我们概述了构建aiop解决方案所涉及的重大挑战。AIOps的新颖性。AIOps仍然是一个相对较新的、非结构化的研究领域,缺乏一个明确和全面的[73,196]定义。它涉及到系统和模式设计、软件工程、大数据、机器学习、分布式计算和信息可视化等多个研究领域。由于其新颖性和跨学科的性质,AIOps的贡献和方法被广泛地分散,缺乏关于数据管理、目标领域、实施细节和需求的标准化约定。因此,从这些不同的贡献中选择最合适的技术来实现特定的目标已经被证明是具有挑战性的。因此,它对i
AIOps事件管理解决方案:技术指南和全面的文献综述11的这些应用。因此,所使用的数据管理系统必须在跨不同数据类型的数据存储、摄入、压缩和查询能力方面表现出最佳的性能。数据规范化。AIOps模型有特定的数据需求,不同于一般机器学习模型中通常使用的数据需求。尽管主要的云服务收集了大量的遥测数据,每天或每月都可以达到tb甚至pb,但可用数据的质量和数量仍然不能满足AIOps解决方案的需求。Dang等人[73]、Levin等人[136]和Chen等人[65]的研究强调了使用来自不同来源的不同数据的挑战,这些数据通常具有不同的格式和结构,使标准化和清理变得复杂。这些数据可以是非结构化的,也可以是半结构化的,包括日志、执行跟踪、源代码、分层和图数据,以及网络流量,这需要特定的预处理技术。此外,AIOps的模型表明
人类与AIOps的互动。在这种情况下,我们面临的主要挑战之一是,很难改变IT从业者的思维方式,即放弃旧的维护例行程序,而采用全新的方法[73]。面向aiop的工程仍处于非常早期的阶段,在行业中为aiop建立公认的最佳实践和设计模式的建立还远未完成。有经验的从业者努力放弃他们基于适应和审计任务的手工活动。同时,AIOps解决方案的基本方法是围绕着从历史数据中学习来预测未来。另一方面,传统的工程思维模式,包括调查个别案例和基于日志数据重现事件步骤,但在大规模服务场景中是低效甚至不切实际的。事实上,当涉及到aiop时,从业者之间有两种不同的观点和观点。一方面,人们相信人工智能可以解决所有的挑战,但这种期望并不是基于现实的[73]。另一方面,一些人对机器学习模型的效率表示了怀疑
给Menzies[174]和Ray等人[207]。另一方面,如前所述,构建一个有监督的机器学习模型面临着与数据质量和可用性相关的挑战。这些挑战包括不平衡的数据集和缺乏明确的地面真实标签。为了解决这些问题,可以探索无监督或半监督的机器学习模型。然而,由于系统行为的动态特性以及客户的需求和基础设施的变化,获取足够的标签来理解“什么是异常”的模式被证明是困难的。此外,由于组件和服务[46,61,161]之间复杂的依赖关系和关系,开发高质量的无监督模型是困难的。Lou等人的[161]认为,服务事件的诊断不能仅仅依赖于学习模型,而是需要关于服务系统的大量知识。然而,在实践中,这种类型的知识往往组织不善或文件记录不足。此外,当涉及到复杂的特性引擎时,需要频繁的模型更新和在线学习对DevOps/MLOps实践带来了挑战
最后,机器学习模型的有效性往往与其复杂性成正比。高精度的模型,被称为黑箱模型,缺乏透明度,也不能解释其决策过程[98,182]。这种透明度的缺乏严重阻碍了行业从业人员对维护过程和工具行为的清晰理解。虽然利用健壮的模型来进行成本优化和任务自动化是有价值的,但它是以牺牲透明度为代价的。最近在AIOps领域的研究表明,可解释的模型,即使性能略低,也比高性能但不可解释的模型[165]更受青睐。因此,成功地自动化事件管理过程需要通过为模型决策提供解释来建立从业者的信任,并与可解释的人工智能(XAI)[98]的概念保持一致。实施事件管理程序的智能解决方案是一项复杂的任务,它并不仅仅依赖于实施和培训
图4。事件管理过程的全面的目标管理事件参考架构[13,205]图4概述了一个分层的AIOps参考架构,旨在支持智能事件管理过程,并无缝集成关键工具和模块。该体系结构适用于传统的内部应用程序环境和基于云的应用程序环境,为实现AIOps解决方案提供了一个灵活的框架。在下面,我们将简要概述该框架中所包含的基本模块,同时还涵盖了可用于执行底层任务的潜在可用的和现有的开源工具。数据收集和摄入。动态基础设施会生成大量的操作和性能数据,包括基础设施运行状况、应用程序性能、活动日志、事件通知、网络流量流、用户交互等。在此上下文中,理解各种数据源所使用的不同格式、协议和接口是至关重要的。提取监控数据通常需要在机器上安装和配置收集代理
这允许组织收集特定的用例数据,利用预先构建的数据操作库,并在其基础设施[43]中利用现有的BI工具。此外,自定义代理还提供了根据特定需求定制配置的灵活性。
为了以不同的格式处理来自不同来源的数据,必须实现一个数据输入器模块。该模块确保高效可靠地捕获和将接收数据聚合成系统易于理解的统一格式。该过程包括规范化数据结构,解决数据不一致性,并确保无缝互操作性。在某些情况下,在持久化转换之前,会执行适当的转换,以确保不同数据源之间的一致性和兼容性。这可能包括数据解析、规范化、过滤和浓缩。数据摄取可以通过各种工具和技术来实现,包括ETL(提取、转换、加载)流程、API集成或专门的数据摄取平台。有一系列工具和技术可用帮助AIOps系统中的数据摄取。Kafka [2]、Apache NiFi [3]、RabbitMQ [18]或RocketMQ [19]等开源平台提供了数据流、消息排队、数据路由和来自不同来源的可靠数据摄取的功能。此外,还有一些专有的/受管理的服务工具,如数据存储和组织。在aiop上下文中收集的数据可以分为结构化、半结构化和非结构化数据。这包括一系列数据类型,例如表示系统度量或性能指标的时间序列数据、事件日志、顺序模板、可以可视化为图形的网络流量,以及最终用户以文本形式报告的事件记录单。由于数据特征的多样性,使用“一刀切”的方法将所有这些数据存储在一个单一的仓库中变得具有挑战性。为了应对这一挑战,组织需要在将数据输入人工智能模型之前理解并组织这些数据。根据特定的需求和用例,可以使用存储和查询数据的不同方法。在历史上,数据持久性有两种主要选择:用于结构化数据的数据库管理系统(DBMS)和用于未处理数据的数据湖。DBMS解决方案,如关系数据库,是为具有预定义方案的结构化数据设计的。它们提供了预定义的结构,通过表、列和关系来加强数据的完整性,并提供了ACID prACID属性(原子性、一致性、隔离性、持久性),确保事务处理的一致性。另一方面,数据湖作为存储大量原始和未处理数据的存储库,容纳半结构化和非结构化数据。在数据湖和DBMS之间的选择取决于诸如数据量、多样性、速度、查询需求、数据治理需求以及组织的具体用例和目标等因素。在图4所示的aiop上下文中,以支持商业智能,机器学习以及大数据挖掘技术,同时维护这两种数据结构并将系统连接在一起通常是有益的。最好采用一种结合了数据湖和数据仓库的混合方法,这被称为数据湖室体系结构。这种方法允许组织利用每种方法的优势来满足其数据管理需求的不同方面。图5说明了数据仓库的架构,并突出显示了它的关键组件和工作流。数据仓库是一种集中式、功能强大和灵活的大数据存储体系结构,它集成了来自多个来源的各种数据类型,假设有不同的格式。它结合了数据仓库和数据湖的最佳特性。最初,数据湖开始是包含原始数据的数据湖的原始格式,对帐户大小或文件没有限制。然后根据分析、查询对原始数据进行处理、转换和结构化,从而创建数据集市存储库。为了实现这一点,数据湖屋利用了三角洲湖(建立在阿帕奇拼花和阿帕奇阿vro上)[7]等技术来提供sche等功能AIOps事件管理解决方案:技术指南和全面的文献综述数据。面向数据的人员和其他用户可以通过SQL或其他查询语言访问数据。数据仓库通过优化数据进行查询,同时保留原始数据进行探索,实现了快速和高效的数据检索和分析。人们提出了各种工具来有效地存储和组织数据,以满足不同的需求和用例。例如,弹性搜索[9]作为一个分布式和开源的搜索全文搜索引擎。通过一个HTTP web界面和无模式的JSON文档,弹性搜索提供了强大的搜索和索引功能。它擅长于管理AIOps系统中的日志和事件数据。类似地,InfldxDB[14]作为一个时间序列数据库,用于处理时间戳数据的高写入和查询负载。在AIOps系统中存储和分析度量和传感器数据的一个流行的选择。这些数据库配备了它们自己的领域特定语言(DSL)。InduldxDB使用语言流量,而弹性搜索使用ESQL。另一方面,点击库[8]最近已经成为一个开源的柱状数据库管理系统。它以它的幽灵脱颖而出数据可视化和监控。在数据管理中,无论数据是组织在数据集市存储库中还是保存在数据湖中,都需要通过数据可视化仪表板获得有价值的见解的潜力。这些工具在促进对数据的全面理解、支持深入检查和支持数据驱动的决策过程方面发挥着关键作用。这些可视化工具在于它们能够提供用户友好的界面,以及一系列可视化面板,包括多功能选项,如时间序列图、仪表、动态拓扑等,以满足从事监控活动的IT专业人员的各种需求。通过使用这些工具,我们获得了持续监控基础设施、诊断潜在问题、熟练识别各种组件之间的复杂关系、导航到事件的根本原因的能力,从而导致更快的解决时间。此外,工具
通过视觉表现异常行为来擅长异常检测,从而允许早期识别潜在的问题和威胁。在大量可用的数据可视化工具中,一些值得注意的开源选项包括Grafana [12]、Kibana [15]、元数据库[17]和Apache超集[4]。《智能突发事件管理程序》。AIOps的见解是建立在基于历史和实时数据的智能算法的基础上的,旨在提供可操作的模式和规定性的建议。这些见解旨在优化运营绩效、增强态势感知和改进事件管理程序。更具体地说,事件管理程序可以被视为一种系统的方法,它包括一个预定义的步骤和过程序列,无论事件是意外发生的还是可预见的。其主要目标是确保一致和协调的反应,无论事件报告的来源如何。这个过程涉及到使用健壮的人工智能算法来帮助报告和分类
时间敏感性也是至关重要的,所有的努力自然都指向最小化各种与时间相关的指标,包括检测的时间(TTD)1、参与的时间(TTE)、确认或诊断的时间(TTA),以及修复或减轻的时间(TTR)。此外,在成功解决事件后,就会开始进行必要的事件后审查,以记录对特定事件所采取的纠正或预防措施。这一阶段在确定所吸取的宝贵经验教训和主动预防今后发生类似事件方面也发挥着关键作用。3.3智能事件管理程序任务根据AIOps的事件管理能力,我们的建议旨在以标准化的方法组织维护程序,从创建到诊断到解决事件。这个重新设计的过程涉及一个连续的工作流程,指导事件通过四个定义良好的阶段,从最初的报告开始,并导致缓解和事后分析。实际上,其目标是将尽可能多的维护任务自动化,以优化报告时间、诊断和分诊时间以及解析时间。这种议定书不仅应有助于突发事件的解决,而且还应有助于记录维护情况。图6提供了这个分类2的一个清晰的可视化表示。需要注意的是,事件通常在所示的工作流程中经历许多子阶段,但可能有某些阶段可能不需要。在这种情况下,如果一个阶段被认为不必要或不能帮助解决报告的问题,则可以跳过该阶段。例如,如果一个事件被归类为一个男人下面,我们将从我们的角度对事件管理程序中的基本子类别进行了广泛的审查。我们的目标是检查针对这些阶段提出的最相关的方法。值得一提的是,以前的一些工作已经定义了与事件管理相关的某些术语。例如,Chen等人[66]将事件管理程序定义为一个三步过程,包括事件报告、分诊和缓解。然而,它们的定义仍然是通用的,并没有深入研究这些阶段的子类别,例如解决事件分类和相关性的问题。另一方面,Notaro等人[196]专注于研究失败,并开发了一种基于1的分类,也称为报告时间,包括人工报告和预测事件2为了清晰起见,检测包括检测和预测,而分类也包括重复数据删除。AIOps事件管理解决方案:技术指南和全面的文献综述图6。在aip背景下为事件管理提出的标准化端到端程序。积极主动和反应性的方法,重点是报告阶段。然而,他们的研究似乎忽略了其他重要的阶段。此外,Zhang[286]等人还提供了一个正式的定义,其中包括分配、优先级、故障定位和缓解等详细阶段。然而,本调查只集中于软件错误,并没有推广到其他特定领域。在这项工作中,我们的目标是在一个统一的分类法下涵盖所有这些用例,而不管使用了什么术语(失败、bug、异常等)。或者是特定的行业焦点。事件检测。事件检测是指识别和识别偏离正常操作的过程,表明存在异常行为或错误事件,这可能表明事件的发生(例如,错误或异常)。这个过程涉及到监视和分析各种数据源(例如,KPI指标、系统日志和用户报告)。例如,异常检测研究领域就属于这个子类别。事件预测。事件预测是指预测、预测或e的过程
评估其容错等级。相反,在线预测发生在系统运行时。它涉及软件恢复[26,246]等技术,解决资源耗尽问题,防止软件系统老化或累积故障导致的意外系统故障。此外,在线预测还包括估计系统的剩余使用寿命。这个类别还涉及到对硬件和软件故障的实时预测,并考虑到时间限制,如图7所示。要使预测有效,必须提前期(Δ𝑡𝑙()大于最小预警时间(Δ𝑡𝑤)。此外,只有当故障发生在一个被称为预测周期(Δ𝑡𝑝)的特定时间段内时,预测才被认为是有效的。为了做出这些预测,使用了达到一定时间范围(Δ𝑡𝑑)的数据,称为数据窗口大小。事件优先级。事件优先级化是根据事件的紧急性、影响和业务优先级对事件进行分类和排序的过程。它包括评估事件的严重程度,并考虑诸如af等因素事件分类。事件分类包括根据事件的不同特征、症状或影响对事件进行系统的分组和/或分类。这种分类过程建立了一个结构化的框架,从而加强了对事件的理解和有效的管理。这个过程可以看作是对分配过程的一种改进。事实上,有必要对事件进行分类,并尽可能根据事件各自的主题将其分配给特定的团队。例如,IT组织内的技术服务团队可能会负责解决与资源饱和、对CPU和SWAP产生重大需求的流程、安全漏洞等相关的事件。为了有效地管理这些问题,技术团队应该为每个主题分配知识渊博的人员。因此,一旦将事件分配给负责小组,最好及时确定适当的主题作为程序的初始步骤。令人惊讶的是,尽管事件分类在优化事件管理时间响应方面发挥了关键作用,但它还没有得到足够的覆盖图8。根本原因分析、异常检测和故障预测之间的区别。结果显示,有相当一部分(20%-40%)的错误报告被开发人员标记为副本。本研究为检测重复事件的必要性提供了具体的证据。这个过程也可以被认为是对事件分类问题的进一步细化。根本原因分析。根本原因分析(RCA),也称为根本原因诊断,在事件管理过程中起着关键作用。这是一个系统的过程,旨在调查和确定事件的潜在原因和促成因素,我们通常称之为故障。如图8所示,RCA深入研究了事件发生背后的基本故障,认识到它不一定源于错误的操作或有缺陷的源代码。它的目标不仅仅是解决这些症状。相反,它试图揭示和理解其根本原因,即使它起源于外部因素。在相关研究中,这一过程通常被称为故障定位[261]。这些研究的重点是确定具体的情况
可识别的和可实现的。在许多情况下,可以引用具有类似解决方案的历史事件,从而消除了使用复杂模型的需要。3.4为事件管理创建智能的、数据驱动的策略是一项复杂的工作,它超出了有效的机器学习技术的设计。仅仅依赖于高性能的机器学习或大数据挖掘模型并不足以成功地采用AIOps解决方案。为了确保这些解决方案的有效性,它们必须遵守一套既定的标准,我们称之为需求。从包括[73,143,161,165,296]在内的众多回顾研究中,我们编制了一份全面的需求清单,在构建AIOps解决方案时应该考虑,全部或部分考虑。这些要求如下:❏的可信性和人的循环。文献声称,随着AIOps [208]的引入,对员工技能和心态的要求会发生改变。在处理人工智能的需求时,人工活动倾向于转向适应和审计任务
可解释性。AIOps的解决方案应该优先考虑可解释性,即使它是以牺牲模型性能为代价的。在aiop中,当高性能模型缺乏可解释性时,可解释模型是首选。模型的透明度使用户能够充分理解、交互和推理关于模型提出的建议,这可以帮助从高级管理人员那里获得遵循这些建议的支持。然而,解释AIOps模型会有一定的约束和要求。在[165]的一项研究中,我们从三个关键维度上研究了影响AIOps模型解释的不同因素。(1)内部一致性,评估在相同设置下训练的AIOps模型的解释之间的相似性。它检查了当使用相同的数据和跨多个执行的实现来训练该模型时,从AIOps模型中获得的解释是否是可重复的。(2)外部一致性,主要关注来自于给定数据集上类似执行的AIOps模型的解释之间的相似性。直观上说,解释来自于
AIOps事件管理解决方案:技术指南和全面文献综述21表明,在一个时间段上训练的模型在不同时间段上测试时可能不能很好地推广。此外,训练数据的大小可能会影响模型的派生解释。❏的可伸缩性。AIOps解决方案必须有效地处理复杂IT环境中的大规模数据,在这些环境中需要大量的监控和日志数据。这些环境可以包含成千上万到数百万个组件,包括服务器、网络设备和应用程序。为了超越有效的建模和准确的结果,aiop解决方案在擅长高效摄取、存储和处理大数据的健壮架构中实现是至关重要的。可扩展的体系结构和数据处理框架在分配工作负载和有效处理大量数据方面发挥着关键作用。此外,当考虑所采用的方法时,AIOps解决方案应该利用可伸缩的计算技术,如分布式和联邦学习,如在[41,83,191],t等研究中所讨论的
稳健性AIOps解决方案需要建立在健壮和稳定的机器学习模型上,该模型能够处理广泛的场景,并表现出对数据模式的变化表现出弹性。这些模型应该被设计为对现实IT环境[73]中经常遇到的噪声和不完整的数据不那么敏感。为了保证建模过程的可靠性,可以采用稳健的预处理技术,如系统的数据清理和有效的计算方法。此外,AIOps解决方案必须能够检测和适应概念漂移,概念漂移指的是在动态IT环境[164]中发生的底层数据分布的变化。强大的算法和模型,比如那些基于在线学习的算法和模型,可以用来处理概念漂移,并在面对不断发展的数据模式[51,53]时保持最新的见解。此外,AIOps解决方案应该能很好地跨不同的IT环境。为了实现这一点,应该对不同和具有代表性的数据进行培训,这些数据捕获适用于各种场景的底层模式和关系。❏上下文评估。不像c
评估是同分布的,这在IT环境中可能不成立。真实世界的数据通常显示出时间依赖性、概念漂移和动态模式,这需要考虑这些因素的专门评估技术。要进行上下文评估,必须创建能够捕获生产环境特殊性的评估框架。这涉及到使用具有广泛场景的数据集,包括正常操作、各种类型的事件以及不同的环境和时间条件。除了数据集的选择之外,在上下文中评估AIOps解决方案还需要定义与所期望的结果和目标相一致的适当的评估指标和基准。(详见第4.2节)
评估是同分布的,这在IT环境中可能不成立。真实世界的数据通常显示出时间依赖性、概念漂移和动态模式,这需要考虑这些因素的专门评估技术。要进行上下文评估,必须创建能够捕获生产环境特殊性的评估框架。这涉及到使用具有广泛场景的数据集,包括正常操作、各种类型的事件以及不同的环境和时间条件。除了数据集的选择之外,在上下文中评估AIOps解决方案还需要定义与所期望的结果和目标相一致的适当的评估指标和基准。(详见第4.2节)
在本文中,我们提出了一个全面的分类法,对与事件管理的AIOps相关的研究工作进行了分类。我们的分类法包括主要的组,涵盖了在评估所审查方法的必要性、设计、实现和可重复性时必须考虑的各种因素。仔细选择这些类别使我们能够分析对事件管理有显著影响的aiop的许多维度。这些维度包括环境因素,它们代表了驱动和围绕拟议方法的环境因素。此外,我们还研究了与数据的特征及其表示相关的因素。此外,我们还探讨了必要的措施,以使数据易于进行有效的分析和解释。最重要的是对该方法的设计和实施的详细探索。我们阐明了所采用的方法,所采用的学习范式或研究领域,以及如何评估该方法。弗瑟姆
缺陷的发生。机器学习算法使用这些度量标准进行训练,以识别代码质量和缺陷之间的模式和关系。源代码的另一种表示是抽象语法树(AST)[253]的形式,它通过将代码分解为如表达式、语句、函数、类和变量等组成元素,来捕获代码的语法结构(图9)。源代码已经使用程序频谱[22,55]进行建模,它从特定的角度提供执行信息,如条件分支或无循环的过程内路径,并且在许多研究工作中也作为标记[193,282]的序列,特别是在软件故障定位中。拓扑结构(环境特征)。拓扑结构指的是IT环境的物理结构或逻辑结构。它包括关于系统内的组件、连接和空间关系的信息。这个数据源提供了对整个体系结构的有价值的见解,并提供了关于服务器、网络设备、数据库等的详细信息。此外,拓扑数据可能包括配置设置,sof
AIOps的事件管理解决方案:技术指南和一个全面的文献综述25个事件日志。日志由由软件应用程序、操作系统或设备生成的用来描述事件或操作的人类可读的语句组成。它们作为有价值的记录,提供有关系统活动、错误、警告和其他相关事件的信息。时间戳通常包含在日志中,以及诸如事件的来源、严重性和描述等详细信息。分析日志对于理解导致突发事件的事件序列、识别异常行为、调试问题以及最终确定根本原因至关重要。一般来说,日志是由源代码中的日志语句(例如,printf()、ingo().info())生成的半结构化文本。一旦收集了日志,就需要对它们进行解析,以便用于各种下游日志挖掘任务,如事件检测。解析日志消息是使日志可用于不同的分析任务的关键步骤。该过程的目的是通过提取常量部分和
图11。Eclipse中一个错误的事件报告示例。这个错误是关于产品Web工具平台[277]中缺少一个XML文件节点。在同一作者[130]的后续工作中,诸如源和目标目标地址或端口等静态特性被合并到流量数据中,以检测和诊断安全威胁和服务中断。另一种由[255]提出的方法,使用IDX文件格式进行加密流量分类,将网络流量表示为类似图像的结构。这个过程涉及到将网络流量数据映射到一个二维网格上,其中每个网格单元代表一个特定的流量属性,如数据包大小、源IP地址或目标端口。图像中每个像素的强度或颜色反映了在该特定位置上对应的网络流量属性的值或频率。此外,网络流量已经被[35]表示为图,以定位网络中性能问题的来源。通过观察网络基础设施中交换的数据包,构造了概率推理图。推理图的节点被分为r
这个问题,包括关于如何重现这个问题、堆栈跟踪(在出现bug的情况下)以及预期的行为的信息。报告中的其他评论可能包括讨论潜在的解决方案、诊断和根本原因分析,以及为减轻事件而采取的行动。附件还可能包括在内,如提议的补丁、测试用例或屏幕截图,以提供进一步的上下文和支持。此外,事件报告应提供历史背景,以利用来自类似事件的历史知识。从以前的事件中标记相关信息,可以应用在当前解决过程中获得的宝贵经验教训。处理事件报告的挑战在于数据类型的多样性,包括结构化、半结构化和非结构化数据。例如,环境特征通常以结构化或表格格式的[66,202,277]表示,而堆栈跟踪、有问题的SQL查询和用户跟踪则属于半结构化数据[202,286]的类别。另一方面,对问题的描述和评论部分专门用于分析和绘图