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)

运行之后的效果:

到此这篇关于linux服务监控及运维的文章就介绍到这了,更多相关linux服务内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Linux高级篇学习手册(一)

    目录 1. Linux的用户管理 1.1 添加用户 1.2 删除用户 1.3 查询用户信息 1.4 切换用户 1.5 对组操作 2. Linux的文件权限 2.1 查看资源的权限 2.2 添加权限语法 2.3 删除权限语法 2.4 修改权限语法 2.5 实现演示 3. Linux的进程管理 3.1 查看进程ps(process) 3.3 杀死进程 4. Linux的筛选过滤 4.1 grep 4.2 管道符| 总结 1. Linux的用户管理 1.Linux系统是一个多用户多任务的操作系统,任何

  • 分析Linux内核调度器源码之初始化

    一.导语 调度器(Scheduler)子系统是内核的核心子系统之一,负责系统内 CPU 资源的合理分配,需要能处理纷繁复杂的不同类型任务的调度需求,还需要能处理各种复杂的并发竞争环境,同时还需要兼顾整体吞吐性能和实时性要求(本身是一对矛盾体),其设计与实现都极具挑战. 为了能够理解 Linux 调度器的设计与实现,我们将以 Linux kernel 5.4 版本(TencentOS Server3 默认内核版本)为对象,从调度器子系统的初始化代码开始,分析 Linux 内核调度器的设计与实现.

  • 解析Linux高性能网络IO和Reactor模型

    目录 一.基本概念介绍 二.网络IO的读写过程 三.Linux五种网络IO模型 3.1.阻塞式I/O (blocking IO) 3.2.非阻塞式I/O (nonblocking IO) 3.3.多路复用I/O (IO multiplexing) 3.4.信号驱动式I/O (SIGIO) 3.5.异步IO (POSIX的aio_系列函数) 四.多路复用IO深入理解一波 4.1.select 4.2.epoll 4.3.epoll相比select的优点 4.4.关于epoll的IO模型是同步异步的

  • springboot项目部署在linux上运行的两种方式小结

    springboot部署项目在linux的两种方式 可以选择 war包方式或者jar包方式(个人推荐使用jar方式) 1.springboot的jar包方式 因为idea默认就是jar打包方式所以直接使用maven工具按照步骤点击就可以直接打包 打包之前别忘了修改好你的配置文件,别到时候端口号冲突启动不了(多个同样的端口号),假如要使用linux上的数据库也要提前修改好密码 然后控制台就会输出执行过程,不用管,最后结束了就会这如图红框处找到输出路径. 找到这个文件把他扔到你的linux虚拟机里,

  • Linux高级篇学习手册(二)

    目录 1. Linux的crontab定时任务 1.1 配置定时任务 2. Linux的服务管理 6.1 服务管理 2.2 服务自启动 2.3 演示效果 总结 1. Linux的crontab定时任务 任务调度:是指系统在某个时间执行的特定的命令或程序. 任务调度分类: ​ 1. 系统工作:有些重要的工作必须周而复始地执行.如病毒扫描等 2. 个别用户工作:个别用户可能希望执行某些程序,比如对 mysql数据库的备份 crontab进行定时任务的设置. 命令参数: l:显示当前用户所有的定时任务

  • 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://p

  • Linux云服务器搭建SFTP服务器图片服务器的操作

    首先大家可以先了解一下SFTP和FTP协议的区别,这里我就不赘述了. Sftp 默认监听端口22 Ftp协议默认监听端口21 本质没什么区别都是基于文件传输协议.前者安全性能高,后者效率高. 下面进入正题: 一,确保你的Linux 账号能连接,sftp默认就是Linux root账号密码 这里就是你的管理员账号用户名和密码.一般这个密码Sftp就直接连就行了不用改的都.下面看看Xftp 连接成功了说明没有问题. 二,通过如果是阿里云服务器一定把防火墙和安全组都打开,以免出现其他问题 还有一个防火

  • linux系列之常用运维命令整理笔录(小结)

    本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 一.系统监控 1.free命令 free 命令能够显示系统中物理上的空闲和已用内存,还有交换内存,同时,也能显示被内核使用的缓冲和缓存 语法:free [param] param可以为: -b:以Byte为单位显示内存使用情况: -k:以KB为单位显示内存使

  • linux系统Ansible自动化运维部署方法

    ansible是新出现的 自动化 运维工具 , 基于Python研发 . 整合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能,下面就看一下如何部署 在命令行,提取Ansible源代码,git clone git://github.com/ansible/ansible.git --recursive 如下图所示 进入安装目录 cd ./ansible 目录下, 执行安装source ./hacking/env-setup -q 如果系统没有安装过pip,先安装

  • Linux运维基础进程管理实时监控控制

    目录 1.后台运行作业 2.使用信号控制进程 基本进程管理信号 3.监控进程活动 IO负载 4.实时进程监控 top用于实现全屏动态显示系统信息 1.后台运行作业 1.sleep 999 & (运行作业) [root@localhost ~]# sleep 999 & [1] 3670 2.ps -ef|grep sleep(查看进程) [root@localhost ~]# ps -ef|grep sleep root 3670 3642 0 10:54 pts/1 00:00:00 s

  • Linux运维从初级进阶为高级知识点总结

    运维工程师在前期是一个很苦逼的工作,在这期间可能干着修电脑.掐网线.搬机器的活,显得没地位!时间也很碎片化,各种零碎的琐事围绕着你,很难体现个人价值,渐渐的对行业很迷茫,觉得没什么发展前途. 这些枯燥无味工作的确会使人匮乏,从技术层面讲这些其实都是基本功,对后期的运维工作会无形中带来一定的帮助,因为我也是这么过来的,能深刻体会到.所以在这个时期一定要保持积极向上的心态,持续的学习.在未来的某一天,相信会回报给你的! 好了,进入正题,根据我多年的运维工作经验,给大家分享下高级运维工程师学习路线.

  • Linux企业运维人员常用的150个命令分享

    本文将向大家介绍Linux企业运维人员常用的150个命令,如有不足之处,还望海涵.当然更希望大家留言指出.希望对大家有所帮助! 命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) ls 全拼list,功能是列出目录的内容及其内容属性信息. cd 全拼change directory,功能是从当前工作目录切换到指定的工作目录. cp 全拼copy,其功能

  • 深入浅析Linux轻量级自动运维工具-Ansible

    转自 Linux轻量级自动运维工具-Ansible浅析 - ~微风~ - 51CTO技术博客 http://weiweidefeng.blog.51cto.com/1957995/1895261 Ansible是什么? ansible架构图 ansible特性 模块化:调用特定的模块,完成特定的任务: 基于Python语言研发,由Paramiko, PyYAML和Jinja2三个核心库实现: 部署简单:agentless: 支持自定义模块,使用任意编程语言: 强大的playbook机制: 幂等性

  • 很实用的Linux 系统运维常用命令及常识(超实用)

    作为Linux运维,需要了解Linux操作系统的基本使用和管理知识,下面我们小编给大家介绍下Linux运维需要掌握的命令,想成为Linux运维的朋友可以来学习一下. 1 文件管理2 软件管理3 系统管理 4 服务管理5 网络管理6 磁盘管理 7 用户管理8 脚本相关9 服务配置 ================================== ---------------------------------- 1 文件管理 ---------------------------------

  • linux 自动化运维工具ansible的使用详细教程

    一.ansible简介 1.ansible ansible是新出现的自动化运维工具,基于Python研发.糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能.仅需在管理工作站上安装ansible程序配置被管控主机的IP信息,被管控的主机无客户端.ansible应用程序存在于epel(第三方社区)源,依赖于很多python组件.主要包括: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inventory:指定操

  • 利用python为运维人员写一个监控脚本

    前言: 一直想写一个监控方面的脚本,然后想到了运维这方面的,后来就写了个脚本,下面话不多说了,来一起看看详细的介绍吧. 准备: psutil模块(基本使用方法可以参考这篇文章:http://www.jb51.net/article/65044.htm) 正文: import os import time import re import smtplib from email.mime.text import MIMEText from email.header import Header imp

随机推荐