没有合适的资源?快使用搜索试试~ 我知道了~
沙特国王大学学报DevOps中自动检测异常的框架Ahmed Hany Fawzy,Khaled Wassif,Hanan Moussa计算机和人工智能学院-开罗大学,埃及阿提奇莱因福奥文章历史记录:2022年10月30日收到2023年1月15日修订2023年2月9日接受2023年2月15日在线提供关键词:DevOpsAIOpsCI/CD异常检测发布管理机器学习A B S T R A C T基于日志的异常检测对于提高软件系统的可靠性和可用性非常重要,特别是那些使用DevOps发展的软件系统,因为在连续实践期间会生成大量日志。然而,DevOps从业者通常会在特定情况下手动检查和解释生成的数据和日志,作为故障排除过程的一部分。由于系统的规模和复杂性不断增加,这些数据和日志已经增长到无法管理的规模,因此这种手动检查过程既耗时又具有挑战性在本文中,我们介绍了DevOps异常检测框架(DADF)。DADF由两个组件组成,它们依赖于机器学习(ML)和人工智能(AI)来分析DevOps实践期间生成的数据和日志,以自动检测异常。第一个组件是生产前异常检测(ADBP),它旨在通过采用本地离群值因子(LOF)技术对在实现、构建、测试和部署期间收集的数据进行检测,然后在生产环境中运行第二个组件是分段后异常检测(ADAS),旨在通过采用向量自回归(VAR)技术对监控期间从系统日志、应用程序日志和性能指标(CPU和内存)收集的数据进行检测,从而在已发布系统运行后检测异常我们在两个不同的实际工业项目中对ADBP和ADAS进行了实验评估。实验结果表明,ADBP组件的准确率、精确率、召回率和F1得分分别为96%、87.5%、100%和93.3%,ADAS组件的归一化均方根误差(nRMSE)为2- 19%。因此,结果证明了DADF在帮助DevOps从业者和研究人员通过监控所有DevOps的实践来自动检测DevOps整个生命周期中的异常方面的有效性版权所有2023作者。由爱思唯尔公司出版代表沙特国王大学这是一个开放的访问CC BY-NC-ND许可证下的文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。1. 介绍持续交付(CD)是DevOps哲学和实践的重要概念部分,因为它允许组织从概念到产品快速增量地交付新功能。CD的目的是通过自动化软件生产线(CD)缩写:DADF,DevOps异常检测框架; ADBP,生产前异常检测; ADAS,分段后异常检测。*通讯作者。电子邮件地址:ahmed.hany. hotmail.com(A. Hany Fawzy)。沙特国王大学负责同行审查流水线),根据其阶段以及实现和支持这些阶段的工具,其复杂性可能会有所不同(Rowse 和Cohen, 2021 年; Shahin 等人, 2017年)。与CD一起,连续集成(CI)是DevOps方法中的关键概念CI的一个典型例子是不断地将开发人员所做的更改自动化测试从代码构建成功开始。如果自动化测试通过,更改将通过CI/CD管道集成到代码中,并发布到类似生产的环境中(Battina,2019; Capizzi等人,2019; Ebert等人,2016年)。问题. 用于实现和支持CI/CD管道的工具生成大量数据和各种格式的日志(Capizzi等人,2019年)。DevOps从业者通常在特定场合手动检查和解释生成的数据和日志,作为故障排除过程的一部分(Islam等人, 2021年)。然而,这种手动检查过程既耗时又费力,因为这些数据和日志已经增长到无法管理https://doi.org/10.1016/j.jksuci.2023.02.0101319-1578/©2023作者。由爱思唯尔公司出版代表沙特国王大学这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。制作和主办:Elsevier可在ScienceDirect上获得目录列表沙特国王大学学报杂志首页:www.sciencedirect.comA. Hany Fawzy,K.Wassif和H.穆萨沙特国王大学学报9由于系统的规模和复杂性不断增加,其规模也在不断扩大(Bosch和Bosch,2020年)。溶液因此,我们提出了一个框架,通过采用AIOps来自动检测DevOps中的异常,以使用机器学习(ML)和人工智能(AI)技术,并解决为AIOps构建AI/ML模型的挑战(Danget al., 2019年)。贡献这篇研究论文介绍了DevOps异常检测框架(DADF),以帮助DevOps从业者在整个DevOps生命周期中自动检测异常,图1.一、DevOps异常检测框架(DADF)。A. Hany Fawzy,K.Wassif和H.穆萨沙特国王大学学报10如图1.一、一方面,该框架可以在将系统部署到生产环境之前通过分析在连续实践(开发、测试、构建和部署)期间收集的数据来自动检测异常,以减轻生产问题。另一方面,它通过采用多变量时间序列方法来预测即将到来的值并将其与实际的地面真值进行比较,而不是广泛用于监视软件系统的传统固定规则和阈值方法,通过建立被监视系统的正常行为的基线来检测监视期间的异常。Organization.本文的其余部分组织如下。第二部分是对相关工作的综述。第3节分为三个小节:第3.1节介绍了所提出的框架及其组件的概述,以及本研究中使用的部署模型。第3.2节和第3.3节分别讨论第4节分别在第4.1节和第4.2节中介绍了ADBP和ADAS组件的结果和讨论,随后在第4.3中介绍了拟议的异常检测框架。最后,第五对本文进行了总结。2. 文献综述由于其提供的信息量大,在实际中被广泛用于各种软件系统的维护和诊断基于日志的异常检测已经成为流行的研究主题(Capizzi等人,2019; Du等人,2017;Farshchi等人,2018; He等人,2018;Huch等人,2018;伊斯兰教例如,2021; Khatuya等人,2018;Lou等人,2010; Sun等人,2016年; Yang等人,2021; Zhang等人, 2019年)。之前的几项研究已经采用ML和数据挖掘技术来检测异常并识别问题(Cândido等人,2021; Le和Zhang,2022; Li等人, 2020年)。基于日志的异常检测研究分为监督、无监督和半监督。如果有相当数量的标记训练数据可用,则采用基于监督日志的异常检测。例如,(Farshchi等人,2018年; Sun等人, 2016)提出了一种基于回归的方法,通过利用DevOps滚动升级零星操作的活动日志与操作对云资源的影响之间的相关性来检测云系统中的异常。(Huch等人, 2018)提出了机器学习分类器来预测系统的健康状态,并在一个工业案例研究中评估了他们的方法,该案例研究使用预定义的时间间隔“窗口”进行长时间DevOps操作。(Khatuya 等人,ADELE是一种经验数据驱动的方法,用于早期检测数据存储系统中的异常。ADELE从系统自身的历史中学习,以建立正常行为的基线,并在系统出现问题时提供准确的 (Zhang等人, 2019)引入LogRobust来提取日志事件的语义信息并识别不稳定的日志数据,然后利用基于注意力的双向长短期记忆(Bi-LSTM)模型来检测异常。虽然监督学习方法具有优越的准确性,但由于难以获得标记数据,它们在实际AIOps解决方案中的使用无监督和半监督的基于日志的异常检测技术比监督技术更实用,因为它们不太依赖于标记的训练数据。例如,(Lou等人, 2010)提出了不变量挖掘(IM),从日志事件计数向量中提取日志事件之间的关系。(Du等人,2017年)提出了Deeplog,它使用LSTM来预测下一个日志事件,并将其与当前的地面事实进行比较,以检测异常。 (He等人, 2018)提出了“Log3C”,提出了一种基于聚类的方法,利用日志事件序列和系统关键性能指标来识别在线服务系统的问题。 (Capizzi 等人, 2019 )引入了SVADS方法,通过基于预定义指标将当前传入版本与先前版本进行比较,来检测DevOps CI/CD管道中的异常。 (Yang等人, 2021)提出了PLELog,这是一种通过概率标签估计学习历史异常的半监督方法。(Islam等人,2021年)实施了一个自动化监控系统,该系统使用DevOps并利用深度学习神经网络(DNN)同时检测多个平台组件中的近实时异常,以克服效率降低的问题。构建高精度无监督模型的困难在于服务内部逻辑的复杂性和需要分析的大量数据(Danget al., 2019年)。3. 材料和方法3.1. 概述本研究中进行的工作遵循开发,分期和生产(DSP)模型(AllenJones,2022; Bass,2017)。在这个模型中,活动被分为三个部署环境。开发:为开发人员指定的环境,用于开发和测试新功能;一旦他们确信他们的代码已经准备好了,就将其转移到登台。Staging:与生产环境类似的环境,其主要目的是测试准备合并到系统中的新功能,以确保它们不会破坏现有的生产环境。生产:部署和发布预期版本以供最终用户使用的环境在开发和试运行活动期间生成的大量数据和日志在生产环境中的系统运行时生成的数据和日志也可以用于检测异常并降低系统中断的可能性。因此,本研究报告针对这两种情况。3.2. 生产前常规检测(ADBP)基于在开发和阶段环境中实施DevOps实践期间生成的数据的未标记性质,我们采用了本地离群值因子(LOF)(Breunig et al.,2000),这是一种无监督ML技术,用于计算多变量数据点与其邻居相比的局部密度偏差。ADBP模型是在与开发、构建和测试实践相关的活动完成后直接构建的,此时预期的软件发布已经准备好投入生产。因此,就在将发布移动到生产之前,可以触发额外的异常检测步骤,以根据以下度量来识别预期发布是否偏离现有分布:每次提交的代码行数、与测试总数相对应的失败测试数、与构建总数相对应的失败构建数、以及与交付总数相比较的失败交付数(部署到分级环境),如表1中所列,表1包含度量集及其衍生特征。实验设置:为了构建ADBP组件,首先我们使用●●●A. Hany Fawzy,K.Wassif和H.穆萨沙特国王大学学报11表1ADBP组件的配置和功能。DevOps Stage已提取功能而不是解决上述挑战的固定规则和阈值。实验设置:监测代码行数和提交测试失败的测试数量和测试构建失败的构建数和构建总数每次提交的代码行数失败的测试数与测试总数的比较失败的生成数与生成在 不 依 赖 阈 值 的 情 况 下 , 我 们 提 出 了 使 用 Python 及 其 包(Statsmodel,Pandas和NumPy)构建的ADAS组件,旨在根据被监控系统的历史构建系统行为的基线构建ADAS组件的高级步骤如图3所示,并在小节[3.3.1-3.3.6]中详细讨论部署(到登台环境)失败交付次数和交付未交付数量与交付案例研究:ADAS组件应用于为埃及公民服务的政府企业系统,由两个相互交互的子系统组成因此,2019)和MYSQL 数据库(DuBois ,2008 ),以便经由GitLab(“GitLab”,2022)提供的REST API收集自最后发布的软件版本以来的上述度量,并提取表1中列出的衍生特征以将它们保存到MYSQL数据库中,以便构建数据集,其中每个条目表示所有衍生特征的值的其次,我们使用Python开发了另一个工具,并利用了Python库scikit-learn(Paper and Paper,2020),它实现了LOF算法,并利用K折交叉验证来构建ADBP模型。在训练和构建ADBP模型后,将数据集中指示预期释放的最后一个条目与其邻居进行比较,以检查它是正常释放还是偏离其邻居(以前的分布)的异常。在运行将系统部署到生产中的管道作业之前,触发异常检测作业以运行第一个工具来收集预期发布的度量并将新条目插入到数据集中。然后将数据集传递到第二个工具进行归一化和预处理,以供ADBP模型使用。ADBP模型使用K-fold(10倍)交叉验证将数据集分为训练集和测试集,其中(K-1)倍用于训练,始终留下1倍用于测试。然后,在构建和训练ADBP模型后,识别预期发布的状态,如果没有检测到异常,则可以通过GitLab CI/ CD管道手动触发到生产作业然而,如果检测到异常,DevOps团队将被通知,并且应该执行额外的手动检查以确认它是真正的正异常,如图所示。图2展示了正常的DevOps阶段(具有白色背景的元素)以及用于支持这些阶段的工具,每个阶段旁边收集的指标,以及ADBP组件的建议步骤(具有黑色背景的元素)。案例分析:ADBP组件被应用于由埃及软件公司开发的工业市场Web应用程序,该应用程序支持埃及政府的数字化转型计划。这个市场应用程序是使用DevOps实践和以下工具集开发的:PHP-Laravel框架,MYSQL数据库,部署在Debian操作系统上的Docker(Anderson,2015),用于版本控制的GitLab和CI/CD管道。3.3. 正常检测后分级(ADAS)如今,复杂的和自动化的监控方法被广泛用于监控软件系统运行期间的健康状况然而,大多数现有的监测方法仍然依赖于基于资源利用阈值的观察到的健康指标的统计和分类(Islam 等人,2021;Pourmajidi等人, 2018年)。这种传统方法需要对系统内部有深入的专门知识和了解,以界定和设定监测规则和阈值。因此,有几项研究在软件操作(AIOps)期间采用了AI。其中一个发生的事情可能会影响另一个,这是一个共同点。复杂的情况下,限制了传统的监测系统的适用性。第一个子系统使用NodeJS构建,第二个子系统使用PHP-Laravel构建。这两个子系统都部署 在由CentOS-7操作 系统运行 的 Linux环境 中(Alibi 和Roy,2016)。3.3.1. 收集系统性能指标(CPU和内存)为了收集性能指标,使用Linux命令(AWK、Echo、Top和Grep)的组合,使用Crontab工具将CPU和内存使用情况输出到外部文件中,该工具被配置为每分钟运行一虽然Crontab工具提供了各种频率来运行性能指标日志记录命令,但我们选择了一分钟的频率来更好地支持其他解决方案,因为这是许多其他监控工具中使用的常见频率,特别是广泛使用的云监控工具AWSCloudWatch。3.3.2. 收集系统和应用程序日志在本文中,收集了各种类型的日志,以涵盖系统的所有组件。因此,我们收集了使用RSyslog实用程序记录的操作系统日志(图1)。4a)和应用日志(图4 b)。3.3.3. 语法分析日志分析的第一步也是最关键的一步是日志解析,这是一个自动化的过程,用于将原始文本日志转换为结构化的事件流(He等人,2016年)。为了实现自动日志解析的目标,我们使用了drain日志解析器作为解析工具,因为与Zhu等人评估的其他日志解析器相比,它显示出更高的准确性、效率和鲁棒性(Zhu et al.,2019年,在各种各样的日志。3.3.4. 导出度量(特征提取)并转换为时间序列与日志事件相反,诸如CPU和内存使用的性能指标以固定频率记录 , 通 常 为 一 分 钟 的 频 率 , 类 似 于 由 广 泛 使 用 的云 监 视 工 具CloudWatch提供的频率(Farshchi等人,2018年; Sun等人,2016年)。因此,必须映射性能指标和记录的事件。因此,为了促进映射过程,我们引入了预定义的固定5分钟时间间隔(窗口),如(Huch et al., 2018),并提取每个窗口期间每个服务器的日志事件计数。窗口的引入使我们能够克服在不同频率下工作的问题。此外,对于性能指标,我们使用相同的预定义窗口大小,并通过计算每个窗口的平均CPU和内存使用量来(表2a、2b和2c显示了衍生特征的样本)。A. Hany Fawzy,K.Wassif和H.穆萨沙特国王大学学报12图二、ADBP流程和工具链。3.3.5. 聚合和映射性能数据和日志指标为了避免将ADAS组件绑定到特定类型的日志或特定于域的上下文,我们导出了可以从大多数类型的日志中提取并将它们映射到性能度量。此外,在统一频率后,进行度量聚合以构建最终数据集。A. Hany Fawzy,K.Wassif和H.穆萨沙特国王大学学报13图三. ADAS流程和步骤。图4a. CentOS 7 RSyslog。A. Hany Fawzy,K.Wassif和H.穆萨沙特国王大学学报14图4b. Laravel应用程序日志。表2aCPU、内存衍生特性示例。时间CPU存储器2022年5月23日15:5028.6333338.22022年5月23日15:5527.468.282022年5月23日16:0032.028.26表2b应用程序日志派生功能的示例。时间App_error App_info2022年5月23日15:50 4 52022年5月23日15:55 2 32022年5月23日16:00 1 2表2c操作系统派生功能的示例。时间rsys_info rsys_notice2022年5月23日15:50 69 12022年5月23日15:55 273 02022年5月23日16:00 284 53.3.6. 基于多元时间序列回归的最后,VAR算法被用来检测监测过程中的异常,而不依赖于阈值。VAR是一种多变量预测算法,用于确定两个或多个时间序列之间的相关性。建立VAR模型的程序包括以下步骤[3.3.6.1-3.3.6.6]:3.3.6.1. 分析了时间序列的特征。为了准确地建立VAR模型,需要分析数据集中每个时间序列的特征如图5所示,其示出了用作测试集的多维时间序列的实际值,对于第一子系统(SS 1)和第二子系统(SS 2)的所有时间序列变量,可以观察到水平平稳趋势。注意,有很强的季节性。3.3.6.2. 因果关系检验。VAR的基础是数据集中的每个时间序列都会影响其他时间序列。这意味着我们可以用它的过去值和其他序列的值来预测这个序列在数据集中。我们采用Granger因果关系检验,检验回归方程中过去价值系数为零的原假设。简单地说,时间序列(X)不要引起另一个系列(Y)。因此,如果从检验中获得的p值小于0.05的显著性水平,则可以安全地拒绝零假设Johansen3.3.6.3. 平稳性检验。 VAR模型要求待预测的时间序列是平稳的时间序列,其特征(如方差和均值)不随时间变化。因此,我们采用了流行的增强Dickey-Fuller(ADF)检验(Mushtaq,2011),并利用差分ML技术将非平稳时间序列转换为平稳时间序列。3.3.6.4. 准备训练集和测试集。在分析数据集并满足构建VAR模型的先决条件后,将数据集分为两部分:用于训练模型的训练集和用于评估模型的测试集。我们选择了非随机抽样方法来分割数据集,因为这种方法通常用于时间序列,其中维护数据序列非常重要。因此,80%的数据集用于训练,20%用于测试.3.3.6.5. 训练模型。训练数据集用于在迭代拟合VAR模型的递增阶次并选择给出具有最低Akaike信息准则(AIC)统计量的模型的阶次之后训练VAR模型(Stock和Watson,2001)。3.3.6.6. 使用测试集评估模型。为了评估模型,我们运行它来预测与测试集大小相同的数据集,并将测试集与预测进行比较,以计算模型的准确性。4. 结果和讨论在本节中,我们将分别讨论第4.1节和第4.2中第4.3A. Hany Fawzy,K.Wassif和H.穆萨沙特国王大学学报15图五. VAR模型的实际多维时间序列。讨论了提议的DevOps异常检测框架(DADF)的总体贡献。4.1. ADBP结果和讨论于市场网络应用程序的案例研究中,ADBP组件的实验于二零二一年十一月初开始在此期间,收集了描述25种释放的数据集,如表3所示。图6显示了每个版本及其相应的标准化度量的值首先,收集了前10个连续版本的软件发布相关数据和日志,未经过ADBP模型处理,以满足执行无监督异常检测技术所需的大量观察的要求。其次,激活异常检测阶段,并开始在CI/CD管道中运行,如图2所示。对描述预期释放的条目进行评估,以确定其是异常释放还是正常释放。图7示出了在第25次释放之后从ADBP组件获得的输出。最后,为了评估ADBP模型,我们将从模型获得的输出与从表3ADBP数据集。ID日期每次提交失败构建未通过测试未能交付12021-11-010.3184800022021-11-15100032021-12-010.039234700042021-12-150.034491500.630.1152022-01-010.041916800062022-01-150.092463600.4072022-02-010.010323900082022-02-150.008827600092022-03-010.227597010102022-03-150.10882900.331112022-04-010.0157729000122022-04-150.269608000132022-05-010.0023151000142022-05-150.0156694000152022-06-010.179036100162022-06-150.135613000172022-07-010.15397400.170.5182022-07-150.0044608000192022-08-010.0021175000202022-08-150.114053000212022-09-010.0985714000222022-09-150.004046800.50232022-10-010.0787047000242022-10-150.10498000252022-11-010.07578720.600A. Hany Fawzy,K.Wassif和H.穆萨沙特国王大学学报16þ图六、每个版本的度量集(25个版本绘制在x轴上,其对应的度量值绘制在y轴上)。见图7。 ADBP输出(x轴上绘制了25个版本,y轴上绘制了其分类表4混淆矩阵:基于DevOps团队反馈的ADBP模型报告的结果。表5ADBP评价指标基于表4中的数据。评估指标公式得分准确度TP0.960精度P N公司简介0.875召回TPTPFFNF1-评分2ω精确度ω记忆1.0000.933DevOps团队表4列出了混淆矩阵和报告的总阳性(P)、总阴性(N)、真阳性(TP)、真阴性(TN)、假阳性(FP)和假阴性(FN)。表5列出了ADBP组分的结果。局限性和今后的工作。ADBP组件旨在仅关注异常。在异常情况下精确回忆如果没有异常检测,则向DevOps团队发送警报;否则,不发送警报,以使团队仅关注异常,并避免正常发布给他们带来过重负担。但是,假阴性的问题应在今后详细讨论。预测异常预测正常总真实异常(TP)7(FN)07真法线(FP)1(TN)1718总(P)8(N)1725A. Hany Fawzy,K.Wassif和H.穆萨沙特国王大学学报17表6实验中使用的数据集表7ADAS功能的nRMSE。收集的数据大小特征nRMSESS1_rsys_log12,616SS1_rsys_info 0.0688SS1_CPU和SS1_Memory2618SS1_rsys_notice 0.0828SS2_rsys_log142,385SS1_CPU 0.0285SS2_CPU和SS2_Memory2618SS1_Memory 0.1839SS2_app_log8887SS2_CPU 0.1353SS2_Memory 0.1309由于DevOps中异常检测应用的文献论证有限,特别是我们从使用DevOps实践开发的真实工业系统中然而,收集的数据集的大小仍然很小,因为跟踪同一项目的更多版本的生产需要花费大量时间。未来的研究应该考虑用更大的数据集进行实验。4.2. ADAS结果和讨论ADAS组件在服务埃及公民的政府企业系统案例研究中的试验于二零二二年五月开始,并于二零二二年七月完成。在此期间,我们遵循第3.3及其小节中描述的步骤:1. 收集系统性能指标(CPU和内存)、应用程序和系统日志。因此,对于第一个子系统(SS1),我们收集了系统性能指标和操作SS2_app_ERROR 0.6334SS2_app_INFO 0.5219SS2_rsys_info 0.1973SS2_rsys_notice 0.083系统日志(Rsys_log)。对于第二个子系统(SS2),除了收集系 统 性 能 指 标 外 , 我 们 还 收 集 了 Rsys_log 和 应 用 程 序 日 志(app_log)。表6列出了在连续43小时内从两个子系统收集的所有数据及其相应的大小。2. 使用引流日志解析器解析收集的日志3. 从解析的日志中派生其他指标表2a、2b和2c分别显示了性能指标、应用程序日志和系统日志的衍生特征的示例4. 聚合并映射派生特征与性能指标以构建数据集。5. 通过分析聚合特征的特性并测试它们之间的相互影响,得出聚合特征之间的相关性。见图8。 ADAS预测与实际。A. Hany Fawzy,K.Wassif和H.穆萨沙特国王大学学报186. 使用训练数据集训练ADAS模型。最后,为了评估模型,我们将测试集与预测集进行了比较,并计算了每个特征的归一化均方根误差(nRMSE),因为它们具有不同的值范围。图8示出了预测集与测试集(实际值)的对比。表7列出了每个功能的nRMSE基于所获得的结果,如表7所列,我们可以得出结论,除了SS2_app_ERROR和SS2_app_INFO显示出高错误率之外,大多数特征的预测准确度相对较高。然而,这些错误率可以在基线化期间通过用其对应的nRMSE扩大每个特征的预测值的范围来考虑ADAS组件的主要目标是使用ML通过预测下一个窗口的性能指标、应用程序日志和系统日志的值来为被监视系统的正常行为建立基线。然后,将基线值与实际值进行比较,在检测到异常的情况下向操作团队发送警报。值得注意的是,虽然我们在DevOps上下文中讨论ADAS组件,但它也可以在任何其他上下文中单独使用。局限性和今后的工作。尽管有许多数据集可用于基于日志的异常检测,但它们并不代表真实世界系统的全部特征。因此,ADAS实验是在从真实世界工业系统收集和构建的数据集上进行的,该系统由多个子系统组成,该子系统由部署在CentOS 7操作系统上的软件应用程序组成。未来的研究应该考虑试验一个更复杂的系统,具有更广泛的功能。ADAS组件利用排出日志解析器来解析应用程序和系统日志,因为它基于Zhu等人进行的评估研究显示出卓越的效率。 2019年)。然而,未来的研究可以利用不同的日志解析器后,评估其他日志解析器的时间消耗,特别是在大型日志。然而,选择适当的日志解析器可以提高ADAS组件的性能和速度,并使其能够在较小的窗口大小上运行。4.3. DevOps anormalydetection fragrance(DADF)本研究论文的主要贡献如图1所示,该图说明了结合ADBP和ADAS组件后的DevOps异常检测框架(DADF)。所提出的它还有助于异常检测、系统监控、DevOps和AIOps的研究领域,如前几节所述。5. 结论近年来,为了提高软件系统的可靠性和可用性,采用机器学习和人工智能技术对基于日志的然而,很少有文献涉及DevOps中的自动异常检测。此外,现有的研究仍然存在实际问题,因为它们要么依赖于大量手动标记的训练数据(监督),要么不满意的性能(无监督和半监督)。在本文中,我们介绍了 DevOps 异常检测框架(DADF),它由两个组件组成,这些组件依赖于AIOps概念,在所有DevOps实践的整个生命周期中自动检测异常第一个组件是生产前异常检测(ADBP),旨在检测异常在将预期版本部署到生产中之前尽早发布,以缓解生产问题。第二个组件是分段后异常检测(ADAS),它旨在通过预测性能指标、应用程序日志和系统日志的值,为被监视系统的正常行为建立基线,从而在系统监视期间检测异常。然后,在不依赖于固定规则或阈值的情况下,将基线值与实际值进行比较,以在异常检测的情况下向操作团队发送警报。我们分别在两个真实的工业项目中对ADBP和ADAS组件进行了实验评估。实验结果证明了DADF在检测DevOps生命周期中出现的异常方面的有效性。财务披露无报告。竞争利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作。引用不在场证明,M.,罗伊,B.,2016. CentOS 7 Linux服务器北京市恒源出版有限公司艾伦·琼斯2022年DSP模型[WWW文档]。网址https://www.cn.cnitprotoday.com/devops-and-software-development/development-staging-and-production-model(12.31.22访问)。安德森角2015. Docker [软件工程] IEEE Softw. 32,102-c3. 巴斯湖2017年。软件架构师和DevOpsIEEE Softw.35,8-10。Battina,D.S.,2019.基于机器学习的智能devops平台研究与设计。培训6.Bosch,N.,Bosch,J.,2020.在DevOps环境中进行机器学习的软件开发。2020年第46届Euromicro软件工程和高级应用会议(SEAA)。pp. 29比33Breunig,M.M.,Kriegel,H. P.,Ng,R.T.,Sander,J.,2000. LOF:识别基于密度的局部离群值,见:2000年ACM SIGMOD国际数据管理pp. 93比104Cândido,J.,Aniche,M.,van Deursen,A.,2021.基于日志的软件监控:系统映射研究。PeerJ计算Sci. 7,e489。Capizzi , A. , Distefano , S. , Araújo , L.J.P. , Mazzara , M. , 艾 哈 迈 德 , M. ,Bobrov,E.,2019. DevOps工具链中的异常检测。持续开发的软件工程方面和软件生产和部署的新范式国际pp. 37比51天 哪 , Y. , 林 昆 , 黄 , P. , 2019. AIOps : 现 实 世 界 的 挑 战 和 研 究 创 新 。 2019 年IEEE/ACM第41届软件工程国际会议:同伴会议录(ICSE-同伴)。pp. 四比五杜,M.,Li,F.,Zheng,G.,Srikumar,V.,2017. Deeplog:通过深度学习从系统日志中进行异常检测和诊断。2017年ACM SIGSAC计算机和通信安全会议pp. 公元1285- 1298年。DuBois,P.,2008. MySQL。培生教育德怀尔,GP,2015年。Johansen协整检验白皮书1Ebert,C.,加利亚多,G. Hernantes,J.,塞拉诺,北,2016. DevOps IEEE Softw. 33,94- 100。Farshchi,M.,Schneider,J. G.,韦伯岛,Grundy,J.,2018.使用日志和度量相关性分析进行云操作的度量选择和异常检测。J. Syst. Softw. 137,531-549。GitLab [WWW文档],2022.网址https://docs.gitlab.com/ee/api/(2022年12月31日访问)。他,P.,Zhu,J.,他,S.,李杰,Lyu,M.R.,2016.日志解析及其在日志挖掘中应用的评价研究。2016年第46届IEEE/IFIP独立系统和网络国际会议(DSN)。pp. 654-661他,S.,林昆,卢,J。-G.,张洪,Lyu,M.R.,Zhang,D.,中国农业科学院农业研究所所长,2018年通过日志分析识别2018年第26届ACM欧洲软件工程会议联合会议和软件工程基础pp. 六七成Huch,F.,Golagha,M.,彼得罗夫斯卡,A.,Krauss,A.,2018.软件系统中基于机器学习的运行时异常检测:工业评估。2018年IEEE软件质量评估机器学习技术研讨会(MaLTeSQuE)。pp. 13比18伊 斯 兰 教 , 理 学 硕 士 , Pourmajidi , W. , 张 , L. , Steinbacher , J. , 欧 文 , T. ,Miranskyy,A.,2021年大规模云平台中的异常检测。2021年IEEE/ACM第43届软件工程国际会议:软件工程实践(ICSE-SEIP)。pp. 150比159A. Hany Fawzy,K.Wassif和H.穆萨沙特国王大学学报19Khatuya,S.,Ganguly,N.,Basak,J.,巴尔德,M.,Mitra,B.,2018. Adele:事件日志的异常检测。 IEEE INFOCOM 2018-IEEE计算机通信会议。pp. 2114-2122。Le,V.H、张洪,2022年。基于日志的异常检测与深度学习:我们还有多远?第44届软件工程国际会议论文集。pp. 1356-1367年。李,Y.,Jiang,Z.M.,Li,H.,Hassan,A.E.,他,C.,黄河,巴西-地Zeng,Z.,王,M.,陈佩,2020年。超大规模云计算平台中节点故障预测:一种aiops解决方案。ACM Trans.软件。Eng. 美沙酮(TOSEM)29,1-24。卢,J。-G.,傅,Q,杨,S.,徐,Y.,李杰,2010年。从控制台日志中挖掘不变量用于系统问题检测。2010年USENIX年度技术会议(USENIX ATC 10)。穆什塔克河,巴西-地2011.增强迪基富勒试验。World J. Finance Investment Res. 1.Paper,D.,Paper,D.,2020. scikit-learn入门Scikit-Learn for Machine LearningApplications:Data Science Fundamentals with Python 1-35(Scikit-Learn forMachine Learning Applications:Data Science Fundamentals with Python 1Pourmajidi,W.,Steinbacher,J.,欧文,T.,Miranskyy,A.,2018.关于云监控的挑战。arXiv预印本arXiv:1806.05914。Rowse,M.,Cohen,J.,2021.南非软件环境中的DevOps调查。第54届夏威夷国际系统科学会议论文集。p. 6785沙欣,M.,巴巴尔,文学硕士,Zahedi,M.,Zhu,L.,中国科学院,2017年。超越持续交付:对持续部署挑战的实证调查在:2017 ACM/IEEEInternationalSymposiumonEmpiricalSoftwareEngineeringandMeasurement(ESEM)pp. 111-120Stauffer , M. , 2019. Laravel : Up& Running : A Framework for Building ModernPHPApps. O'ReillyMedia.Stock,J.H.,沃森,M.W.,2001.向量自回归。J. Econ. Perspect. 15,101- 115.Sun,D.,Fu,M.,Zhu,L.,中国科学院,Li,G.,卢,Q. 2016.使用公共云中的DevOps流性能指标和日志进行非侵入式异常检测:AWS案例研究。IEEE Trans.紧急情况Top. Comput. 4,278-289。杨湖,陈杰,王志,王伟,姜杰,Dong,X.,(中国科学院,中国地质研究所,北京,2003)张伟,2021.基于概率标签估计的半监督日志异常检测。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- VMP技术解析:Handle块优化与壳模板初始化
- C++ Primer 第四版更新:现代编程风格与标准库
- 计算机系统基础实验:缓冲区溢出攻击(Lab3)
- 中国结算网上业务平台:证券登记操作详解与常见问题
- FPGA驱动的五子棋博弈系统:加速与创新娱乐体验
- 多旋翼飞行器定点位置控制器设计实验
- 基于流量预测与潮汐效应的动态载频优化策略
- SQL练习:查询分析与高级操作
- 海底数据中心散热优化:从MATLAB到动态模拟
- 移动应用作业:MyDiaryBook - Google Material Design 日记APP
- Linux提权技术详解:从内核漏洞到Sudo配置错误
- 93分钟快速入门 LaTeX:从入门到实践
- 5G测试新挑战与罗德与施瓦茨解决方案
- EAS系统性能优化与故障诊断指南
- Java并发编程:JUC核心概念解析与应用
- 数据结构实验报告:基于不同存储结构的线性表和树实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功