经验总结监控推送监控消息到钉钉群
zphj1987需求
实现的需求很简单,就是需要定期发送一个监控信息到钉钉群里面,避免需要人工登录机器查询信息,需要监控的机器本身无法上网,通过一台能上网的windows机器做中转
架构
1、被监控机器定期获取数据,并开启http服务
2、windows机器通过http请求定期获取被监控机器的数据
3、windows机器把消息发送出去
实现
机器提供数据
开启http服务
1
| python -m http.server 4444
|
获取监控数据
1 2 3 4 5 6 7 8 9
| #! /bin/sh
for a in `seq 2000` do date > ceph.info ceph -s >> ceph.info sleep 180 done
|
通过http://ip:4444/ceph.info
获取数据
推送的python脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
import requests import json import time
while True:
url="http://myip:4444/ceph.info" r = requests.get(url) reslist=r.text print(reslist) r.close() url = 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxx headers = {'Content-Type': 'application/json'}
data = { 'msgtype': 'text', 'text': { 'content': '状态(30分钟发送一次):%s' %(reslist) } } response = requests.post(url, headers=headers, json=data)
print(response.json()) response.close() time.sleep(1800) ## 获取并推送数据
|
上面的注意关闭下链接,否则在超过1小时的监控周期的时候,连接会中断,也可以在里面加入重试的操作
上面的操作之后,就可以实现消息到钉钉群的功能了