摘 要:本文提出了一种基于三层智能关联的监控框架。该框架专注于SaaS/PaaS/IaaS三层资源的统一管理和关联,利用智能关联技术自动识别资源实体并构建资源间的关联关系。采用多维时序指标算法和事件链法2种方法,针对异常检测和根因分析提供有效的解决方案。在北京电信CRM系统中的实际应用中验证了这些方法的有效性,成功诊断了多个异常情况,证明了该监控框架在实践中的可行性。该框架为各种IT系统监控提供新的思路和解决方案,提高资源管理的自动化水平和故障排除的效率,对企业的运维和管理有重要的价值。
关键词:IT监控;智能关联;SaaS;PaaS;IaaS;根因定位
中图分类号:TP 391 " " " " " " 文献标志码:A
随着IT系统数字化架构不断更新,其架构复杂度逐渐提升。当面临复杂多变的IT基础设施时,传统的IT监控系统面临很多挑战,由于数据增长速度快,因此监控范围变得更广。通过监控系统只能看到表面现象,不能看出潜在的问题。因此,智能关联技术的应用显得尤为重要。智能关联允许监控系统跨越不同层级的IT资源,通过关联分析和智能处理,将不同层级的资源关联起来。采用该技术可以通过监控系统快速追溯问题的根源。
1 三层智能关联的总体设计
本文搭建基于三层智能关联的一体化运维监控平台,该平台监控对象范围覆盖信息系统数据流转和业务处理全过程,从上到下依次为SaaS、PaaS、IaaS三层的全部软、硬设备和资源对象。平台通过配置数据库(CMDB)集中统一管理服务间调用关系、实体间的承载关系、设备的物理连接关系三类关系信息,具有告警收敛、异常检测以及根因定位等智能运维功能。系统架构及数据流图如图1所示。
2 三层智能关联的关键技术
2.1 引入基于大数据的自动管理CMDB技术
本文提供一种基于大数据进行自动关联的动态CMDB技术方法[1],采用多种措施将SaaS/PaaS/IaaS三层资源统一纳入管理范畴,自动构建三层之间的动态拓扑关联关系,为运维监控、安全管控以及资产管理等应用场景提供精准实时的资源配置管理数据。
2.1.1 重点举措一:实体发现
SaaS应用实体发现:通过调用链自动发现识别全量及未知服务,利用调用链追踪技术[2],监控并记录服务之间的调用关系,跟踪一个请求从一个服务到另一个服务的完整路径。利用Jaeger工具[3],对服务间的请求和响应进行监控和数据采集,捕捉请求所经过的每个服务并记录详细信息。运用识别算法和模式匹配技术,识别服务的关键信息。
PaaS组件实体发现:通过组件API接口,解析关键配置数据,自动发现组件基本信息。根据API返回数据的结构,准确提取出组件的关键信息。
IaaS资源实体发现:通过各类工具(SNMP、DPI等),自动扫描探测设备基础信息(IP/端口等)。通过发送特定的SNMP请求进行深度解析,获取设备的基础信息。
2.1.2 重点举措二:内部关联
SaaS之间关联:通过调用链自动发现服务与服务之间的调用关系,监控系统对收集的调用链数据进行聚合,将同一调用链的信息聚集为一个全局视图。PaaS之间关联:通过组件API接口,解析组件关系数据,自动发现组件关系信息。IaaS之间关联:通过网络流量自动解析,发现设备之间的访问关系,形成网络拓扑关系图。
2.1.3 重点举措三:外部关联
SaaS与PaaS关联:通过调用链自动发现服务所访问的组件实例信息。
SaaS与IaaS关联:自动发现服务所部署的容器信息。
PaaS与IaaS关联:通过组件API接口,解析组件部署数据,自动发现组件所部署的资源信息。
2.2 构建指标异常检测引擎,实现问题事件因果关系的根因判断
基于SaaS、PaaS、IaaS指标的采集和动态CMDB配置管理,将各层指标进行关联分析,调用根因定位模型,构建三层指标异常检测引擎[4]。系统整体设计如图2所示。该设计包括以下4个步骤。步骤一,指标实时监控。通过Agent对S/P/IaaS三层进行数据实时采集监控。步骤二,数据处理。对采集指标数据进行清洗/转换/计算。步骤三,指标关联分析。缩小指标异常的排查范围。步骤四,根因分析。根据时间因果、应用调用因果和事务因果证据综合判断出根因问题。
2.3 建立根因定位模型,快速定位故障根因
以具体业务场景的运维监控需求为输入,引入AI能力至监控排障的生产环节中,对服务层、组件层以及云资源层的监控指标进行整合,诊断故障[5]。
2.3.1 多维时序指标算法
层内扫描采用的多维时序指标算法是一种基于时间序列数据分析的方法,通过收集和分析多个维度的指标数据来识别问题的根因[6]。例如在SaaS层内进行多维时序指标算法的异常检测其基本步骤如下。
2.3.1.1 数据收集和预处理
收集与SaaS服务相关的多维度指标数据,例如服务调用性能指标数据、服务调用日志数据等。
预处理:对数据进行清洗、去除异常值以及归一化等预处理,例如对有明显边界且对异常值比较敏感的数据采用归一化方法[7],将数据线性地映射至指定的范围,如公式(1)所示。
" " " "(1)
式中:X′为输出结果;X为实际输入的值;min(X)为输入数据的最小值;max(X)为输入数据的最大值。
2.3.1.2 时序数据构建和特征提取
2.3.1.2.1 构建时序数据集
将收集的多维度指标数据按时间序列进行组织,形成时序数据集。以指标数据采集的时间点或时间段标记时间戳,进行时序排列。
2.3.1.2.2 特征提取
从时序数据中提取特征,例如均值、方差、最大值和最小值等。采用最小二乘法做线性趋势分析,以线性方程表示模型最小化观测值与模型预测值之间的残差平方和。将数据划分为自变量(X)和因变量(Y),设定线性模型,即Y=βX+α,计算回归系数(β和α),以最佳方式拟合数据。在自变量有很多的情况下,回归系数通过矩阵运算来计算,使用历史根因案例数据,检查残差分布,验证模型是否满足线性回归的假设。
2.3.1.3 异常检测算法应用
选择异常检测算法:根据数据特点和需求选择适当的异常检测算法,例如采用孤立森林算法,随机选择一个特征和该特征的一个随机值来划分数据。根据选定的特征和值,将数据分成2个部分。这个分割过程是递归进行的,直到达到指定的树的最大深度,通过重复上述过程构建多棵随机树。
异常点识别:应用选择的算法来识别在时序数据中的异常点或异常模式。计算每个数据点在每棵树中的路径长度,并计算平均路径长度。较短的平均路径长度表明这些点相对更容易被孤立,因此被标识为异常点。
3 根因定位和异常原因分析
确定异常点所在的关键指标,这些指标可能是当异常发生时出现显著变化的特定指标。分析关键指标的异常变化,并考虑指标之间的相关性或影响,找出可能导致异常的具体原因。例如采用皮尔逊相关系数,衡量2个变量之间的线性关系,如公式(2)所示。
(2)
式中:r为皮尔逊相关系数;x、y为2个变量的观测值;、为2个变量的平均值。
收集相关指标的时间序列数据,这些指标与异常事件相关联,对于每个指标来说,计算数据指标的均值与样本变量之间的协方差、标准差。将协方差除以变量的标准差的乘积,得到相关系数,根据相关系数的取值范围进行解释。接近1或-1的相关系数表示强相关性,0表示无相关性。
3.1 事件链法
跨层扫描使用事件链法,基于事件之间的因果关系来确定问题的根本原因。该方法通过追溯事件链,从起始事件逐步分析直至问题发生,以确定导致问题的根本因素。例如在SaaS与PaaS层间使用事件链法进行根因分析涉及以下步骤。
3.2 事件数据收集与准备
跨层事件收集:收集与SaaS层到PaaS层甚至底层基础设施相关的事件数据,例如服务请求、资源利用以及系统警报等。
3.3 事件链构建和关联分析
3.3.1 事件链构建
将收集的事件数据按时间序列进行组织,构建事件链,显示事件之间的关联性和时间顺序。构建事件关联度量,用于衡量事件之间的关联程度,如公式(3)所示。
(3)
式中:Support(A→B)为事件A、 事件B的关联度。
3.3.2 因果关系分析
分析事件之间的因果关系,使用CMDB的知识图谱方法来推断事件之间的因果关系[8],了解不同层级事件如何相互影响或导致其他事件发生。
3.4 根因推断和分析
追溯事件链:从SaaS层开始追溯事件链,对事件链进行路径分析,分析事件如何传播和影响,找到导致异常或问题的根本原因。关键事件识别:确定在事件链中影响最大、导致最终问题的关键事件。因果推断: 推断出不同层级事件之间的因果关系,确定引起SaaS层异常的可能PaaS层或底层基础设施事件。
4 应用效果
针对北京电信CRM的综合查询接口、产品信息查询等接口的调用量、系统成功率以及业务成功率等3个重要指标进行异常监控。监控内容包括调用量波动监控、接口调用业务成功率监控、接口调用系统成功率监控。采集的数据见表1。
以北京电信某日TeleDB的故障案例为例,当日数据库故障引起多条指标异常时,主要包括以下几种情况。指标异常一:账本使用查询AccuUseQry有4个发起方调用出现问题。指标异常二:北京PAA分布式数据库实例mysql_server,数据库主进程不存在。指标异常三:ACCTPG_DB欠费复机工单积压积压值为18。根因判定:当指标发生告警时,启动根因定位,诊断结果如下。北京PAAS域分布式数车实例XX.XX.XX.XX_mysql_server_XXXX,数据库主进程不存在,影响缴费复机、账本使用查询API等业务。
5 结语
本研究针对现有IT监控系统面临的挑战,提出了三层智能关联的监控框架,并在北京电信CRM系统中进行实际应用。通过构建一体化的运维监控平台,整合了SaaS、PaaS、IaaS三层资源的监控,并利用智能关联技术实现了指标的关联分析和根因定位。在监控系统中,对多种异常情况进行监控、诊断和根因定位,为故障排查提供便利。随着大数据、人工智能以及云计算等技术的不断进步,IT监控三层智能关联应用更广泛,可以实现监控画面的自动识别、异常检测及监控系统的弹性扩展、动态管理等。未来可以进一步引入机器学习和人工智能技术,构建智能化的决策支持系统,提供更精准的异常预测和自动化的故障处理能力。
参考文献
[1]王德成,郭永和,闫龙川,等.云计算环境下数字化业务全链路监测关键技术[J].网络安全技术与应用, 2023(6):72-74.
[2]王子勇,王焘,张文博,等.一种基于执行轨迹监测的微服务故障诊断方法[J].软件学报,2017,28(6):1435-1454.
[3]徐飞宇.基于调用链追踪的无服务器应用异常检测方法[J].信息技术与信息化,2022(5):5.
[4]孙健飞.基于无监督学习的接口异常检测及根因定位方法[J].江苏通信,2023,39(5):88-92.
[5]COOK D J, HOLDER L B. Mining graph data[M].New Jersey:
John Wiley amp; Sons, Inc, Hoboken, 2006.
[6]AGGARWAL C C, WANG H.Managing and mining graph data[M].
Boston:Springer Publishing Company, Incorporated, MA,2012.
[7]汤荣志.数据归一化方法对提升SVM训练效率的研究[D].济南:山东师范大学,2017.
[8]刘瑞宏,谢国强,苑宗港,等.基于知识图谱的智能故障诊断研究[J].邮电设计技术,2020(10):30-35.