本文转自我的公众号:testerzhang,文章链接:https://mp.weixin.qq.com/s/8Z2r42RocY3cNnGOApVKzQ
前言
近期工作上接手了一个采用RabbitMQ队列数的项目,为了避免队列数过高,需要提前监控每个vhost下面的队列数情况,于是写了一个Python函数。
RabbitMQ
RabbitMQ是实现了高级消息队列协议的开源消息代理软件。它的Web管理页面默认端口是15672,通过登录管理界面,我们可以查看各个队列的情况,发布的队列数,生产消费的速率。
为此我们利用这个web管理界面的接口,直接请求即可拿到相关数据。
代码图
image.png这里利用了from requests.auth import HTTPBasicAuth进行认证鉴权,然后结合API接口直接请求。
说明
该函数需要传入以下参数:
url = 'http://xxx.xx.xx.xx:15672'
username = '用户名'
password = '密码'
vhost = "/test_mq" 这里需要根据实际的vhost填写
- url: RabbitMQ管理界面的URL
- username: RabbitMQ管理界面的用户名
- password: RabbitMQ管理界面的密码
- vhost: 对应你要监控的vhost
- threshold: 队列数阈值,超过打印出来。
邮件推送
通过这个函数,根据自己实际需求修改一下,再利用发邮件函数进行推送,这样就可以达到监控。
网友评论