随着我行业务快速发展,运维人员面对的是日益复杂的系统架构以及海量的IT运维数据。数据中心运维管理难度和重要性日渐凸显,对业务连续性要求和运维服务质量的要求也不断提高,迫切需要建设一套科学、高效的运维支持体系,能够帮助我行运维管理部门在事前能够迅速感知故障产生,提前发现风险隐患点,事中能够结合不断学习结合专家经验合理编排产生的大量告警数据,推荐最可能的故障根因,让运维人员能在最短时间内聚焦到真正需要关注的告警上,提高运维能力,发掘运维潜在风险。
我行希望依托解决方案完成智能运维的转型升级,能够实现采集来自主机、数据库、中间件、业务应用等维度的海量指标数据(100W监控对象),以及实时采集金融机构统一告警平台的海量告警数据(日均10W+条告警)。一方面在主机、数据库、中间件、业务应用的指标数据上,通过智能分析的算法引擎构建基线预测模型来实现对各类指标数据的异常检测和容量预测,通过算法学习业务周期性规律,基线异常检测提前感知业务异常,以及业务系统存在的性能隐患。另一方面接入行内的统一告警数据,使用算法能力结合专家经验构建智能诊断模型,对接入的告警数据识别疑似故障场景,在场景内部对告警数据进行分层分类,标签化处理,对故障发生时的海量告警进行标签化展示,结合专家经验推荐故障根因,降低故障发生时告警噪音,提高故障排查效率。
动态基线标签分析流程,是整个解决方案实施验证的过程中,根据动态基线效果不断总结优化出来根据指标基线分类的结果使用不同的检测方式,应用不同类的算法套餐,以及根据分类的结果调整对应的告警策略。应用该分析流程主要解决大量指标数据不同的数据质量,不同的形态,以及指标数据中包含不同的业务属性带来人工无法精细化维护的问题,通过不同角度的分类,如数据饱和度,数据的高低频,指标数据业务时间段,周期波动情况对大批量的指标数据进行分类聚合,人工再对动态基线分类后的结果分批治理,大大提高动态基线调优分析的效率。
多指标异常检测(Composite Alerting),智能预警与根因诊断平台简称组合告警是指将多个单指标告警信息进行整合和关联,以便更准确地识别和响应复杂系统中的问题。在本方案中,这种方法的创新点主要体现在以下几个方面:
综合视角:组合告警不仅仅是将多个指标简单叠加,而是通过分析不同指标之间的关系(如业务指标与基础架构指标),提供更全面的系统健康视图。
相关性分析:使用统计方法或机器学习技术来识别不同指标之间的相关性,从而提高告警的准确性和相关性。
因果推断:通过分析告警之间的时间序列关系和依赖性,帮助确定导致多个指标异常的根本原因。
影响分析:评估一个告警事件对其他系统和指标的可能影响,从而提供更深入的故障分析和决策支持。
自适应调整:根据系统的实时表现和历史学习,动态调整告警的阈值和基线,以适应系统的变化和提高告警的适应性。
预测性告警:利用历史数据和趋势分析,预测未来的告警事件,实现主动式维护和风险管理。
在故障发生时产生大量的告警时,诊断工具可以在算法层面识别新奇告警,周期性告警,高发告警,以及对告警进行标签化整理聚类,将大量繁杂的告警进行标签化降维,同时结合持续学习的专家经验库推荐故障的根因告警。
新奇告警捕捉:利用孤立森林算法或其他先进的异常检测技术,模型能够识别不符合已知行为模式的告警,即新奇告警,这些告警可能指示系统中的未知问题或潜在的故障点。
周期性告警预测:通过时间序列分析,模型能够识别告警的周期性模式,并预测其可能出现的频率和时间点,从而实现预测性维护,减少系统故障对业务的影响。
告警优先级评估:基于告警的严重性、影响范围和紧急程度,模型能够为告警分配优先级,确保关键告警能够得到及时处理。
多维特征提取:从告警数据中提取多维特征,如告警级别、发生时间、发生频率等,用于告警的标签化。这有助于运维人员更准确地理解告警信息,提高故障处理的效率。
聚类分析:使用聚类算法,如K-means或DBSCAN,对告警进行聚类,将相似的告警归为一类,简化告警管理。这有助于运维人员更高效地处理告警,降低故障对业务的影响。
专家经验融合:将专家的经验和知识融入模型,提高故障诊断的准确性和可靠性。专家经验库中存储了专家对故障的判断和解决方案,这些经验可以帮助模型更准确地推荐故障的根因。
持续学习:模型能够不断学习专家的经验和反馈,持续优化故障诊断的能力。通过学习专家的经验,模型可以不断提高其诊断的准确性和可靠性。
本方案主要分两大模块进行功能实现,模块一主要是针对我行各个业务系统的交易数据(交易量,响应时间,成功率,响应率,错误码),以及基础架构运行数据(中间件、数据库、日志以及性能指标)进行统计的采集分析,以算法学习历史数据以及业务规律的基础上训练预测模型,并辅助人工专家经验,实时监控系统的健康状况。充分利用不同维度数据之间关联关系,有效做到事前的故障发现,以及系统运行期间的风险隐患排查。模块二主要针对的是我行系统运行期间产生的告警数据(业务,服务器性能,数据库,中间件以及硬件、环控告警数据)辅以专家经验对告警进行分层分类,算法在告警产生时间段内,实时进行场景预测,聚合疑似故障场景的告警数据,并在相对应的场景中推荐最可能的故障根因,达到事中故障根因的推断,大幅降低排障时间,优化运维效率。
方案的整体架构共分为四层:数据处理层,智能分析层,功能引擎层,综合展示层,统一查询引擎层四个层级组成,各功能层级规划如下:
四大层级都可支持横向扩展,提升每个模块的吞吐量以及处理能力,同时每个模块内部都是多点分布式部署,保证了系统高可用以及数据安全。
平台在物理部署时充分考虑了架构的先进性,避免了重复建设以保护客户的已有投资,平台中需要的Hadoop、Kafka以及ZK集群都支持用户版本需求,其他节点均支持分布式部署,可以非常容易的调整节点数量,为后期平台的自动智能扩容提供了基础,整体物理架构如下:
1.动态基线标签分类:动态基线标签分类是使用统计方式结合算法能力对动态基线监控对象进行标签分类,从功能上它首要功能筛选出哪些适合做异常检测的动态基线检测的对象,其次在筛选出适合异常检测的对象中我们进一步从监控对象的是否具有业务属性,算法识别周期情况,波动情况等维度进行细分,通过这些特征调整其对应的算法套餐,以及告警策略。下图是方案中具体的标签分类思路:
2.组合告警:组合告警(Composite Alerting),它涉及将多个单独的监控指标或告警条件结合起来,以形成一个综合的告警。这种策略的目的是通过分析多个相关指标之间的关系,来提高检测问题的准确性和效率。
在复杂的系统环境中,单一指标的异常可能不足以全面反映系统或服务的健康状况。例如,一个服务的响应时间增加可能是由多种因素共同作用的结果,如数据库查询缓慢、网络延迟或服务器负载过重。通过组合告警,可以同时考虑这些不同的指标,当它们共同表明存在问题时,才触发告警。
①减少误报:通过综合考虑多个指标,可以减少由于单一指标偶然波动而导致的误报。
②提高诊断效率:组合告警可以提供更全面的问题视图,帮助运维团队更快地定位问题的根本原因。
③优化响应:通过关联分析,运维团队能够更准确地评估问题的严重性和紧迫性,从而做出更有效的响应。
3.实时诊断:方案中的实时诊断(Real-time Diagnostics)是指一套成熟的算法能力在结合专家经验,在故障发生时产生大量的告警时,诊断工具可以在算法层面识别新奇告警,周期性告警,高发告警,以及对告警进行标签化整理聚类,将大量繁杂的告警进行标签化降维,同时结合持续学习的专家经验库推荐故障的根因告警,实现对IT系统、服务和应用程序的实时监控、故障检测和根本原因分析。
4.数据分析中心:针对方案运营的海量数据,例如指标原始数据,基线运行数据,告警数据,诊断场景数据,原始的人工分析数据必将满足不了现有的海量数据,方案提供数据分析中心,可定制化对数据展示进行编排可视化分析,同时对于高阶用户提供简单脚本,sql查询能力对数据进行标签化处理,用户可对编排,标签化处理后的数据进行综合分析,针对分析数据优化平台算法能力,告警策略配置,以及专家经验库。
通过动态基线检测技术,方案能够实时监控和分析系统行为,自动学习和适应系统的正常行为模式,从而在系统行为出现异常时迅速感知并触发告警。结合多指标异常检测算法,方案能够跨域关联不同指标,通过智能聚合和根本原因分析,提高故障检测的准确性和响应速度。
实时诊断功能进一步强化了故障感知能力,通过算法和专家经验的结合,快速识别新奇告警和周期性告警,实现对IT系统、服务和应用程序的实时监控和故障检测。
动态基线告警:系统通过动态基线告警功能,能够在系统性能指标偏离正常范围时发出警报,即使这些异常并未达到系统崩溃的边缘。这种早期的告警可以帮助客户及时发现潜在的风险隐患,如参数配置不合理或代码逻辑需要优化等问题。
结合专家经验库,方案能够推荐故障的根因告警,通过专家的经验和知识,提高故障诊断的准确性和可靠性。
持续学习机制使得模型能够不断学习专家的经验和反馈,优化故障诊断能力,实现更准确的故障根因推荐。通过统一查询功能,运维人员及相关使用人员可以方便地访问和检索相关的告警和诊断数据,进一步分析故障场景,加速故障排查过程。
实施解决方案的过程中,我们遇到了一些关键挑战,特别是在动态基线数据接入检测方面。这些挑战包括监控对象繁杂、数据饱和度不足以及检测效果未知等。针对这些问题,我们不断探索和改进,最终形成了一套规范的动态基线数据接入流程。首先,监控对象繁杂是我们在数据接入过程中面临的主要难点之一。行内系统涉及的业务模块和技术组件繁多,每个组件都可能产生大量的监控数据。因此,我们需要在这些复杂的监控对象中确定关键的指标进行异常检测,以确保我们能够及时发现系统异常。其次,数据饱和度不足也是我们在动态基线数据接入过程中遇到的挑战之一。由于数据的稀疏性或者不完整性,我们无法准确地建立起系统的基准行为模式,从而导致动态基线检测的效果不佳。为了应对这些挑战,我们制定了一套动态基线数据解析接入的规范流程。我们对监控对象进行了标签化处理,将复杂的监控对象进行分类和整理,以便更好地管理和分析。然后,我们对基线进行了初步运行,通过模拟数据来验证基线的有效性和准确性。接着,我们对模拟数据进行了告警分析,验证了动态基线检测的效果。最后,我们才将动态基线检测正式应用于实际生产环境中,确保系统的稳定性和可靠性。
动态基线检测技术使系统能够实时适应环境的变化,自动学习正常行为模式,及时感知异常。而多指标异常检测通过跨域指标关联和智能聚合,提升了告警的准确性,减少了误报。这些技术的结合,不仅提高了故障感知能力,还优化了运维人员的工作效率。
在故障诊断过程中,专家经验与智能算法的结合是关键。通过持续学习专家的经验,诊断模型能够不断优化,准确识别新奇和周期性告警,推荐最可能的故障根因。这种专家经验库的应用,提高了故障诊断的可靠性,帮助运维人员迅速聚焦于关键告警,减少了故障排查时间。
通过上述经验的总结,我们认识到,智能预警与根因诊断解决方案的成功实施,依赖于数据的全面整合、智能算法的创新应用、专家经验的持续融合以及系统架构的高效设计。未来,我们将继续优化和完善这些技术和方法,为金融机构提供更智能、更可靠的运维支持体系。
更多金融科技案例和金融数据智能优秀解决方案,请在数字金融创新知识服务平台-金科创新社案例库、选型库查看。彩神v