概述
今天主要介绍怎么用zabbix去实现消息队列的监控,重点在于:
- 1、消息队列的入队列
- 2、消息队列的出队列
- 3、未读队列,堆积的队列
![923373d5422ed184efa825bdab89e1ae.png](https://i-blog.csdnimg.cn/blog_migrate/0a5b28c85c32418cdd50ebab53f094cf.jpeg)
一、监控原理
1、rabbitmq监控网页提供api接口
接口文档:http://localhost:15672/api/index.html
curl -s -u hwb:xxx http://127.0.0.1:15672/api/queues
![e85f25666a2b5e4997a3ddd34d4e7392.png](https://i-blog.csdnimg.cn/blog_migrate/23e9a86071df148ca73c584beeff858d.jpeg)
在线json格式化(http://www.bejson.com/)如下:
![87ddb0e6dd5ec275b9e1a3f568af70aa.png](https://i-blog.csdnimg.cn/blog_migrate/98a1e3cfec03ed790e38e07e68f112ef.jpeg)
json结果重要项如下
- name: 队列名字
- consumers:消费者数量
- durable:是否持久化
- messages_ready:堆积的消息数,监控的重点
- message_stats deliver_get:已处理的消息数,监控的重点
二、Python获取队列信息(rabbitmqmonitor.py)
# -*- coding: utf-8 -*-try: import jsonexcept: import simplejson as jsonimport commands (status, output) = commands.getstatusoutput("""curl -s -u hwb:xxx http://127.0.0.1:15672/api/queues""")outputjson = json.loads(output)for one in outputjson: print(one['name']) print(one['messages_ready']) if(one.has_key('message_stats')): if(one['message_stats'].has_key('deliver_get')): print(one['message_stats']['deliver_get']) continue print(0)
分别输出:namemessages_readydeliver_get信息
![4596f452cd14befe62ea5e0f1d50b299.png](https://i-blog.csdnimg.cn/blog_migrate/543c496dcb827d9fb9f95493acc39a9d.jpeg)
到这里我们就可以获取到我们需要的信息了。
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
![91b956044a728eeddad61d2590408a4f.gif](https://i-blog.csdnimg.cn/blog_migrate/c4fb1d2906dddafaade693f6eec5d778.gif)