使用zabbix监控rabbitmq

本文档详细介绍了如何配置RabbitMQ的监控专用账号,设置权限,并通过Zabbix进行集成。首先,创建了名为zabbix的用户并赋予了监控权限,接着设置了允许访问的资源权限。然后,将相关脚本放入Zabbix的scripts目录,并配置了Zabbix代理的用户参数。最后,测试了脚本的正确性,确保能够从Zabbix服务器获取RabbitMQ的节点、队列和状态信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、rabbitmq添加监控专用账号

rabbitmqctl add_user zabbix zabbixpass
rabbitmqctl set_user_tags zabbix monitoring

#对何种资源具有配置、写、读的权限set_permissions [-p <vhostpath>] <user> <conf> <write> <read>,如'^(amq\.gen.*|amq\.default)$'可以匹配server生成的和默认的exchange,'^$'不匹配任何资源,下面可以根据实际情况调整权限
rabbitmqctl set_permissions -p / zabbix ".*" ".*" ".*"
rabbitmqctl list_user_permissions zabbix
Listing permissions for user "zabbix"
/	.*	.*	.*

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

参考下载地址:https://github.com/jasonmcintosh/rabbitmq-zabbix

[root@centos74 ~]$ cat /etc/zabbix/zabbix_agentd.d/userparameter_rabbitmq.conf 
UserParameter=rabbitmq.discovery_queue,/etc/zabbix/script/rabbitmq/list_rabbit_queues.sh
UserParameter=rabbitmq.discovery_shovels,/etc/zabbix/script/rabbitmq/list_rabbit_shovels.sh
UserParameter=rabbitmq.discovery_nodes,/etc/zabbix/script/rabbitmq/list_rabbit_nodes.sh
UserParameter=rabbitmq[*],/etc/zabbix/script/rabbitmq/rabbitmq-status.sh $1 $2 $3

[root@centos74 ~]$ cd /etc/zabbix/script/rabbitmq/
[root@centos74 rabbitmq]# pwd
/etc/zabbix/scripts/rabbitmq
[root@centos74 rabbitmq]# chown zabbix:zabbix ./*
[root@centos74 rabbitmq]# chmod 755 ./*
[root@centos74 rabbitmq]# ll -a
total 44
drwxr-xr-x 2 root   root    4096 Dec  7 17:19 .
drwxr-xr-x 3 root   root    4096 Dec  7 17:18 ..
-rwxr-xr-x 1 zabbix zabbix 12428 Dec  7 16:31 api.py
-rwxr-xr-x 1 zabbix zabbix   390 Oct 26  2016 list_rabbit_nodes.sh
-rwxr-xr-x 1 zabbix zabbix   392 Oct 26  2016 list_rabbit_shovels.sh
-rwxr-xr-x 1 zabbix zabbix   392 Oct 26  2016 list_rabbit_queues.sh
-rwxr-xr-x 1 zabbix zabbix   136 Dec  7 16:22 .rab.auth
-rwxr-xr-x 1 zabbix zabbix   748 Oct 26  2016 rabbitmq-status.sh

[root@centos74 rabbitmq]# cat .rab.auth 
USERNAME=zabbix
PASSWORD=zabbixpass
CONF=/etc/zabbix/zabbix_agent.conf
LOGLEVEL=INFO
LOGFILE=/var/log/zabbix/rabbitmq_zabbix.log
PORT=15672
#.rab.auth 配置文件参数说明
USERNAME:rabbitmq管理界面登录用户名
PASSWORD:rabbitmq管理界面登录密码
CONF:指定 zabbix_agentd 配置文件路径
LOGLEVEL:指定日志级别,如果监控调试OK,可将此值改为INFO
LOGFILE:指定日志文件路径
PORT:指定rabbitmq管理访问端口

[root@centos74 rabbitmq]# chown zabbix:zabbix /var/log/zabbix/rabbitmq_zabbix.log
[root@centos74 rabbitmq]# chmod 755 /var/log/zabbix/rabbitmq_zabbix.log

[root@centos74 rabbitmq]# cat list_rabbit_nodes.sh
#!/bin/bash
#
# https://github.com/jasonmcintosh/rabbitmq-zabbix
#
cd "$(dirname "$0")"
. .rab.auth

if [[ -z "$HOSTNAME" ]]; then
    HOSTNAME=`hostname`
fi
if [[ -z "$NODE" ]]; then
    NODE=`hostname`
fi

./api.py --username=$USERNAME --password=$PASSWORD --check=list_nodes --filter="$FILTER" --conf=$CONF --hostname=$HOSTNAME --node="$NODE" --loglevel=${LOGLEVEL} --logfile=${LOGFILE}

[root@centos74 rabbitmq]# cat list_rabbit_shovels.sh
#!/bin/bash
#
# https://github.com/jasonmcintosh/rabbitmq-zabbix
#
cd "$(dirname "$0")"
. .rab.auth

if [[ -z "$HOSTNAME" ]]; then
    HOSTNAME=`hostname`
fi
if [[ -z "$NODE" ]]; then
    NODE=`hostname`
fi

./api.py --username=$USERNAME --password=$PASSWORD --check=list_shovels --filter="$FILTER"  --hostname=$HOSTNAME --node="$NODE"  --conf=$CONF  --loglevel=${LOGLEVEL} --logfile=${LOGFILE}


[root@centos74 rabbitmq]# cat  list_rabbit_queues.sh
#!/bin/bash
#
# https://github.com/jasonmcintosh/rabbitmq-zabbix
#
cd "$(dirname "$0")"
. .rab.auth

if [[ -z "$HOSTNAME" ]]; then
    HOSTNAME=`hostname`
fi
if [[ -z "$NODE" ]]; then
    NODE=`hostname`
fi

./api.py --username=$USERNAME --password=$PASSWORD --check=list_queues --filter="$FILTER" --conf=$CONF --hostname=$HOSTNAME --node="$NODE"  --loglevel=${LOGLEVEL} --logfile=${LOGFILE}

[root@centos74 rabbitmq]# cat rabbitmq_status.sh
#!/bin/bash
#
# https://github.com/jasonmcintosh/rabbitmq-zabbix
#
cd "$(dirname "$0")"
. .rab.auth

if [[ -z "$HOSTNAME" ]]; then
    HOSTNAME=`hostname`
fi
if [[ -z "$NODE" ]]; then
    NODE=`hostname`
fi

./api.py --username=$USERNAME --password=$PASSWORD --c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值