获取消息堆积数的两种方式:
- 通过命令行
cd /usr/lib/rabbitmq/bin && rabbitmqctl list_queues messages_ready | awk 'NR>=2{print }'| awk '{sum+=$1}END{print sum}'
- 通过 RabbitMQ api获取
import requests
# curl -i -u guest:guest http://localhost:15672/api/queues
# curl -i -u admin:FMHdwEgNLk62C8oG9shP http://localhost:15672/api/queues
# headers = {'auth': 'admin:password'}
remote_host = 'http://mqa-eoe2.ichainsoft.com'
local_host = 'http://localhost:15672'
r = requests.get(local_host + '/api/queues', auth=('admin', 'password'))
data = r.json()
# print len(data)
# print r.status_code
s = 0
for dd in data:
s += dd['messages']
print s
比较:
API | 命令行 | |
---|---|---|
效率 | 低 | 高 |
需要Admin密码 | 是 | 否 |
zabbix 可以直接运行 | 是 | 否(需要sudo rabbitmqctl) |
通用性 | 需要配置admin密码 | 需要sudo权限 |
位置 | 公网 | 本地 |
参考: