linux如何让系统监控一个服务(linux服务监控及运维)
类别:服务器 浏览量:2432
时间:2021-10-03 01:21:15 linux如何让系统监控一个服务
linux服务监控及运维目录
- 一, 安装psutil 包
- 二,找到操作系统中所有的服务的name和pid
- 三,找到需要监控但没有启动的服务
- 四,监控服务,如果没有开启则自动开启,[并发邮件通知工作人员]
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)
运行之后的效果:
到此这篇关于linux服务监控及运维的文章就介绍到这了,更多相关linux服务内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- 使用mysqldump命令来备份(linux使用mysqldump+expect+crontab实现mysql周期冷备份思路详解)
- 宝塔linux面板搭专业版(宝塔linux面板怎么卸载?)
- dedecms的简单说明(DEDECMS5.5在国外Linux主机下无法采集的解决方法)
- linux增加静态路由(Linux添加静态路由两种实现方法解析)
- linux怎么退出括号模式(Linux使用stty显示修改终端行设置)
- 在docker中运行springboot(Linux Docker运行springboot项目的步骤详解)
- centos搭建sftp服务器(Linux云服务器搭建SFTP服务器图片服务器的操作)
- apache有几个配置文件linux系统(linux下使用Apache搭建文件服务器的步骤)
- linuxftp的下载命令(Linux ftp 命令行中下载文件get与上传文件put的命令应用详解)
- 阿里云服务器搭建linux学习环境(Mac 下阿里云服务器的配置方法)
- linux安装sqlserver 2008 r2(Ubuntu 下安装SQL Server教程)
- python虚拟环境和包使用教程(在win10和linux上分别安装Python虚拟环境的方法步骤)
- linux关闭autofs服务命令(Linux系统的ECS实例挂载NAS提示“mount: can't find /root/nas in /etc/fstab”错误的解决)
- 怎么查询linux的selinux状态(如何理解Linux下的SELinux)
- vmwareworkstationlinux修改配置(VMware Workstation Pro 16搭建CentOS8虚拟机集群的图文教程)
- linux部署flask项目(用uWSGI和Nginx部署Flask项目的方法示例)
- 智能手表兼容Windows和Android 无需充电挑战苹果(智能手表兼容Windows和Android)
- 一天一冲也算表 麦步,一款待机 21 天的智能手表体验评测(一天一冲也算表)
- 魅族智能手表充电座曝光 Type-C 接口,线座分离设计(魅族智能手表充电座曝光)
- 华为 Watch GT2 Pro 智能手表曝光,新增支持无线充电(华为WatchGT2)
- vivo首款智能手表来了 也有血氧饱和度监测,一次充电18天续航(vivo首款智能手表来了)
- 你知道 七夕 的真正含义吗(你知道七夕的真正含义吗)
热门推荐
- thinkphp表单提交不到数据(ThinkPHP5.1表单令牌Token失效问题的解决)
- mysql 主从配置详解(MySQL 8.0.15配置MGR单主多从的方法)
- python中生成字符串序列(python实现字符串加密 生成唯一固定长度字符串)
- mysql安装时服务无法启动(MySQL 实例无法启动的问题分析及解决)
- MySQL批量执行SQL脚本文件
- python3字符串格式化怎么操作(python3实现字符串操作的实例代码)
- cssdisplay详解(详解CSS中的display:flex
- mysql查询分区语句(MySQL中 and or 查询的优先级分析)
- JavaScript instanceof 的用法
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9