一种面向全域的多层次资源监控体系构建研究

作者: 赵乾海

一种面向全域的多层次资源监控体系构建研究0

关键词:资源监控;多层次;服务容器化;集群;动态扩展

中图分类号:TP393 文献标识码:A

文章编号:1009-3044(2024)21-0098-03

0 引言

随着云计算、大数据、人工智能、网络技术等技术的快速发展与深度融合,企业信息系统需要管理越来越多的各种应用,规模不断增大。为保障多类甚至异类的应用数据采集、数据处理、决策支持到高效服务稳定、可靠运行,对企业信息系统的资源监控、资源调度等都提出的更大的挑战。如何实时、准确地掌握这些复杂系统的运行状态,确保其高效、稳定、安全地服务于各项应用业务,是信息系统管理领域迫切需要解决的一个难题。

当前阶段,各大厂商主要依赖传统的监控代理方式来对信息系统实施监控,即通过在各服务器或关键节点安装监控软件来实现对系统状态的数据采集和分析。此外,状态上报也是一种常用的监控手段,它利用系统内部各应用模块或组件定期向监控中心发送状态报告,实现动态监控。标准协议是实现信息系统监控互通与联动的重要基础,例如SNMP、SYSLOG 等协议,被广泛应用于网络设备、服务器、数据库等多个层面的监控集成。日志分析作为监控手段的重要组成部分,虽然可以通过对系统日志、应用日志的挖掘与分析,实现对信息系统运行健康状态的深度洞察。然而,随着信息系统应用规模的持续扩大,日志量呈爆炸式增长,传统的日志分析方法在实时性和准确性上也面临巨大压力。

上述的这些监控方法虽然在小规模的信息系统中有效,但随着信息系统规模的持续扩大和业务需求种类的不断增多,传统单一维度、固化的监控系统架构已经难以满足日益复杂多变的多域应用监控需求。因为在实际运营中,企业信息系统运维人员不仅需要知道各个层次的资源运行状态,同时还要对潜在风险和瓶颈进行预测和防范。

综上所述,构建一个面向全域的多层级资源监控体系显得尤为迫切和必要。这样的监控体系应当具备全面性、实时性、深度学习和预测分析能力,能够覆盖信息系统从硬件设施到软件服务,从网络架构到数据安全,从应用性能到用户体验,全方位地感知和评估系统的运行状态。

1 监控主流技术

随着信息技术的飞速发展和广泛应用,监控技术也在亦步亦趋中不断取得突破与进步,紧密跟随并服务于各种规模与业务类型的企业及组织。如今,各大商业软件供应商顺应市场需求,已经推出了一系列针对信息系统监控的解决方案,这些方案旨在满足客户在实时监控、故障预警、数据分析等方面的多元化需求[1]。

在开源领域中,尤为突出的监控工具当属Zabbix 和Nagios,它们因其强大的功能性和灵活性而受到全球范围内的广泛关注和赞誉。Zabbix[2],作为一款企业级分布式开源监控解决方案,具备全方位、多层次的监控能力,能够实时监测和分析计算资源、存储设备以及网络设施的状态和行为。它不仅提供了对CPU 使用率、内存占用、磁盘空间等硬件指标的细致监控,还适用于虚拟化环境,包括虚拟机性能、资源分配等方面的监督。

Zabbix的告警机制设计尤为精巧,允许用户根据实际需求灵活配置阈值,一旦监测数据超过预设范围即可触发告警,并能通过多种方式迅速通知到相关管理人员,确保问题得到及时有效的解决。此外,基于收集到的庞大监控数据,Zabbix提供了强大的报表功能和可视化工具,使得数据中心的容量规划、资源利用率分析以及故障原因追溯变得更为直观和科学。

另一方面,Nagios[3]是一款开源的系统状态监控与故障通知工具,它能够对指定的本地或远程主机及其提供的各项服务进行严密监控,适用范围广泛,可在多种操作系统平台上稳定运行,尤其是基于Linux/Unix的系统环境。Nagios通过实时检测主机性能参数(如CPU负载、内存使用、磁盘I/O等)和服务状态(如HTTP服务可用性、SMTP服务响应等),确保系统稳定运行并迅速发现并解决任何潜在问题。

Nagios具备灵活的异常通知功能,当检测到主机或服务状态异常时,可以配置电子邮件、短信等多种方式通知系统管理员,以便第一时间采取应对措施。此外,Nagios还配备了一个可选的基于浏览器的WEB 界面,使得系统管理人员能够更便捷地查看网络状态、系统问题和日志等信息,从而实现对全局系统运行状况的实时掌握和高效管理。

2 域内资源监控体系

首先主要论述域内资源监控体系的构建方法,目的是构建一套能够按需横向扩展,满足不同监控规模的需求,同时应尽可能全面涵盖信息系统中所涉及的各类软件及硬件资源。为了实现涵盖全域以及监控系统且能够动态扩展两个目标,主要从以下两个方面进行介绍。

2.1 域内资源监控对象

构建域内全面的资源监控体系[4],实现域内资源的运行状态的全方位采集。所涉及的监控对象要尽可能的全面,主要包括4个方面:一是基础设施层,所包含的设备主要指数据中心机房的基础动力环境、空调设施、安防门禁、烟物感应等基础设施环境,保证中心稳定运行基础;二是基础资源层,所包含的设备主要是支撑信息系统运行的各项硬件设备,例如计算、存储、网络、安全保密等信息化设备,是信息化系统运行的信息设备资源支撑;三是共性平台层,所包含的设备主要是指数据库、Web容器、云平台、大数据平台、消息队列等共性中间件,主要为通用中间件,中间件的运行状态对应用系统来说至关重要;四是信息系统层,主要是指面向用户业务所使用的应用系统,具备专业化定制等特点,资源监控通常采用定制化的技术与措施,监控数据的接口与数据传输协议通常不具有统一的约定和标准。

2.2 域内资源监控体系

为了提升域内监控对象种类和数量,本文提出一种基于容器服务的全对等域内资源监控体系,如图1所示。

该体系能够保障监控规模的弹性伸缩和动态扩展,适应不同的应用场景需求。下面主要从监控服务、监控服务管理数据、监控数据存储、监控接口标准化以下4个方面进行详细的论述。

1) 监控服务容器化。基于容器集群管理系统(Kubernetes[5]) ,构建出无状态的监控服务。基于容器虚拟化[6]技术,实现服务轻量化的资源占用,提升基础资源的利用率。运维服务在进行容器化之后,在部署运行、资源调度和动态伸缩方面有极大的提升。在部署运行方面:通过构建镜像标准化的应用容器,实现服务的快速部署和构建;在对外服务提供负载均衡:通过虚拟IP对外提供服务,同时在内部采用负载均衡服务[7]策略,实现用户请求以及上下层运维服务的自动转发和处理;在资源动态扩展方面:为了满足应用在不同负载下的需求,容器服务支持服务的弹性伸缩,即根据服务的容器资源占用情况自动调整容器数量。

2) 监控服务数据集群化管理。监控运维服务基于容器化实现了服务的弹性伸缩和动态扩展,监控服务数据高可靠的存储同时也至关重要。其中管理数据主要包括:运维监控对象、监控模板、监控指标、告警模型及配置信息。管理数据规模大小与监控对象的数量正相关,但整体数据规模在MB级别,在技术选型上,可以采用现有主流的分布式集群关系型数据库,当数据规模不大时也可以采用文件系统结合数据同步机制实现数据的集群化管理。

3) 监控数据存储统一化。监控数据作为监控代理实时采集或者监控对象实时发送的动态数据,合理利用监控数据对于发挥监控体系的价值至关重要,如何合理存储和管理数据对资源监控的实时性尤为重要。采用分布式存储[8],将各类结构化的监控数据进行分类存储和管理,可满足存储数据规模的横向扩展和监控对象数据的持久化存储。

监控数据主要包含3个部分,监控资产主键、监控指标、监控数值,每个对象的完整监控信息由多条数据构成。根据不同监控项设置的监控周期,会有源源不断的监控数据入库存储。为了能够满足海量监控数据的存储需求,根据监控使用场景,数据分为两种,即实时数据和历史数据。实时数据根据业务需求确定固定的存储周期,历史数据主要用于资源性能分析和运维评估。实时数据作为数据访问的热区,用户访问频率高;历史数据作为数据访问冷区,用户访问频率低。通过分类存储,保证热数据能够更高效的存储和实时访问,提升用户监控体验。

4) 监控接口标准化。监控接口标准化可以有效保证全域多层次监控资源的监控数据统一上报和汇聚。监控接口主要包括几个方面:一是监控对象注册,用于在监控系统注册监控对象基本信息,在注册过程中上报资源地址、监控模式、监控指标等信息;二是监控指标信息采集,用于监控中心收集各个监控对象的运行指标实时监控信息;三监控信息查看,查询指定资源的运行监控信息;四是中心数据上报,用于向上级系统上报本中心内各类资源的运行监控信息。

3 全域资源监控体系

3.1 全域资源监控现状

现阶段在全域资源监控方面主要存在的问题是,由于不同的域之间存在严格的网络安全防护措施,难以实现跨域网络数据的顺畅交互,并且由于安全流量限制可能会导致网络通信质量受影响。因此,有必要构建一种面向全域多层次的资源监控体系架构。通过规范和约定统一的监控接口标准和数据传输通信协议,在不改变原有各域的监控数据安全性的基础上,按照域之间约定的通信协议、使用约定的通信端口进行数据交换,实现全域多层次的资源监控数据的安全、实时、高效传输与交互。

3.2 全域资源监控体系

为了解决跨域数据通信的种种限制问题,结合工程实践经验,本文提出一种三层的监控模式,如图2所示,主要包括终端代理、平台汇聚、监控中心。

终端代理主要负责采集末端资源的运行状态数据,资源注册时设定的各项监控指标信息。终端代理可以是一个部署在服务器的代理软件或标准的SNMP 协议通信路径,也可以是一个主动上报运行信息的程序代码,如同监控平台的抓手,负责收集各类资源监控的原始数据。

平台汇聚主要负责收集终端代理上报的实时监控指标信息,内部进行简单的数据整合。实现按照监控对象的监控数据汇聚,所管理的监控对象规模在上万个左右;另外一方面,平台汇聚也担负着中间层的作用,向监控中心或者其他的平台汇聚报送已收集和处理平台内资源运行状态信息。平台汇聚起到一个承上启下的作用,实现跨域信息的统一传输和汇聚,并且在域内也可依托强大的计算能力,进行监控数据的分析和处理,实现域内监控信息独立化管理,不与监控中心产生硬关联。

监控中心主要负责收集不同平台汇聚所发送监控数据,并根据系统内设置的告警阈值,实现全域资源告警信息的自动化触发和智能化推送。监控中心作为监控体系的中枢,承担着与不同分域运维数据通信的任务,同时监控中心也依托中心内充足的基础资源,进行历史运维数据的挖掘和分析工作,为智能化监控提供计算支撑能力。

通过构建多层次的资源监控体系,信息系统的资源监控在以下几个方面有较大的提升:一是能够灵活适配不同规模资源的监控管理,根据资源的分布情况灵活定制整个监控体系多层次的构建;二是能够实现避免跨域带来的各种网络限制,实现域内数据离线情况下的存储,在线时能够及时上报和汇总;三是提升整个监控体系的容灾能力,当一个层次的监控中心出现整体故障时,可以实现整个监控对象的整体转移和切换,把监控系统的容灾抗毁[9]能力,从单平台、单中心模式提升到整个运维体系内。

4 结论

针对企业信息系统在应用业务增加与规模扩大时,面对跨域多层次资源监控存在的诸多问题,本文主要从域内、全域两个方面出发,在域内构建了一种基于容器服务的全对等域内资源监控体系,实现对域内监控资源的全覆盖,并能够随着应用规模的增加进行动态扩展。在全域层面构建一种三层次资源监控体系架构,能够有效解决跨域资源统一监控所面临主要问题,同时全面提升了信息系统的容灾抗毁能力,有效保障大规模、复杂信息系统的资源监控中心能实时、准确地监控系统的运行状态,高效、稳定、安全地服务于各项应用业务。

经典小说推荐

杂志订阅