本发明属于消息队列监控技术领域,主要应用于互联网行业各种类型的消息队列的监控。
背景技术:
对于互联网公司而言,随着业务的发展,消息队列应用越来越广泛,为了能及时发现故障,需要一个很可行的监控方案。目前,监控消息队列的方案存在如下缺点:
(1)无法及时通知管理人员:很多消息队列自身虽然提供了监控方案,但是,由于不支持短信或者邮件通知机制,无法第一时间通知管理人员,导致无法及时发现问题,从而造成重大损失。
(2)监控固定,无法个性化定制:消息队列自身提供的监控方案,一般是无法个性化定制,很难满足也无需求。
(3)可行性比较低:使用消息队列自身提供的监控,需要外网ip,存在一定的风险和成本,很多场景下不允许使用外网ip,导致无法使用该方案。
技术实现要素:
本发明的目的在于针对现有技术的不足,提供一种基于zabbix的消息队列监控方法,可以轻松实现大规模消息队列集群的监控,并且使用方便,维护成本低。
本发明的目的是通过以下技术方案来实现的:一种基于zabbix的消息队列监控方法,包括以下步骤:
(1)管理消息队列主机
在zabbix平台上创建消息队列主机信息,作为某个消息队列服务的唯一标识。同时,加载消息队列的监控模板。
zabbix是一种支持短信和邮件的监控服务器。
消息队列主机是指在zabbix中为某个消息队列创建的主机信息,作为监控某个消息队列的唯一标识。
消息队列的监控模板是指根据消息队列接口,设置的采集项、触发器以及趋势图,该模板将被加载到消息队列主机信息中。
(2)管理消息队列配置
针对消息队列服务,按照所述消息队列主机信息,创建消息队列配置,用于采集监控数据。
消息队列配置是指配置消息队列主机名称的配置,用于采集监控数据。
(3)采集监控数据
根据消息队列配置,针对每个消息队列主机,调用消息队列的接口,获取当前的状态信息,保存到监控数据文件里。
监控数据文件是指保存采集到的监控数据,所述消息队列主机对应一个监控数据文件。
(4)发送监控数据
根据消息队列配置,针对每个消息队列主机,调用zabbix服务端接口,发送监控数据文件到消息队列主机对应的zabbix服务端。
(5)告警管理
针对消息队列主机,在zabbix服务端里设置相应的短信和邮件接收人信息,在消息队列服务发生故障时候,第一时间通知管理人员。
本发明的有益效果是:本发明基于zabbix的消息队列监控方法,可以轻松实现大规模消息队列集群的监控,并且使用方便,维护成本低。
附图说明
图1是本发明基于zabbix的消息队列监控方法流程图。
具体实施方式
下面结合附图和具体实施例,对本发明作进一步详细说明。
图1是本发明基于zabbix的消息队列监控方法流程图。本发明方法首先在zabbix平台上创建所述消息队列主机,同时加载所述消息队列的监控模板;然后在所述消息队列配置里创建所述消息队列主机,接下来,定期采集所述消息队列主机对应的监控数据,然后发送到所述zabbix系统中。如果所述消息队列发生故障,此时,zabbix会触发告警,通知管理人员处理。
下面详细介绍本发明方法的具体实现过程:
步骤s100:管理消息队列主机
在zabbix系统“主机”页面,创建主机组,命名为mq,然后选择mq主机组,创建消息队列主机,命名格式为:<消息队列类型>_<端口>_<ip>,说明如下:
消息队列类型:由于存在不同类型的消息队列,这里以类型作为区分;
端口:消息队列服务端口,不同消息队列服务端口不同,便于维护消息队列监控。
ip:表示所述消息队列所在服务器的ip,便于管理人员在收到告警时处理问题。
创建消息队列主机后,选择“模板”加载消息队列的监控模板,这样,在zabbix系统里,就保存了所述消息队列主机的基本信息。
如果需要删除某个消息队列主机,在zabbix系统里,找到指定的主机,点击删除,同时删除消息队列配置中相应的主机信息。
步骤s101:管理消息队列配置
在创建所述消息队列主机后,需要在消息队列配置文件里,添加对应的消息队列主机,与zabbix系统中的消息队列主机保持一致。
如果存在多个所述消息队列主机,每行一个。
步骤s102:采集监控数据
这里采用脚本形式,调用所述消息队列相应的接口,并且按照消息队列的监控模板中的采集项进行过滤,然后把这些数据连同消息队列主机名写入到监控数据文件,该文件每行数据格式如下:
<主机名><采集项><时间戳><采集值>
主机名是所述消息队列主机,与所述消息队列配置中的保持一致;
采集项是脚本里设置的采集项,和所述消息队列的监控模板中的采集项保持一致;
时间戳:数值型格式的时间戳;
采集值是采集项对应的值,不能为空,否则发送监控数据报错。
在定时任务中,按照如下形式设置采集数据任务:
*/1****cd/path/to/&&shcoll_mq.sh
coll_mq.sh是采集监控数据的脚本,调用所述消息队列的接口,采集所述消息队列中的诸如node,overview之类的信息,保存在所述消息队列主机对应的监控数据文件中。
步骤s103:发送监控数据
采集监控数据结束后,调用zabbix发送监控数据接口,将监控数据记录在zabbix系统中,发送监控数据接口如下:
zabbix_sender--zabbix-server<zabbix服务器ip>--port<zabbix服务器端口>--input-file<监控数据文件>--with-timestamps
说明:
zabbix服务器ip是zabbix服务器所在的服务器ip;
zabbix服务器端口是zabbix服务器的服务端口;
监控数据文件就是所述消息队列主机对应的监控数据文件。
针对所述消息队列配置中的每个主机,调用该接口,发送数据到zabbix系统。
发送监控数据结束后,需要清空监控数据文件,避免数据重复导致报错。
为了方便实现该功能,可以在采集监控数据脚本中调用该接口,采集监控数据后,调用该接口发送数据。
步骤s104:告警管理
在zabbix系统里,设置主机组mq对应的短信和邮件接收人,以及告警策略,当所述消息队列服务故障时,zabbix根据告警设置,即可通知管理人员及时处理。
这里可以设置哪些人接收短信和邮件,管理方便灵活。
本发明以一种简单可行的方法,实现了对所述消息队列有效监控,解决了上文提到的问题。