简单的方法使用zabbix监控rabbitmq消息队列堵塞
2016-10-25 14:14
567 查看
简单的方法使用zabbix监控rabbitmq消息队列堵塞
公司需要把rabbitmq的队列信息使用zabbix监控,一开始使用最简单的办法也是最傻的办法去每条消息队列添加一个key值,然后在监控项里添加。(公司的rabbitmq三百多个消息队列)
[root@rabbitmq02 rootadmin]# rabbitmqctl list_queues | grep Test147.MicaConsume | awk '{print $2}'
0
我的想法是如上命令作为自定义key然后大于多少就报警这条消息队列堵塞:
UserParameter=Test147.MicaConsume ,rabbitmqctl list_queues | grep Test147.MicaConsume | awk '{print $2}'
其中Test147.MicaConsume为队列名字,三百多个,我就创建了三百多个key...
加了一个下午的时间,结果发现根本就不可用!!!
原因:
1、rabbitmqctl这条命令是root用户使用的,zabbix用户没有此权限
2、即使有权限,执行时间要两三秒中左右,zabbix获取值得时间为一秒,超过了就默认为没有获取到
网上查找了资料也很少有写这个的,写了的也是用了Python等语言搞很复杂的脚本获取rabbitmq自己的监控页面内容,很麻烦,不适合我这种菜鸟。
后来由于公司有别的事情就放了很长一段时间都没有去研究。
最近有点空闲时间于是就研究了一下,想到了一个很有效但是不高端的方法...
计划任务将队列信息获取到后输入到一个文档:
crontab -e
*/1 * * * * /usr/sbin/rabbitmqctl list_queues | grep -v delay | grep -v queues > /tmp/rabbitmq.txt
这个计划任务的意思就是每一分钟把所有消息队列的信息以及消息数输出到/tmp/rabbitmq.txt
zabbix监控agent最后添加一个key:
UserParameter=queues,/usr/bin/awk '{print $2}' /tmp/rabbitmq.txt | sort -nr | awk 'NR==1{print$1}'
公司需要把rabbitmq的队列信息使用zabbix监控,一开始使用最简单的办法也是最傻的办法去每条消息队列添加一个key值,然后在监控项里添加。(公司的rabbitmq三百多个消息队列)
[root@rabbitmq02 rootadmin]# rabbitmqctl list_queues | grep Test147.MicaConsume | awk '{print $2}'
0
我的想法是如上命令作为自定义key然后大于多少就报警这条消息队列堵塞:
UserParameter=Test147.MicaConsume ,rabbitmqctl list_queues | grep Test147.MicaConsume | awk '{print $2}'
其中Test147.MicaConsume为队列名字,三百多个,我就创建了三百多个key...
加了一个下午的时间,结果发现根本就不可用!!!
原因:
1、rabbitmqctl这条命令是root用户使用的,zabbix用户没有此权限
2、即使有权限,执行时间要两三秒中左右,zabbix获取值得时间为一秒,超过了就默认为没有获取到
网上查找了资料也很少有写这个的,写了的也是用了Python等语言搞很复杂的脚本获取rabbitmq自己的监控页面内容,很麻烦,不适合我这种菜鸟。
后来由于公司有别的事情就放了很长一段时间都没有去研究。
最近有点空闲时间于是就研究了一下,想到了一个很有效但是不高端的方法...
计划任务将队列信息获取到后输入到一个文档:
crontab -e
*/1 * * * * /usr/sbin/rabbitmqctl list_queues | grep -v delay | grep -v queues > /tmp/rabbitmq.txt
这个计划任务的意思就是每一分钟把所有消息队列的信息以及消息数输出到/tmp/rabbitmq.txt
zabbix监控agent最后添加一个key:
UserParameter=queues,/usr/bin/awk '{print $2}' /tmp/rabbitmq.txt | sort -nr | awk 'NR==1{print$1}'
相关文章推荐
- 使用Zabbix监控RabbitMQ消息队列
- shell脚本监控rabbitmq队列消息数量(堵塞情况)
- 使用PHP访问RabbitMQ消息队列的方法示例
- 消息队列系列(二):.Rabbitmq的使用及Web监控工具使用
- Java使用Rabbitmq惊喜队列queue和消息内容的本地持久化核心方法。(内容存储在硬盘)
- 消息队列系列(二):.Rabbitmq的使用及Web监控工具使用
- 在C#中使用消息队列RabbitMQ
- RabbitMQ消息队列(六):使用主题进行消息分发
- 柯南君:看大数据时代下的IT架构(3)消息队列之RabbitMQ-安装、配置与监控
- 柯南君:看大数据时代下的IT架构(3)消息队列之RabbitMQ-安装、配置与监控
- RabbitMQ消息队列(六):使用主题进行消息分发(转)
- Centos5.4 消息队列rabbitmq的安装及使用
- MSMQ(微软消息队列)简单使用-支持离线提交数据(供阅)
- Linux系统下使用mail发送一封简单的Internet邮件【以及验证邮件是否发送成功sendmail -bp,必须是root用户才可以使用此命令查看邮件消息队列中的内容】
- 在C#中使用消息队列RabbitMQ
- RabbitMQ消息队列(六):使用主题进行消息分发
- .Net消息队列的使用方法
- 在C#中使用消息队列RabbitMQ -摘自网络(包括RabbitMQ的配置)
- 简单的使用消息队列的多线程通信