linux服务监控及运维

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/
目录一, 安装psutil 包二,找到操作系统中所有的服务的name和pid三,找到需要监控但没有启动的服务四,监控服务,如果没有开启则自动开启,[并发邮件通知工作人员]

一, 安装psutil 包

1.1、安装压缩包:以root身份登陆CentOS依次 执行以下命令:

wget https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gz

如果wget 下不下来,则直接在浏览器中复制 粘贴链接https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gz 下载下来,用ftp传输工具传输到linux上,然后再进行下面的操作

1.2 解压: tar zxvf psutil-2.1.3.tar.gz

1.3 进入解压完的目录:cd psutil-2.1.3/

1.4 启动安装: python3 setup.py install

1.5 验证: 在命令窗口输入 python3,然后 输入 :

import psutil 不报错,则证明安装 成功

接着输入:

res = psutil.process_iter() for var in res: ​ print(var)

则会显示一堆信息

二,找到操作系统中所有的服务的name和pid

import psutil proc_dict = {} #ID:进程名 proc_name = set() #关于进程的集合,集合去重 for p in psutil.process_iter(): proc_dict[p.pid] = p.name() proc_name.add(p.name()) print(proc_dict) print(nn————————–n) print(proc_name)

三,找到需要监控但没有启动的服务

proc_stop = monitor_name – proc_name

即:需要监控的服务name 减去 操作系统中所有服务的name

四,监控服务,如果没有开启则自动开启,[并发邮件通知工作人员]

 1.使用os.system(命令)启用 服务。

 完整代码如下:import psutil import os #如果需要发邮件给通知管理人员可能需要使用 request 和 json #import request #import json import time time_now = time.strftime(%Y-%m-%d %H:%M:%S,time.localtime()) #要监控的服务 monitor_name = {nginx} #启动命令 monitor_map = {nginx:service nginx start} while True: #操作系统中所有进程的字典 proc_dict = {} #操作系统中所有的进程名集合 proc_name = set() #psutil.process_iter()会返回操作系统下所有进程名及进程ID for p in psutil.process_iter(): proc_dict[p.pid] = p.name() proc_name.add(p.name()) print(proc_dict) print(nn————————–n) print(proc_name) # monitor_name – proc_name == died process name #提取到那个监控进程没有启动 proc_stop = monitor_name – proc_name print(proc_stop) if proc_stop: for p in proc_stop: p_status = 停止 p_name = p data ={p_status,p_name,time_now} headers = {Content-Type:application/json;charset=utf-8} #send_data = json.dumps(data).encode(utf-8) #发邮件给管理人员 #request.post(url=url,data=send_data,headers=headers) os.system(monitor_map[p]) proc_name = set() for p2 in psutil.process_iter(): proc_name.add(p2.name()) if p in proc_name: print(“重启成功”) else: print(“重启失败”) time.sleep(2000)

运行之后的效果:

linux服务监控及运维插图

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容