引言
监控工具是生产系统安全运营、确保业务连续稳定的关键一环。G行监控领域已经使用Zabbix、ITM、Nagios等成熟监控工具,有效支撑绝大多数监控需求场景,为G行运维工作提供坚实保障。然而,随着业务发展和技术环境迭代升级,生产系统规模快速增长带来的海量运维数据,以及新技术和新组件的引入,对监控平台工具建设提出了更高的要求。我们逐渐发现传统监控工具在以下领域存在短板:监控配置管理分散导致变更繁琐,非标监控需求支持能力偏弱,在处理海量运维数据方面性能不足,影响了监控效率提升和监控质量。这些挑战促使我们探索新的运维工具,与传统工具相辅相成,提升监控系统的灵活性和效率。
传统监控工具痛点分析
配置分散管理影响效率
传统监控工具的配置文件和工具部署实例绑定,多实例部署的监控工具其配置文件在多个服务节点中分散管理。这种配置管理方式在实施批量监控策略部署和调整场景下, 管理员需要逐个节点对配置文件进行修改、验证,不仅效率低且步骤繁琐容易引发操作风险。此外,在实施复杂非标场景监控部署时,运维人员需要对配置文件进行深度修改,而配置文件分散管理会大幅增加人员工作量,容易引发文件修改错误的操作风险。
特殊需求场景支持能力不足
传统监控工具中有闭源商业产品,也有开源社区软件,均有广泛的使用基础和成熟的生态环境,在所擅长领域为95%以上的监控需求提供了解决方案,剩下5%的监控需求有较为明显的非标特点,传统监控工具所提供的通用解决方案在适配此类需求时缺乏灵活性。例如一些场景需要支持监控策略有灵活的生效时间,另一些场景需要支持同一个监控指标能够配置多个数据计算公式等。要有效满足这些需求场景,需要通过设计和实现新的监控工具来解决。
成熟产品存在性能瓶颈
随着业务发展,生产系统的规模越来越大,复杂性也越来越高,监控工具需要采集和处理的数据量也急剧增大。要持续满足监控报警准确、高效、及时的要求,工具的处理性能也需要不断提高。传统监控工具大多都已存在了数十年,受限于设计理念和软件架构,性能瓶颈在技术浪潮的推进下日益凸显。
解决方案
针对以上传统监控工具的痛点,我们提出以自主研发为基础,整合行内运维数据资产,引入大数据处理技术构建新的监控工具:阈值计算引擎,其核心组件包括配置管理台、策略驱动、计算引擎。阈值计算引擎设计要点和嵌入监控系统后的工作机制如下:
设计要点
高频数据计算:采用流处理技术实现数据的实时采集、处理和告警,确保故障及时发现。
集中式配置管理台:设计实现集中式的配置管理台,统一管理监控配置,解绑监控配置和监控工具,提高监控配置变更效率。
分布式计算引擎:计算模块实例采用分布式架构部署,支持大规模并行数据处理,且可依据数据规模的变化进行弹性扩缩容,有效应对各种监控需求。
立足自主研发:结合G行监控运维现状,立足自主研发,从多维度拓展工具能力,能够覆盖各种标准监控场景,同时灵活支持各种非标监控需求。
计算引擎上下游架构层次
数据采集层:利用G行统一数据采集系统完成各设备终端日志、性能数据和事件数据采集上报。
数据传输层:依托G行实时数据总线实现运维数据高效、可靠传输。
资源调度层:大数据处理任务的资源供给站,以Container为单元向计算任务提供CPU、内存、网络等资源切片。
数据处理层:基于流处理框架实现日志、性能数据和监控策略数据的实时匹配和计算,对符合告警条件的数据输出告警,并将告警信息传递给统一监控管理平台告警管理中心。
告警通知层:根据计算结果生成告警,通过多种渠道通知运维人员。支持告警分级和告警抑制,减少误报和重复告警。
策略驱动:负责将配置管理中心的策略、公式、设备信息通过缓存通道同步至计算引擎,与设备性能数据进行匹配计算。
配置管理台:集中式的监控配置管理台,负责统一维护和管理监控策略、设备信息和指标计算公式。
图片
图片
通过统一监控管理平台集中配置策略和查看告警信息,整个工具实现了从策略配置到数据计算再到告警推送的全流程管理。
阈值计算引擎特点
配置管理集中化
通过将监控部署工艺流程中配置入口、策略管理、变更操作进行集中化管理,实现一站式监控策略上下线。
配置入口集中化:用户通过统一监控管理平台页面作为设备信息和监控策略的管理入口,集中管理监控配置信息。
策略管理集中化:通过配置管理台统一管理云上、云下监控策略,无需按照领域进行策略分类维护,降低管理成本。
变更操作集中化:用户只需将准备好的监控策略文件和设备信息进行一键导入和绑定,即可完成策略变更操作。
具备个性化支持能力
通过实现非标数据规范化模块和拓展监控策略数据模型提升个性化场景监控需求支持能力。
非标数据规范化:该模块基于动态脚本语言、以及可配置化数据预处理模块,用于统一各种非标准监控场景下所采集监控数据的格式。支持用户在线交互式地数据预览和标准化工作。对接不同格式的监控数据时,用户可以在线预览数据样例,编写数据处理脚本,验证数据处理效果。
多维度调整监控策略模型:通过优化监控策略数据模型,扩展时间等维度属性和实现策略模板的分组管理,完善个性化监控需求支持能力。
高效处理大规模数据
计算引擎设计上采用分布式弹性可扩展的部署模式,实现大规模数据计算的高吞吐和低延迟。计算模型设计模式升级和数据处理任务内存使用效率优化,进一步提升了任务执行效率。
高吞吐和低延迟:阈值计算引擎在数据处理方面具备高吞吐和低延迟特性,能够及时处理海量运维数据,确保告警信息高效、及时地通知到位。具体来说流处理技术的引入可以将监控数据处理延迟提高到秒级。另外工作节点灵活扩展能够依据数据处理量级快速对数据处理节点进行大规模扩容,满足海量数据处理需求。
时间窗性能优化:很多监控需求的实现都基于时间窗概念,所谓时间窗是在指定时间范围内捕获无界的流动数据进行分析处理的技术,时间窗可以按一定步长向前滑动或滚动。从G行监控运维实际情况出发,我们实现了自适应时间窗,只在捕获异常数据时才创建窗口。Flink内置的时间窗存在多窗口之间的数据拷贝和窗口步长固定问题,降低了流处理任务的内存使用效率和需求场景支持灵活度。立足实际需求场景的自研时间窗支持时间窗动态移动步长,同时避免时间窗在滑动时的数据拷贝和重复计算,提高了窗口数据计算和告警判断的效率,也避免了内存密集型任务频繁Full GC对任务性能的影响,有效提升工具运行稳定性。
图片
应用效果
随着新监控工具阈值计算引擎的投产运行,实现监控配置统一管理、快速下发、动态配置。目前G行实时监控超过10000台服务器的系统容量指标,与传统工具保持并行监控、交叉验证,提供7*24实时监控服务,运行状态稳定可靠。阈值计算引擎建设收益主要包括以下几点:
监控实施效率提升:在上百台设备批量新增、调整监控策略的变更场景下,相较于传统监控工具需要逐台操作监控服务而言,阈值计算引擎采用配置集中化管理,并为批量设备增加独立的管理标签,通过配置管理中心把标签与监控策略进行绑定,即可完成策略调整,达到简化监控变更实施工艺流程、提升实施效率的效果。
告警延迟降低:阈值计算引擎底层基于流处理技术,是实时数据驱动的工作模式,可以将数据处理时效达到秒级,有效降低告警延迟。
个性化监控水平提升:阈值计算引擎可以通过非标数据规范化模块使用户在线交互式的完成数据标准化处理,同时拓展监控策略多维度属性信息来丰富策略使用场景,有效支持个性化监控需求。
误报率降低:完成传统监控工具部分功能模块替换和升级,消除因产品缺陷导致的告警误报。
后续优化和扩展
接下来,阈值计算引擎将在以下几个方面进一步优化和扩展:
自服务能力建设:建设阈值计算引擎的自服务能力,进一步优化监控变更实施自动化率,提升运维效率。
监控预警和动态阈值:探索基于算法的监控预警和动态阈值调整能力,适应业务波动和系统负载变化,更早发现系统异常。
拓展覆盖领域:在逐步推动云下环境监控场景全覆盖基础上,尽快开展云上环境监控对接,实现阈值计算引擎对生产环境的统一监控纳管。
持续建设非标场景监控能力:当前金融科技数字化转型如火如荼,新技术、新场景、新架构日新月异,传统监控工具面临诸多挑战,快速满足非标场景监控需求的能力需要更加完善和成熟。
基于大数据技术的阈值计算引擎为实时监控提供了一种全新的解决方案。它解决了G行传统监控工具的痛点,有效提升监控实时性、准确性和效率。随着技术的不断演进,阈值计算引擎将在G行IT系统的运维中发挥更加重要的作用,为业务的稳定运行保驾护航。
图片
作者:申晨
目前是一名监控管理员,负责统一监控管理平台系统建设与运行维护工作,在程序设计与数据分析领域有较为丰富的工作经验,欢迎交流。
图片
编辑:郑伟曼
目前从事监控运营管理工作,主要负责应用监控指标标准化和监控未达事件管理相关工作,最近爱好健身和烘焙,希望与大家积极交流!