python监控nginx端口和进程状态


Posted in Python onSeptember 06, 2019

本文实例为大家分享了python监控nginx端口和进程状态的具体代码,供大家参考,具体内容如下

#!/usr/local/bin/python
# coding:utf-8
import psutil
import sys
import os
 
# 获取主机名称
def hostname():
  sys = os.name
  if sys == 'nt':
    hostname = os.getenv('computername')
    return hostname
  elif sys == 'posix':
    host = os.popen('echo $HOSTNAME')
    try:
      hostname = host.read()
      return hostname
    finally:
      host.close()
  else:
    return 'Unkwon hostname'
 
# 获取进程状态
def processStatus(processName):
  pids = psutil.pids()   #获取主机所有的PID
  a = 1
  for pid in pids:      #对所有PID进行循环
    p = psutil.Process(pid)  #实例化进程对象
    if p.name() == processName:   #判断实例进程名与输入的进程名是否一致(判断进程是否存活)
      print (a)   #返回1,进程存活
      a += 1
  if a == 1:
    print (0)         #返回0,进程逝去
 
# 获取进程PID
def processPID(processName):
  pids = psutil.pids()
  for pid in pids:
    p = psutil.Process(pid)
    if p.name() == processName:
      return pid
      return True # 如果找到该进程则打印它的PID,返回true
  else:
    print('找不到进程'+processName)
    return False # 没有找到该进程,返回false
 
# 获取进程的端口号
def processPort(pid):
    p = psutil.Process(pid)
    data=p.connections()
    data_listen=[x for x in data if 'LISTEN' in x ]
    # pid_port=[]
    # for port in data_listen:
    #   pid_port.append((port.laddr.port))
    # return list(set(pid_port))
    return list(data_listen[0][3])[1]
 
hostname=hostname().strip()
PID=processPID('nginx')
port=processPort(PID)
 
json_data = [
{"name": hostname+'-nginx', "port": port,"host_ip":LOCAL_IP,"PID":PID}
]
 
AutoDiscoveryJson(json_data, object_id='HOST')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python单链表的简单实现方法
Sep 23 Python
Python3读取文件常用方法实例分析
May 22 Python
Python科学计算之NumPy入门教程
Jan 15 Python
django轻松使用富文本编辑器CKEditor的方法
Mar 30 Python
使用python在本地电脑上快速处理数据
Jun 22 Python
python机器学习实战之树回归详解
Dec 20 Python
python中返回矩阵的行列方法
Apr 04 Python
用于业余项目的8个优秀Python库
Sep 21 Python
python pandas时序处理相关功能详解
Jul 03 Python
超实用的 30 段 Python 案例
Oct 10 Python
Python imageio读取视频并进行编解码详解
Dec 10 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
Sep 06 #Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 #Python
Python代理IP爬虫的新手使用教程
Sep 05 #Python
关于Python内存分配时的小秘密分享
Sep 05 #Python
python global关键字的用法详解
Sep 05 #Python
python requests证书问题解决
Sep 05 #Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 #Python
You might like
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
讨论html与javascript在浏览器中的加载顺序问题
2013/11/27 Javascript
jQuery搜索子元素的方法
2015/02/10 Javascript
浅析javascript的return语句
2015/12/15 Javascript
JavaScript位移运算符(无符号) >>> 三个大于号 的使用方法详解
2016/03/31 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
Python实现PS图像调整之对比度调整功能示例
2018/01/26 Python
在cmd命令行里进入和退出Python程序的方法
2018/05/12 Python
3个用于数据科学的顶级Python库
2018/09/29 Python
启动Atom并运行python文件的步骤
2018/11/09 Python
python远程邮件控制电脑升级版
2019/05/23 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
在keras里实现自定义上采样层
2020/06/28 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
Pycharm新手使用教程(图文详解)
2020/09/17 Python
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
《骆驼和羊》教学反思
2014/02/27 职场文书
《难忘的泼水节》教学反思
2014/02/27 职场文书
讲解员培训方案
2014/05/04 职场文书
小学优秀班主任事迹材料
2014/05/17 职场文书
优秀求职信
2014/05/29 职场文书
高中校园广播稿
2014/10/21 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
Python使用scapy模块发包收包
2021/05/07 Python
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
使用Python拟合函数曲线
2022/04/14 Python
Golang 链表的学习和使用
2022/04/19 Golang