zabbix监控rabbitmq队列数

被监控客户端的操作系统 cat /etc/issue,ubuntu 14.04.3 server
zabbix-agent --version v2.2.2
zabbix-server --version v4.0.7

成都创新互联公司是一家专业提供凭祥企业网站建设,专注与成都网站制作、成都做网站、H5网站设计、小程序制作等业务。10年已为凭祥众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

本篇文章主要讲的是自定义监控项

使用有sudo权限的用户执行下列操作
第一步: cat /etc/zabbix/scripts/rabbitmq.sh
#! /bin/bash
passwd=" * " # 此处为sudo密码 ,如果是root用户执行请忽略
echo "$passwd" | sudo -S rabbitmqctl list_queues -p /
| sed 1d | sed -n '/'$1'/p' | awk -F ' ' '{print $2}'
这个脚本的作用就是输出rabbitmq指定虚拟主机的下面的队列数

后面考虑安全问题,服务器密码不应该暴露在服务器上.决定使用sudo 解决这个问题
让普通用户执行rabbitmqctl 这个命令的时候免密,其他命令需要密码.经过测试
在sudo visudo 也就是 /etc/sudoers添加下面两句.(我是把 原来的%sudo ALL=(ALL:ALL) ALL 删除后再后面添加这两句的)

wang ALL=(ALL) ALL
wang ALL=(ALL) NOPASSWD:/usr/sbin/rabbitmqctl

建议root用户禁用的服务器先解锁再给root用户设置一个密码
以免配置文件写错导致普通用户没有sudo权限,又登录不了root用户.那么只有重启服务器进入单用户模式修改
/etc/sudoers 文件了. 所以最终的脚本内容是

cat scripts/rabbitmq.sh
#!/bin/bash
sudo rabbitmqctl list_queues -p /test | sed 1d | sed -n '/'$1'/p' | awk -F ' ' '{print $2}'

第二步:配置客户端配置文件
UnsafeUserParameters=1 这个由原来的0改为1 表示允许自定义监控项
AllowRoot=1 允许agent以root用户执行
自定义监控项可以在/etc/zabbix/zabbix_agented.conf 添加也可以在/etc/zabbix/zabbix_agentd.conf.d/下面新建 conf文件 (前提是配置文件有Include=/etc/zabbix/zabbix_agentd.conf.d/),我在配置文件直接加的 每个消息队列一个key值,(如果key值过多不适合这个方法,请自己动脑子写脚本。我监控的虚拟主机下14个消息队列。下面是一个例子)

UserParameter=$key值,sh /etc/zabbix/scripts/rabbitmq.sh $1
$1为sudo rabbitmqctl list_queues -p /* | sed 1d | sed -n '/'$1'/p' | awk -F ' ' '{print $1}' 输出的消息队列名称

重启下zabbix_agent服务 sudo service zabbix_agent restart
可以使用zabbix_get 测试下(我的系统没有这个命令就没测试了)

第三步:登录zabbix网页端 可以先创建一个rabbitmq 主机组,然后将服务器加入该主机组中.
创建模板 然后创建监控项目,然后创建触发器(分为告警,一般严重,严重)

参考文档:
https://blog.csdn.net/baidu_38432732/article/details/90756509 参考文档


文章题目:zabbix监控rabbitmq队列数
链接URL:http://azwzsj.com/article/gohsop.html