linux服务监控及运维
目录
一, 安装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('\n\n--------------------------\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('\n\n--------------------------\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)
运行之后的效果:

上一篇:centos7.9安装zabbix5.0.14及配置过程
栏 目:其它服务器
本文标题:linux服务监控及运维
本文地址:https://zz.feitang.co/server/35492.html
您可能感兴趣的文章
- 01-12Docker部署rabbitmq遇到的两个问题
- 01-12最新虚拟机VMware 14安装教程
- 01-12使用docker compose安装harbor私有仓库的详细教程
- 01-12Windows下Docker安装各种软件的详细过程
- 01-12seata docker 高可用部署的详细介绍
- 01-12浅谈Tomcat多层容器的设计
- 01-12Gogs+Jenkins+Docker 自动化部署.NetCore的方法步骤
- 01-12解决vscode docker插件docker.socket权限问题
- 01-12Docker中运行PostgreSQL并推荐几款连接工具
- 01-12Docker核心原理之 Cgroup详解


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-23linux中ftp无法访问怎么办
- 12-11docker存储目录迁移示例教程
- 12-10docker start启动容器后仍然exit状态的解决
- 12-10Linux下如何安装Logstash
- 12-05Docker安装Jenkins全过程
- 01-05Shell脚本去重的几种方法实例
- 12-22kvm虚拟机配置NAT端口转发的实现方法
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法




