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

一种分布式监控方法

文献发布时间:2023-06-19 11:11:32


一种分布式监控方法

技术领域

本发明涉及监控技术领域,具体为一种分布式监控方法。

背景技术

当前主流的监控软件很多,如zabbix,nagios和cacti等,对于这些监控软件的监测办法各有千秋,如:Zabbix是一款高可用的分布式的监控套件,通过在被监测服务器上安装探针或通过snmp等方式进行数据收集,具有告警和图形化展示等功能,zabbix是一个比较通用的监控软件,针对网络,服务器和应用,服务等均可进行监控;

Nagios是一个偏向于告警的监控软件,支持邮件和短信等告警方式,主要针对指标异常触发告警,支持很多监控协议;

Cacti偏向于流量图形展示,通过图形的方式来展示各项指标,对趋势分析等有较好的体验。

各主流监控方法均存在各自的弱点:

zabbix在使用配置上较为繁琐,需要在每台服务器上安装agent的方式监控,当服务器数量庞大时,安装维护较为困难,并且在zabbix主动方式下,当服务器较多时,服务器性能瓶颈较大,会产生短期失败较多,处理过慢的情况;

nagios配置较为麻烦,只能在终端进行配置,不方便扩展,可读性比较差;

cacti没有告警功能,因此不具备监控告警方法。

发明内容

本发明的目的在于提供一种分布式监控方法,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术发明:一种分布式监控方法,包括如下步骤:

(1)通过监测数据录入平台,平台收到添加请求后,将数据写入数据库做持久化,数据提取程序可自定义时间从数据库中将所有要监控的数据提取出来,并将数据写入到队列中,根据采集的数据中心不同,队列可分为多个,监测程序根据自身的特性标签获取到对应的队列数据,每次只取一条,同一信息中心的多台监测程序同时竞争去获取监测任务,每获取一个监测任务开始执行,同时开启第二个线程去获取任务,根据任务数量和监测主机的性能,灵活的配置最大线程数,保证在快速获取任务的同时保证机器负载不会过高;

(2)当监测程序拿到数据后,根据数据提供的不同监测方式,监测程序会执行并收集状态数据,当同一数据中心的监测程序中断了一台,将不会再去获取任务,任务将会被其他监测程序获取完,同时当某个监测服务监测到服务中断或停止响应时,会将此条数据报告给其他监测程序,同时进行检测,检测后的结果上报给平台;

(3)当平台收到本次任务返回的数据时当有多条数据同时存在时,取半数以上检测结果作为正确的检测结果,并录入数据库中,并触发告警模块,告警模块会过滤异常装填的数据,并判断此数据是否要提供告警进行过滤,最终,告警模块会将数据内容以微信等告警消息提示,同时记录告警时间,并在下次恢复时计算告警时长用于提示,恢复告警当异常数据不再当前正在告警的数据中会产生恢复告警,当前正在告警的数据将会状态将会变为恢复。

优选的,所述步骤(1)中会过滤掉关闭监控状态的数据。

优选的,所述步骤(2)中通过接口的方式,将数据发送给其他监测程序。

与现有技术相比,本发明的有益效果如下:

数据安全性,本发明通过本地数据库集群的形式,异地异步同步形式,保证数据不会丢失,同时并发能力提升;

分布式监控,检测节点采用去中心化方式,每个检测节点都是相同的个体,无论哪个检测节点服务中断,检测的任务会被其他节点平分,检测节点去中心化,并高并发支持,检测节点多线程同步执行任务;

配置简单,通过平台数据录入所要监控的内容,即可完成监控,相比其他软件添加监控内容简单的多;

告警功能,平台一键告警开关,即可开启关闭告警功能,无需繁琐操作,告警方式支持微信,邮件等,告警配置灵活;

定制化,此发明扩展性极强,可兼备任何采集方式,根据需求定制化采集方式和采集数据内容,减少无用指标,灵活轻便,适用性较强。

附图说明

图1为本发明分布式监控方法逻辑判断图;

图2为本发明分布式监控方法物理架构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术发明进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-2,一种分布式监控方法,包括如下步骤:

(1)通过监测数据录入平台,平台收到添加请求后,将数据写入数据库做持久化,数据提取程序可自定义时间从数据库中将所有要监控的数据提取出来,并将数据写入到队列中,根据采集的数据中心不同,队列可分为多个,监测程序根据自身的特性标签获取到对应的队列数据,每次只取一条,同一信息中心的多台监测程序同时竞争去获取监测任务,每获取一个监测任务开始执行,同时开启第二个线程去获取任务,根据任务数量和监测主机的性能,灵活的配置最大线程数,保证在快速获取任务的同时保证机器负载不会过高;

(2)当监测程序拿到数据后,根据数据提供的不同监测方式,监测程序会执行并收集状态数据,当同一数据中心的监测程序中断了一台,将不会再去获取任务,任务将会被其他监测程序获取完,同时当某个监测服务监测到服务中断或停止响应时,会将此条数据报告给其他监测程序,同时进行检测,检测后的结果上报给平台;

(3)当平台收到本次任务返回的数据时当有多条数据同时存在时,取半数以上检测结果作为正确的检测结果,并录入数据库中,并触发告警模块,告警模块会过滤异常装填的数据,并判断此数据是否要提供告警进行过滤,最终,告警模块会将数据内容以微信等告警消息提示,同时记录告警时间,并在下次恢复时计算告警时长用于提示,恢复告警当异常数据不再当前正在告警的数据中会产生恢复告警,当前正在告警的数据将会状态将会变为恢复;

步骤1中会过滤掉关闭监控状态的数据;

步骤2中通过接口的方式,将数据发送给其他监测程序。

本发明用于提高监控稳定性和准确率同时支持灵活的拓展方式,并最大化减少繁琐的配置步骤,通过将录入的数据存入数据库持久化,保证数据稳定性,程序将所要监控的内容从数据库中提取并定时存入队列,并由分散在各地的监控程序读取,内容包括监控的主机,端口或其他方式的监控类型,采集到的指标和结果,通过接口的形式,由检测节点发送给管理节点,管理节点进行数据库操作,将内容展示并触发相关告警。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

相关技术
  • 一种业务数据分布式监控方法和分布式监控集群
  • 一种用于分布式文件系统的监控方法及分布式文件系统
技术分类

06120112837340