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