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

基于分布式关系型数据库的Zabbix监控系统

文献发布时间:2023-06-19 10:48:02


基于分布式关系型数据库的Zabbix监控系统

技术领域

本发明属于网络监控技术领域,更具体地,涉及一种基于分布式关系型数据库的Zabbix监控系统。

背景技术

要想实时地了解服务器的运行状况并且能在出现问题时及时解决,利用监控软件是一个很好的选择。Zabbix是一个基于web界面的企业级开源监控软件,Zabbix服务器需要LAMP(linux+apache+Mysql+php)环境或LNMP(linux+nginx+Mysql+php)环境,提供分布式系统监控、数据收集、网络监视等功能。

Zabbix主要分为四个部分:Agent,数据采集代理,部署于被监控服务器上;Server,Zabbix的服务端,用于数据的采集和发送告警等;Web,用于数据采集和告警规则等配置,前端数据展示和API调用;数据库,官方建议和传统使用均为Mysql,用于配置信息和监控数据的存储。

使用Mysql作为数据库的传统的Zabbix监控方案主要有以下几个问题,这些问题都是由单机数据库Mysql引起的:数据库Mysql是单机的,因此不能支持T量级的数据;由于这个的原因,所以监控对象的数量和数据存储时间不能兼得;Zabbix官方给出了proxy的解决方案,想通过proxy来提升监控纳管被监控对象的能力,但是proxy最终也是要把数据发到最后面的主Mysql上,其实并没有减轻数据库的压力。

发明内容

本发明的目的在于解决现有的Zabbix监控系统因采用单机数据库而导致该系统无法兼顾监控对象数据和监控数据存储时间的问题。

为了实现上述目的,本发明提供一种基于分布式关系型数据库的zabbix监控系统。

本发明的基于分布式关系型数据库的zabbix监控系统包括:

预定数量的zabbix代理服务器,所述zabbix代理服务器用于采集对应被监控端的目标数据;

预定数量的web端;

分布式关系型数据库;

zabbix服务器,用于接收采集的被监控端的目标数据,将接收的数据通过相应的web端进行显示,并将接收的数据写入所述分布式关系型数据库。

作为优选的是,所述zabbix代理服务器配置为主动模式。

作为优选的是,所述zabbix监控系统还包括:

预定数量的zabbix服务器代理,所述zabbix服务器代理用于接收对应zabbix代理服务器采集的被监控端的目标数据,并将接收的数据发送至所述zabbix服务器。

作为优选的是,所述zabbix服务器接收的数据均来自于所述zabbix服务器代理;

或者,所述zabbix服务器接收的数据来自于所述zabbix服务器代理和所述zabbix代理服务器。

作为优选的是,所述zabbix服务器代理配置为主动模式。

作为优选的是,所述zabbix服务器的历史缓存项配置为最大值。

作为优选的是,所述zabbix服务器为每个用户分配唯一的身份标识。

作为优选的是,所述zabbix监控系统还包括:

报警触发器,用于在预定的报警机制被触发时向相应的报警信息接收端发送报警信息。

作为优选的是,所述报警触发器的报警方式包括微信、短信和邮件。

作为优选的是,所述报警触发器配置为防误报模式。

本发明的有益效果在于:

本发明的基于分布式关系型数据库的zabbix监控系统,将现有zabbix监控系统的单机数据库替换为分布式关系型数据库,进而解决现有的Zabbix监控系统因采用单机数据库而导致该系统无法兼顾监控对象数据和监控数据存储时间的问题。

本发明的其它特征和优点将在随后具体实施方式部分予以详细说明。

附图说明

通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施方式中,相同的参考标号通常代表相同部件。

图1示出了根据本发明的实施例的基于分布式关系型数据库的zabbix监控系统的架构示意图。

具体实施方式

下面将更详细地描述本发明的优选实施方式。虽然以下描述了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。

实施例:图1示出了本实施例的基于分布式关系型数据库的zabbix监控系统的架构示意图。参照图1,本实施例的基于分布式关系型数据库的zabbix监控系统包括:

四个zabbix代理服务器,所述zabbix代理服务器用于采集对应被监控端的目标数据;

两个web端;

分布式关系型数据库;

zabbix服务器,用于接收采集的被监控端的目标数据,将接收的数据通过相应的web端进行显示,并将接收的数据写入所述分布式关系型数据库。

本实施例中,所述zabbix代理服务器配置为主动模式。

本实施例的基于分布式关系型数据库的zabbix监控系统还包括:

zabbix服务器代理,所述zabbix服务器代理用于接收对应zabbix代理服务器采集的被监控端的目标数据,并将接收的数据发送至所述zabbix服务器。

本实施例中,所述zabbix服务器接收的数据来自于所述zabbix服务器代理和所述zabbix代理服务器。

本实施例中,所述zabbix服务器代理配置为主动模式。

本实施例中,所述zabbix服务器的历史缓存项配置为最大值。

本实施例中,所述zabbix服务器为每个用户分配唯一的身份标识。

本实施例的基于分布式关系型数据库的zabbix监控系统还包括:

报警触发器,用于在预定的报警机制被触发时向相应的报警信息接收端发送报警信息。

本实施例中,所述报警触发器的报警方式包括微信、短信和邮件。

本实施例中,所述报警触发器配置为防误报模式。

以下对本实施例的基于分布式关系型数据库的zabbix监控系统进行更为详细的说明:

分布式关系型数据库结合了传统的RDBMS和NoSQL的最佳特性,兼容Mysql,支持无限的水平扩展,具备强一致性和高可用性。从分布式关系型数据库的功能和特性本身来看:

高度兼容Mysql。无需修改代码即可从Mysql轻松迁移至本方法使用的分布式关系型数据库,分库分表后的Mysql集群亦可通过本方法中使用的分布式关系型数据库工具进行实时迁移。

水平弹性扩展。通过简单地增加新节点即可实现分布式关系型数据库的水平扩展,按需扩展吞吐或存储,轻松应对高并发、海量数据场景。

分布式事务。本方法中使用的分布式关系型数据库支持标准的ACID事务,保证在分布式架构的基础上数据的原子性、隔离性、持久性、一致性。

真正金融级高可用。相比于传统主从(M-S)复制方案,本方法中使用的分布式关系型数据库基于Raft的多数派选举协议可以提供金融级的数据强一致性保证,且在不丢失大多数副本的前提下,可以实现故障的自动恢复,无需人工介入。

一站式HTAP解决方案。本方法中使用的分布式关系型数据库作为典型的OLTP行存数据库,同时兼具强大的OLAP性能,可提供一站式HTAP解决方案,一份存储同时处理OLTP&OLAP,无需传统繁琐的ETL过程。

云原生SQL数据库。本方法中使用的分布式关系型数据库支持公有云、私有云和混合云,通过其本身的包管理器模块可实现自动化运维,使部署、配置和维护变得十分简单。

本方法中使用的分布式关系型数据库对业务没有任何侵入性,能优雅地替换传统的数据库中间件、数据库分库分表等碎片化的分库分表。同时它也让开发运维人员不用关注数据库扩展等细节问题,专注于业务开发,极大地提升研发的生产力。

从架构设计和使用方法上来看:

进行替换后不立即在Zabbix监控系统中使用proxy进行负载均衡。虽然Zabbix支持主Server上使用proxy可实现负载均衡,但是替换过后立即使用会加大复杂度。而单Zabbix Server的情况下,在部署分布式关系型数据库后,Zabbix监控系统的性能指标已经得到大幅度提升,后续可以随着数据增加和业务扩展进行proxy的使用。

通过选择active的模式,减小Server的压力。Zabbix系统Agent端采用主动模式,即ZabbixAgent active,这种模式可以有效减少ZabbixServer的压力。因为在被动模式下,ZabbixServer性能消耗比较多,而在主动模式下,将负载压力下推到Zabbix Agent的采集端,这个压力对单个服务器来说是微乎其微的;但是如果都叠加压到Server上,则Server端会产生负载过大的问题。

将Zabbix里的配置项HistoryCache Size设置为2G最大值,可以弥补硬件的不稳定性。与成指数增长的监控数据量相比,硬件资源总是有限的,这会造成分布式结构化数据库的一些不稳定因素,有时数据写入会比较慢,就会积压到缓存里,把缓存设置的尽量大在一定程度上能够保证数据的不流失。虽然会产生数据积压的情况,但是随着性能的恢复,数据是可以重新写入的,只是产生了一定的延时,但没有造成数据的丢失。

使用多个Session ID对不同的用户进行标识。因为API调用过程中权限的检查是要频繁的查和写同一个表的同一行数据,这会产生严重的事务冲突,特别是在乐观事务下,严重的事务冲突会给数据库带来巨大影响。Session ID是权限检查的最小单元,通过多个读写锁认证机制,可以在一定程度上避免这种情况。

灵活的使用API。随着数据量的增大,Web的一些操作会失效,需要灵活的使用API。失效主要是因为数据库事务比较大,前端会超时,因此,当数据量比较大时,就需要灵活的使用API。

本实施例的基于分布式关系型数据库的zabbix监控系统实现了监控的数据中台化方案。本方法中所涉及到的技术使用和架构设计是用在监控数据的中台化方案,解决了数据大量的采集、存储和查询,可以提供更大量的、更长时间监控的历史数据,方便我们进行数据分析、查询和一些复杂问题的定位。实现了丰富API的调用,可以通过API来灵活的调用数据,保证Web的可用性。分布式结构化数据库本身就是良好的横向扩展能力,且易用性极高。通过横向扩展提高数据库的容量和性能,可以获取更多的数据和更长时间的存储。

本实施例的基于分布式关系型数据库的zabbix监控系统针对传统Zabbix监控系统中监控数据不断增长、监控项不断增大、传统监控系统架构中数据库的性能瓶颈等导致Zabbix监控系统在使用、管理、性能等方面的问题,研究并实现了一种使用分布式关系型数据库,通过其本身高性能、灵活的弹性伸缩、便捷的使用和操作方式,从数据库选型和架构设计以及使用方法等方面,提高Zabbix监控系统可存储的监控数据量、提高其读写底层数据的性能、提高Zabbix监控系统在管理方面的易用性,从而实现大规模、高性能、以操作的Zabbix监控。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。

相关技术
  • 基于分布式关系型数据库的Zabbix监控系统
  • 一种基于zabbix的组播码流监控系统及方法
技术分类

06120112686002