mq为我们提供丰富的API,我们可以通过对其api的访问来监控mq的状态。例如:消息堆积情况,链接情况等。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import json
import httplib
import base64
import socket
import time
import logging
import logging.config
import requests
# rabbitmq服务器
useServerList = []
prodServerList = []
#betaServerList = []
# mq连接信息
port = 15672
username = "userName"
password = "yourPasswd"
# 构建api路径
path = "/api/overview"
method = "GET"
# udp monintor url
HOST = "http://localhost:1988/metrics"
# log_format
LOG_FILENAME = "error.log"
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(filename)s[:%(lineno)d] - %(message)s"
DATE_FORMAT = "%m-%d-%Y %H:%M:%S %p"
logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT, filemode='a')
# 获取线上在用的mq主机
def getUsingMq(serverList):
for server in serverList:
sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sk.settimeout(2)
try:
sk.connect((server, port))
useServerList.append(server)
except Exception:
logging.error("