使用github仓库内脚本文件监控rabbitmq

一、准备工作

环境:

主机名:

zabbix             IP:192.168.1.2      安装zabbix_server 

rabbitmq01    IP:192.168.1.13  安装zabbix_agent,zabbix_get

1、zabbix_server,zabbix_agent软件已安装,且能正常访问zabbix   web界面

zabbix_agent先配置被动监控

[root@rabbitmq01 ~]# grep -v '^$' /etc/zabbix/zabbix_agentd.conf |grep -v '#'
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1,192.168.1.2
ServerActive=127.0.0.1,192.168.1.2
Hostname=rabbitmq02
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameter=1

zabbix版本5.0

2、rabbitmq已搭建且能正常访问web界面

版本无所谓

3、先下载脚本ZIP至windows

下载地址:GitHub - jasonmcintosh/rabbitmq-zabbix: Zabbix RabbitMQ Configuration

二、rabbitmq添加监控用户
1、rabbitmq添加监控专用账号

添加用户zabbix,密码zabbix       (记住账户密码后边会用)

[root@rabbitmq01 ~]#rabbitmqctl add_user zabbix zabbix

[root@rabbitmq01 ~]#rabbitmqctl set_user_tags zabbix monitoring

配置权限

[root@rabbitmq01 ~]#rabbitmqctl set_permissions -p / zabbix ".*" ".*" ".*"

[root@rabbitmq01 ~]# rabbitmqctl list_user_permissions zabbix
Listing permissions for user "zabbix" ...
/	.*	.*	.*
...done.

2、把scripts文件放在目录/etc/zabbix/scripts/rabbitmq

如果agent安装目为/usr/local/etc/请后续更换所有的/etc为/usr/local/etc

[root@rabbitmq01 ~]# unzip rabbitmq-zabbix-master
不能解压请安装unzip
[root@rabbitmq01 ~]# cp -r rabbitmq-zabbix-master/scripts/   /etc/zabbix/
[root@rabbitmq01 ~]# cd /etc/zabbix/scripts/rabbitmq/
[root@rabbitmq01 rabbitmq]# ll
总用量 32
-rwxr-xr-x 1 zabbix zabbix 13739 2月  19 18:31 api.py
-rwxr-xr-x 1 zabbix zabbix   424 2月  18 16:54 list_rabbit_nodes.sh
-rwxr-xr-x 1 zabbix zabbix   426 2月  18 16:54 list_rabbit_queues.sh
-rwxr-xr-x 1 zabbix zabbix   430 2月  18 16:54 list_rabbit_shovels.sh
-rwxr-xr-x 1 zabbix zabbix   782 2月  18 16:54 rabbitmq-status.sh

zabbix监控系统消息队列 zabbix监控集群_zabbix监控系统消息队列

 

3、上传项目中 zabbix_agentd.d 目录下面的 zabbix-rabbitmq.conf 至rabbitmq服务器的zabbix_agentd 扩展配置文件目录

[root@rabbitmq01 rabbitmq-zabbix-master]# cp zabbix_agentd.d/zabbix-rabbitmq.conf /etc/zabbix/zabbix_agentd.d/

[root@rabbitmq01 rabbitmq-zabbix-master]# cd /etc/zabbix/zabbix_agentd.d/

[root@rabbitmq01 zabbix_agentd.d]# ls

zabbix-rabbitmq.conf

4、修改/etc/zabbix/scripts/rabbitmq属组属主设为zabbix,权限755

[root@rabbitmq01 rabbitmq]# pwd
/etc/zabbix/scripts/rabbitmq
[root@rabbitmq01 rabbitmq]# chown zabbix:zabbix ./*
[root@rabbitmq01 rabbitmq]# chmod 755 ./*

zabbix监控系统消息队列 zabbix监控集群_zabbix监控系统消息队列_02

5、创建隐藏文件.rab.auth         (rab前有个点)

[root@rabbitmq01 rabbitmq]# vim .rab.auth

 

USERNAME=guest
PASSWORD=guest
CONF=/etc/zabbix/zabbix_agent.conf
LOGLEVEL=INFO
LOGFILE=/var/log/zabbix/rabbitmq_zabbix.log
PORT=15672

USERNAME:rabbitmq管理界面登录用户名

PASSWORD:rabbitmq管理界面登录密码

 也就是这个界面登录名,密码

zabbix监控系统消息队列 zabbix监控集群_zabbix监控系统消息队列_03

CONF:指定 zabbix_agentd 配置文件路径

LOGLEVEL:指定日志级别,如果监控调试OK,可将此值改为INFO

LOGFILE:指定日志文件路径

PORT:指定rabbitmq管理访问端口

6、修改.rab.auth权限755,属组属主zabbix

[root@rabbitmq01 rabbitmq]# chown zabbix:zabbix .rab.auth

[root@rabbitmq01 rabbitmq]# chown 755  .rab.auth

zabbix监控系统消息队列 zabbix监控集群_zabbix监控系统消息队列_04

7、修改api.py中的中的参数

(若前面路径都是/etc,一致不需要该,若是/usr/local/etc请修改)

zabbix监控系统消息队列 zabbix监控集群_java-rabbitmq_05

查看/var/log/zabbix/rabbitmq_zabbix.log是否一致 (若前面路径都是/etc,一致不需要该,若是/usr/local/etc请修改)

修改 RabbitMQAPI 类中的 __init__ 方法中

zabbix监控系统消息队列 zabbix监控集群_java-rabbitmq_06

 

user_name:rabbitmq管理界面登录用户名      

password:rabbitmq管理界面登录密码

host_name:rabbitmq管理界面地址,也就是现在这台主机地址

修改zabbix_sender地址:

使用porxy方式的话,修改为porxy的ip;直连zabbix server的话,修改为zabbix server的ip

zabbix监控系统消息队列 zabbix监控集群_分布式_07

 8、重启zabbix_agent

[root@rabbitmq01 zabbix]# systemctl restart zabbix-agent.service 
[root@rabbitmq01 ~]# netstat -ntulp |grep 10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      3351/zabbix_agentd  
tcp6       0      0 :::10050                :::*                    LISTEN      3351/zabbix_agentd

若未重启成功

查看有没有rabbitmq_zabbix.log,且属主属组为zabbix

[root@rabbitmq01 rabbitmq]# ls /var/log/zabbix/
rabbitmq_zabbix.log  zabbix_agentd.log  zabbix_agentd.log-20230219
[root@rabbitmq01 rabbitmq]# ll /var/log/zabbix/rabbitmq_zabbix.log 
-rw-rw-r-- 1 zabbix zabbix 122237 2月  19 21:45 /var/log/zabbix/rabbitmq_zabbix.log

 

zabbix监控系统消息队列 zabbix监控集群_java-rabbitmq_08

 若没有rabbitmq_zabbix.log:创建一个并修改属组属主

若权限不一致,修改权限

[root@rabbitmq01 rabbitmq]# touch /var/log/zabbix/rabbitmq_zabbix.log
[root@rabbitmq01 rabbitmq]chmod 755 /var/log/zabbix/rabbitmq_zabbix.log

再次重启

验证:

[root@rabbitmq01 rabbitmq]# ./list_rabbit_nodes.sh 
{"data": [{"{#NODETYPE}": "disc", "{#NODENAME}": "rabbitmq01"}, {"{#NODETYPE}": "ram", "{#NODENAME}": "rabbitmq02"}, {"{#NODETYPE}": "ram", "{#NODENAME}": "rabbitmq03"}]}
[root@rabbitmq01 rabbitmq]# ./list_rabbit_queues.sh 
{"data": [{"{#VHOSTNAME}": "/", "{#QUEUENAME}": "aliveness-test", "{#NODENAME}": "rabbit@rabbitmq01"}, {"{#VHOSTNAME}": "/", "{#QUEUENAME}": "jumper", "{#NODENAME}": "rabbit@rabbitmq01"}, {"{#VHOSTNAME}": "/", "{#QUEUENAME}": "test", "{#NODENAME}": "rabbit@rabbitmq03"}]}
[root@rabbitmq01 rabbitmq]# zabbix_get  -s 127.0.0.1 -p 10050 -k rabbitmq[server,disk_free]
13051510784
[root@rabbitmq01 rabbitmq]# zabbix_get  -s 127.0.0.1 -p 10050 -k rabbitmq[queues]
0

9、然后在zabbix 的webr管理页面导入模板rabbitmq.template.xml

zabbix监控系统消息队列 zabbix监控集群_zabbix监控系统消息队列_09

zabbix监控系统消息队列 zabbix监控集群_分布式_10

zabbix监控系统消息队列 zabbix监控集群_zabbix监控系统消息队列_11

 因为这些模板是基于主动监控模式的,所以下面要配置主动监控

10、配置主动监控

[root@rabbitmq01 rabbitmq]# cd  /etc/zabbix/
[root@rabbitmq01 zabbix]# vim zabbix_agentd.conf

Server=                             一栏注释掉

ServerActive=                填写zabbix_server地址

StartAgents=0             不接受被动检查,也不开启任何端口
RefreshActiveChecks=120

 最终结果为

[root@rabbitmq01 zabbix]# grep -v '^$' /etc/zabbix/zabbix_agentd.conf |grep -v '#'
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
StartAgents=0
ServerActive=192.168.1.2
Hostname=rabbitmq01
 RefreshActiveChecks=120
 Timeout=10
 AllowRoot=1
Include=/etc/zabbix/zabb

重启服务

[root@rabbitmq01 zabbix]# systemctl restart zabbix-agent.service 
[root@rabbitmq01 ~]# netstat -ntulp |grep 10050

看不到10050端口,看不到才属于正常,因为 StartAgents=0# 不接受被动检查,也不开启任何端口

 11、zabbix   web界面配置主动监控

zabbix监控系统消息队列 zabbix监控集群_rabbitmq_12

zabbix监控系统消息队列 zabbix监控集群_zabbix监控系统消息队列_13

 

zabbix监控系统消息队列 zabbix监控集群_java-rabbitmq_14

  

zabbix监控系统消息队列 zabbix监控集群_重启_15