Python3-实现钉钉报警,python3-报警,import req
Python3-实现钉钉报警,python3-报警,import req
import requestsimport sysimport jsondingding_url = ‘https://oapi.dingtalk.com/robot/send?access_token=6d11af3252812ea50410c2ccb861814a6ed11b2306606934a5d4ca9f2ec8c09‘data = {"msgtype": "markdown","markdown": {"title": "监控","text": "apche异常"}}headers = {‘Content-Type‘:‘application/json;charset=UTF-8‘}send_data = json.dumps(data).encode(‘utf-8‘)requests.post(url=dingding_url,data=send_data,headers=headers)
#coding: utf-8import psutilimport requestsimport timeimport osimport jsonmonitor_name = set([‘httpd‘,‘cobblerd‘]) # 用户指定监控的服务进程名称proc_dict = {}proc_name = set() # 系统检测的进程名称monitor_map = { ‘httpd‘: ‘systemctl restart httpd‘, ‘cobblerd‘: ‘systemctl restart cobblerd‘ # 系统在进程down掉后,自动重启}dingding_url = ‘https://oapi.dingtalk.com/robot/send?access_token=b5258c4335ed8ab792075013c965efcbf4f8940f92e7bd936cdc7842d3bf9405‘# 钉钉机器人token使用参考文档:http://www.pc6.com/infoview/Article_108931.htmlwhile True: for proc in psutil.process_iter(attrs=[‘pid‘,‘name‘]): proc_dict[proc.info[‘pid‘]] = proc.info[‘name‘] proc_name.add(proc.info[‘name‘]) proc_stop = monitor_name - proc_name # 通过集合的形式来找出停掉的进程名,前者有但是后者没有的 if proc_stop: # 如果确实有监控的进程停掉了,那么我们需要告警以及自动重启功能 for p in proc_stop: p_status = ‘停止‘ p_name = p data = { "msgtype": "markdown", "markdown": { "title": "监控信息", "text": "### %s\n" % time.strftime("%Y-%m-%d %X") + "> #### 服务名:%s \n\n" % p_name + "> #### 状态:%s \n\n" % p_status + "> #### 正在尝试启动" }, } headers = {‘Content-Type‘:‘application/json;charset=UTF-8‘} send_data = json.dumps(data).encode(‘utf-8‘) requests.post(url=dingding_url,data=send_data,headers=headers) os.system(monitor_map[p_name]) # 执行重启命令,然后判断是否重启成功 proc_set = set() for proc_again in psutil.process_iter(attrs=[‘pid‘,‘name‘]): proc_set.add(proc_again.info[‘name‘]) if p in proc_set: # 如果进程启动成功,p是以前停掉的进程,proc_set是已经重启过一次后的所有进程集合 p_status = ‘成功‘ p_name = p data = { "msgtype": "markdown", "markdown": { "title": "监控信息", "text": "### %s\n" % time.strftime("%Y-%m-%d %X") + "> #### 服务名:%s \n\n" % p_name + "> #### 状态:%s \n\n" % p_status + "> #### 已经启动成功,服务正在运行!" }, } headers = {‘Content-Type‘:‘application/json;charset=UTF-8‘} send_data = json.dumps(data).encode(‘utf-8‘) requests.post(url=dingding_url,data=send_data,headers=headers) else: p_status = ‘重启失败‘ p_name = p data = { "msgtype": "markdown", "markdown": { "title": "监控信息", "text": "### %s\n" % time.strftime("%Y-%m-%d %X") + "> #### 服务名:%s \n\n" % p_name + "> #### 状态:%s \n\n" % p_status + "> #### Sorry,服务启动失败鸟!" }, } headers = {‘Content-Type‘:‘application/json;charset=UTF-8‘} send_data = json.dumps(data).encode(‘utf-8‘) requests.post(url=dingding_url,data=send_data,headers=headers) time.sleep(5)
Python3-实现钉钉报警
相关内容
- python *与**,python,python中,在形
- Python-控制流语句,python-流语句,控制流语句在 Pyt
- 教你用Python创建微信聊天机器人,python聊天机器人
- python 实现语音聊天机器人的示例代码,python示例代码
- Python iter()函数用法实例分析,pythoniter
- python实现机器人行走效果,python机器人行走
- python机器人行走步数问题的解决,python机器人行走步
- Python使用Tkinter实现机器人走迷宫,pythontkinter
- python Flask实现restful api service,flaskrestful
- 使用Python & Flask 实现RESTful Web API的实例,
评论关闭