一,接口轮询
import time
import requests
from xmlrpc.client import ServerProxy
# 替换为你的企业微信API地址
API_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_API_KEY"
# 多个Supervisor服务器配置
supervisor_servers = [
{
"host": "192.168.1.110",
"port": 9001,
"user": "admin",
"password": "123456",
}
# ... 添加更多Supervisor服务器配置
]
def create_server_proxy(server_config):
server_url = f"http://{server_config['user']}:{server_config['password']}@{server_config['host']}:{server_config['port']}/RPC2"
return ServerProxy(server_url)
# 为每个Supervisor服务器创建ServerProxy实例
server_proxies = [create_server_proxy(server_config) for server_config in supervisor_servers]
def send_message(content):
payload = {
"msgtype": "text",
"text": {
"content": content
}
}
response = requests.post(API_URL, json=payload)
if response.status_code == 200:
print("消息发送成功")
else:
print("消息发送失败,错误代码:", response.status_code)
def main():
while True:
try:
for server, server_config in zip(server_proxies, supervisor_servers):
processes = server.supervisor.getAllProcessInfo()
for process in processes:
if process['statename'] in ['FATAL', 'EXITED','STOPPED']:
message = f"Host: {server_config['host']} - 进程 {process['name']} 状态异常:{process['statename']} 请及时关注!"
print(message)
#send_message(message)
time.sleep(60) # 每分钟检查一次进程状态
except Exception as e:
print(f"监控过程中出现错误:{e}")
if __name__ == "__main__":
main()
二,事件监听
网友评论