掌桥专利:专业的专利平台
掌桥专利
首页

一种面向服务器集群的远程监控系统和方法

文献发布时间:2024-04-18 19:58:21


一种面向服务器集群的远程监控系统和方法

技术领域

本发明涉及雷达后端集群远程监控领域。更具体地,涉及一种面向服务器集群的远程监控系统和方法。

背景技术

雷达通用处理平台在形式上由硬件系统和软件系统组成,通用平台的硬件系统依赖更多的硬件设备,以满足处理性能和处理时间的要求。随着处理数据量的不断上升、信息处理服务的多样化,对通用平台的硬件和软件系统的要求也随之提高。

但是,发明人发现随着通用平台中服务器集群的发展及业务的增加,硬件系统之上的软件系统快速增长,集群可能会出现各种各样的故障,比如风扇损坏、内存失效、CPU高负载、磁盘容量使用超标、内存使用超过阈值等问题,都会对通用平台的稳定性和服务带来非常大的损失,而且对平台硬件设备进行日常巡检以及维护都需要大量的人力和物力。

在基于X86服务器的通用平台中,虽然各个节点级的BMC管理系统包含了硬件系统监控模块,但是集群数量达到一定程度之后,系统运维人员并不能有效地统一兼顾各个节点硬件相关的健康状态,如果想要获取某个具体节点的硬件监控信息的话,就需要分别登录到对应的BMC系统,分散化管理使得系统管理效率低下,同时,BMC管理系统缺乏操作系统层级、应用层级等软件层面的监控,使得其在健康状态管理发挥的效用具有一定的局限性。在大数据工程领域比较成熟的SpringBoot+Prometheus+Grafana、Zabbix等监控监控解决方案,功能臃肿,业务冗余,占用资源多,也不能很好地适用于雷达等特定领域后端通用平台。

发明内容

本发明的提供一种面向服务器集群的远程监控系统和方法,以解决现有技术存在的问题中的至少之一。

为达到上述目的,本发明采用下述技术方案:

本发明第一方面提供一种面向服务器集群的远程监控系统,该系统包括监控数据采集子系统、WEB管理子系统以及连接所述监控数据采集子系统和所述WEB管理子系统的数据库,其中,

所述监控数据采集子系统,用于建立不同的自定义监控数据脚本获取各个被监控节点的监控信息以及与被监控节点资源信息进行交互;

所述WEB管理子系统,用于实现对被测监控节点监控指标项的监控和管理;

所述连接所述监控数据采集子系统和所述WEB管理子系统的数据库,用于存储数据并实现数据共享。

可选地,所述监控数据采集子系统包括数据采集层,所述数据采集层,用于从被监控节点中获取数据。

可选地,所述数据采集层采集包括硬件层、系统层、服务层和应用层,其中,

所述硬件层采用拉取模式,用于从被监控节点中获取节点硬件相关的监控数据;

所述系统层采用拉取模式,用于从被监控节点中获取节点系统相关的监控数据;

所述服务层采用拉取和推送结合的模式,用于从被监控节点中获取节点服务相关的监控数据;

所述应用层采用拉取和推送结合的模式,用于从被监控节点中获取应用层的监控数据。

可选地,所述WEB管理子系统包括数据处理层、业务管理层和数据展示层,其中,

所述数据处理层,用于对数据进行处理,以完成参数配置、故障告警、故障分析、趋势预测分析和日志分析功能;

所述业务管理层,用于提供业务服务的实体资源,以实现资源管理、脚本管理和告警管理;

所述数据展示层,用于展示集群的健康状态。

可选地,该系统还包括数据存储层,所述数据存储层,用于实现数据的持久化。

可选地,所述监控数据采集子系统还用于根据当前节点的类型确定监控指标项,并对监控指标项对应的监控子模块的调用接口进行组装。

可选地,该系统还包括调用组装后的监控子模块的调用接口,所述监控数据采集子系统根据统一的数据格式对结果数据进行封装。

可选地,所述连接所述监控数据采集子系统和所述WEB管理子系统的数据库包括Mysql关系型数据库和InfluxDB时序性数据库,其中,

所述Mysql关系型数据库,用于对监控系统的配置信息、基本管理信息进行存储,以实现数据的持久化;

所述InfluxDB时序性数据库,用于对监控指标项的历史数据进行归档。

本发明第二方面提供一种面向服务器集群的远程监控方法,该方法包括:

通过数据库将监控数据采集子系统和WEB管理子系统连接;

在被监控节点触发监控数据采集子系统的监控动作,并调用监控子模块的调用接口,完成数据格式的封装,通过监控数据采集子系统的各功能模块为WEB管理子系统提供统一的调用接口;

通过WEB管理子系统对不同的数据脚本进行监控,以实现对远程监控系统的健康状态和资源使用情况的监控。

可选地,该方法还包括通过所述WEB管理子系统下发数据采集任务,所述监控数据采集子系统接收任务并进行任务采集,将采集到的数据返回至JSON结构体,WEB管理子系统根据所述JSON结构体的执行结果对数据进行相关处理。

本发明的有益效果如下:

本发明提供的一种面向服务器集群的远程监控系统和方法,提供监控数据采集子系统对接口的调用,完成数据格式的封装,实现了雷达领域后端平台中不同类型节点的软硬件数据指标的数据监控,提供了完善的脚本接口,便于系统集成;通过WEB管理子系统对各类指标项进行监控,高效地掌控平台的软硬件健康状态信息、资源使用信息等影响平台稳定性的关键信息,有效提高软硬件设备的问题定位和故障响应速率;通过监控系统实现对平台中各类节点信息的数据管理。本发明通用性好、执行效率高,能够高效地获取服务器节点监控状态信息,有效提高了管理运维效率,为通用平台的可靠性保障提供有力支撑;具有较好的拓展性和灵活性,适用于雷达后端通用平台。

附图说明

下面结合附图对本发明的具体实施方式作进一步详细的说明。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出面向服务器集群的远程监控系统的架构体系图;

图2示出本实施例中监控数据采集子系统的框架结构示意图;

图3示出本实施例中监控数据采集子系统的数据采集实现方案的流程图;

图4示出本实施例中WEB管理子系统的功能结构树示意图。

具体实施方式

为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。

为解决现有技术中存在的问题,本发明第一方面提供一种面向服务器集群的远程监控系统,该系统包括监控监控数据采集子系统、WEB管理子系统以及连接监控监控数据采集子系统和WEB管理子系统的数据库。

监控数据采集子系统,采用节点Agent的方式部署在每个被监控节点,用于在各个节点获取监控信息,该子系统用于和节点资源信息直接交互,是监控方案设计的数据来源,在实现层面使用更加便捷高效的脚本语言进行开发,为了该子系统的通用性、灵活性,设计开发具有拓展性、可移植性的数据采集框架。

监控数据采集子系统,用于建立不同的自定义监控数据脚本获取各个被监控节点的监控信息以及与被监控节点资源信息进行交互。监控数据采集子系统包括数据采集层,数据采集层用于从被监控节点中获取数据;数据采集层采集的数据包括硬件层、系统层、服务层和应用层的数据,其中,硬件层采用拉取模式,用于从被监控节点中获取节点硬件相关的监控数据;系统层采用拉取模式,用于从被监控节点中获取节点系统相关的监控数据;服务层采用拉取和推送结合的模式,用于从被监控节点中获取节点服务相关的监控数据;应用层采用拉取和推送结合的模式,用于从被监控节点中获取应用层的监控数据。

WEB管理子系统,用于实现对被测监控节点监控指标项的监控和管理。WEB管理子系统,在集群管理节点中部署,该子系统的设计要求要具有跨平台特征、易实现、开发效率高和简单部署,因此选择主流的WEB开发框架进行开发。WEB管理子系统采用三层架构设计包括数据处理层、业务管理层和数据展示层,其中,数据处理层,用于对数据进行处理,以完成参数配置、故障告警、故障分析、趋势预测分析和日志分析功能;业务管理层,用于提供业务服务的实体资源,以实现资源管理、脚本管理和告警管理;数据展示层,用于展示集群的健康状态。

首先通过被监测节点的IPMI管理账户与被管理节点建立连接,然后通过IPMI远程控制客户端工具获取远端节点硬件传感器的监测数据,然后将获取的传感器及其读取到的数值按照类型进行分组显示化处理,同时,根据获取到的传感器列表信息创建通过设置传感器的监控周期实现周期性监测,周期性监测的数据进行结构化处理后,存入时序性数据库进行管理,基于历史数据记录可以开展趋势图绘制,掌握传感器监控项值的趋势变化。

连接监控数据采集子系统和WEB管理子系统的数据库,用于存储数据并实现数据共享。

数据库为系统持久化数据库,连接监控数据采集子系统和WEB管理子系统的数据库包括Mysql关系型数据库和InfluxDB时序性数据库,其中,Mysql关系型数据库,用于对监控系统的配置信息、基本管理信息进行存储,以实现数据的持久化;InfluxDB时序性数据库,用于对监控指标项的历史数据进行归档,InfluxDB支持大数据量的索引查询,可以高效地满足历史数据快速查询场景。

与数据库对应的层为数据存储层,数据存储层检测的数据是寄予时间的数据,属于时序数据,采用InfluxDB、Redis等时序数据库来存放,并且支持时序数据的快速写入、持久化、多维度的聚合查询等基本功能。数据存储层通过将获取到的数据按照结构化的形态进行组装,然后存储到数据库中,实现数据的持久化。通过展现其历史趋势、周期规律、异常性,进一步对未来做出预测分析,包括预测被监测节点可能发生故障的时间等。

在一个具体实施例中,如图1为本发明面向服务器集群的远程监控系统的架构体系图,将该系统分为5个层次,分别是数据采集层、数据存储层、数据处理层、业务管理层和数据展示层,其中,

数据采集层与监控数据采集子系统对应,数据存储层与连接监控数据采集子系统和WEB管理子系统的数据库对应,数据处理层、业务管理层和数据展示层与WEB管理子系统对应。

具体地,数据采集层采集的对象包括硬件(如服务器、交换机)、系统、服务以及应用,因此,数据采集层采集的数据包括硬件层、系统层、服务层和应用层中采集的数据,其中,

(1)硬件层

集群硬件信息获取集成相关领域内的技术方案,如表1所示;硬件层的监控数据采用拉取模式(Pull)从被监控节点中获取;

表1集群硬件信息采集技术方案

(2)系统层

集成pynvml、psutil库,通过Python和Shell脚本从操作系统中采集到相应的数据;系统层的监控数据采用拉取模式(Pull)从被监控节点中获取;

(3)服务层

不同的服务关注的指标不尽相同,在服务层采用自实现Python或Shell开发脚本进行采集;服务层的监控数据采用拉取模式(Pull)从被监控节点中获取;

(4)应用层

应用层监测信息的采集主要依赖应用程序和shell脚本实现;应用层的监控数据采用拉取和推送结合的模式(Pull/Push)从被监控节点中获取。

具体地,数据存储层的监测数据是基于时间的一系列数据,属于时序数据。时序数据采用InfluxDB、Redis等时序数据库来存放,将获取到的数据按照结构化的形态进行组装并存储到数据库中,并且支持时序数据的快速写入、持久化、多维度的聚合查询等基本功能。通过展现其历史趋势、周期规律和异常性,进一步对未来做出预测分析。

系统持久化数据库采用Mysql关系型数据库和InfluxDB时序性数据库进行数据存储;其中,Mysql关系型数据库,用于对监控系统的配置信息、基本管理信息进行存储,以实现数据的持久化;InfluxDB时序性数据库,用于对监控指标项的历史数据进行归档。

具体地,数据处理层,数据处理主要完成参数配置、故障告警、故障分析、趋势分析和日志分析等内容,主要通过Python和shell脚本编程实现。

业务管理层,业务管理主要完成资源管理(IP配置、服务器开关机等)、脚本管理和告警管理。

数据展示层,为了提高管理效率,直观的表达集群健康状态,设计了WEB管理子系统,作为通用平台监控和管理的统一入口,系统涵盖资产管理、传感器监控、业务指标监控、历史数据查询等多层次、多维度的功能。自动化监控的WEB界面采用vue.js渐进式框架和element ui框架实现,特点是轻量、简单、友好,使得前端WEB开发实现更加简易。

本发明第二方面提供一种面向服务器集群的远程监控方法,该方法包括:

通过数据库将监控数据采集子系统和WEB管理子系统连接;

在被监控节点触发监控数据采集子系统的监控动作,并调用监控子模块的调用接口,完成数据格式的封装,通过监控数据采集子系统的各功能模块为WEB管理子系统提供统一的调用接口;

通过WEB管理子系统对不同的数据脚本进行监控,以实现对远程监控系统的健康状态和资源使用情况的监控。

该方法还包括通过所述WEB管理子系统下发数据采集任务,所述监控数据采集子系统接收任务并进行任务采集,将采集到的数据返回至JSON结构体,WEB管理子系统根据所述JSON结构体的执行结果对数据进行相关处理。

在一个具体实施例中,提供一种面向服务器集群的远程监控方法,提供监控数据采集子系统和WEB管理子系统以及连接两个子系统的数据库实现对服务器集群的远程监控。

监控数据采集子系统对于执行速度具有较高要求,并且需要集成部分监控资源的现有解决方案并加以优化,因而,该子系统采用Python和Shell脚本语言进行开发,子系统的各功能模块做到高度解耦,各功能模块提供统一的调用接口,供WEB管理子系统进行调用。

WEB管理子系统后端业务处理系统采用具有卓越通用性、平台移植性、高效性和安全性的Java开发语言,集成SpringBoot框架进行开发,SpringBoot无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能,支持OPOB设计模式,增强了Web表现力、操作性与数据承载量,提升了用户体验,具有较高的开发效率。

具体地,监控数据采集子系统采用节点Agent的方式部署在每个被监控节点,在各个节点获取监控信息,和节点资源信息直接交互,是监控方案设计的数据来源,在实现层面使用更加便捷高效的脚本语言进行开发,为了该子系统的通用性、灵活性,设计开发具有拓展性、可移植性的数据采集框架。

WEB管理子系统通过脚本接口与监控数据采集子系统有机关联,WEB管理子系统在集群管理节点中部署,触发数据采集任务的下发,监控数据采集子系统完成采集任务后,返回JSON结构体的执行结果,WEB管理子系统后端业务处理系统基于此结果进行数据处理,进行持久化、可视化或其他业务逻辑相关操作。

WEB管理子系统选择WEB开发框架进行开发,采用三层架构设计,包括表现层、业务逻辑层、数据层;其中,表现层,即表示层,用于人机交互的接口;业务逻辑层,用于提供业务逻辑服务的实体资源;数据层,用于进行结构化数据以及非结构化数据的持久化以及管理操作。

首先通过被监测节点的IPMI管理账户与被管理节点建立连接,然后通过IPMI远程控制客户端工具获取远端节点硬件传感器的监测数据,然后将获取的传感器及其读取到的数值按照类型进行分组显示化处理,同时,根据获取到的传感器列表信息创建通过设置传感器的监控周期实现周期性监测,周期性监测的数据进行结构化处理后,存入时序性数据库进行管理,基于历史数据记录可以开展趋势图绘制,掌握传感器监控项值的趋势变化。

具体地,监控数据采集子系统采用Python和Shell脚本语言进行开发,各个功能模块提供统一的调用接口,供WEB管理子系统进行调用;

WEB管理子系统后端采用高效安全的Java开发语言,增强了Web表现力、操作性与数据承载量,提升用户体验;

WEB管理子系统与所述监控数据采集子系统通过脚本接口有机关联,其中,WEB管理子系统下发数据采集任务,监控数据采集子系统采集任务完成后,返回JSON结构体封装的执行结果,WEB管理子系统后端基于此结果对数据进行处理,进行持久化、可视化或者其他业务逻辑相关操作。

如图2为本实施例中监控数据采集子系统的开发框架结构示意图,基于Python和Shell开发实现,可以满足数据获取时效性的要求。

如图3为本实施例中监控数据采集子系统的数据采集实现方案的流程图。在本实施例中,各个模块协同工作,功能解耦,实现各类型节点软硬件资源的监控管理,监控数据采集子系统高度工具化,具体的实现流程为:在被监控节点调用监控脚本接口,触发监控动作,监控脚本动态加载被监控节点的配置文件、加载通用模块等,然后基于配置文件动态判断当前节点类型,根据类型确定监控指标项,这些指标项是通过不同的监控子模块实现的,将需要的监控指标项对应的监控子模块的调用接口进行组装,最后分别取调用这些子模块的接口,调用完成之后,将返回的结果数据按照统一的数据格式进行封装。为了保证子系统在集群中的一致性部署,在各节点上进行接口调用时,通过动态判断当前节点类型来确定在该节点上需要执行的监控子模块。

如图4为本实施例中WEB管理子系统的功能结构树示意图。WEB管理子系统首先通过被监测节点的IPMI管理账户与被管理节点建立连接,通过IPMI远程控制客户端工具获取远端节点硬件传感器的监测数据,然后将获取的传感器及其读取到的数值按照类型进行分组显示化处理,同时,根据获取到的传感器列表信息,设置传感器的监控周期实现周期性监测,周期性监测的数据进行结构化处理后,存入时序性数据库进行管理,基于历史数据记录可以开展趋势图绘制,掌握传感器监控项值的趋势变化。WEB管理子系统基于B/S架构模式,客户端对硬件没有要求,服务端对软硬件要求配置很低,系统使用简单,启动客户端浏览器即可访问,该子系统主要包括集群管理、配置管理、日志管理、系统管理等功能模块,每个模块又细分为各个单元,共同作用实现WEB管理子系统的功能。WEB管理子系统的数据来源为监控数据采集子系统的接口调用。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。

相关技术
  • 一种地铁环境远程监控系统及其工作方法
  • 一种面向园区的智慧消防远程监控系统及方法
  • 一种面向园区的智慧消防远程监控系统及其方法
技术分类

06120116481937