钉钉监控服务

import requests
import os
import time
import json
import psutil
import socket
while True:
# 获取本机计算机名称
hostname = socket.gethostname()
# 获取本机ip
ip = socket.gethostbyname(hostname)
time_now = time.strftime('%Y-%m-%d %H:%M:%S')
url = 'https://oapi.dingtalk.com/robot/send?access_token=91a38bc1a6afc21b23bf450a058baa9baa6d3beb7fcad1b431db18c97c258ce4'
def process():
proc_dict = {}
proc_name = set()
# 要监控服务集合
monitor_name = {'httpd'}
# 要监控的服务
server={'httpd':'systemctl start httpd'}
for p in psutil.process_iter(attrs=['pid','name']):
# psutil.process_iter:返回操作系统洗的全部进程名称和ID
proc_dict[p.info['pid']]=p.info['name']
proc_name.add(p.info['name'])
proc_stop = monitor_name - proc_name
'''>> > a = {'1'} >> > b = {'2', '3', '4'} >> > a - b {'1'} 要监控服务-系统服务=死掉的'''
if proc_stop:
for p1 in proc_stop:
p_status = '停止'
data = {"msgtype": "text","text": {"content": "主机ip:%s\n服务:%s\n状态:%s\n%s" % (ip,p1, p_status,time_now)},"at": {"atMobiles": [],"isAtAll": False}}
headers = {"Content-Type": "application/json", "Chartset": "utf-8"}
# 把json转变为字符串格式数据
send_data = json.dumps(data)
# 这个是发送post请求,请求钉钉接口
response = requests.post(url=url, headers=headers, data=send_data)
# 讲求成功后返回的数据
content = response.content.decode()
os.system(server[p1])
proc_a = set()
for i in psutil.process_iter(attrs=['pid','name']):
proc_a.add(i.info['name'])
if p1 in proc_a:
p_status = '启动'
data = {"msgtype": "text", "text": {"content": "主机ip:%s\n服务:%s\n状态:%s\n%s" % (ip, p1, p_status, time_now)},"at": {"atMobiles": [], "isAtAll": False}}
send_data = json.dumps(data)
response = requests.post(url=url, headers=headers, data=send_data)
content = response.content.decode()

else:
p_status = '停止'
data = { # 此消息的类型为固定的text
"msgtype": "text", "text": { # 消息内容
"content": "主机ip:%s\n服务:%s\n状态:%s\n%s" % (ip, p1, p_status, time_now)},
"at": { # 被@人手机号
"atMobiles": [], "isAtAll": False}}
send_data = json.dumps(data)
response = requests.post(url=url, headers=headers, data=send_data)
content = response.content.decode()

time.sleep(5)
process()

猜你喜欢

转载自www.cnblogs.com/ZZYMiss/p/11502584.html