python监控nginx端口和进程状态

 更新时间:2019年09月06日 08:33:18   作者:狼叔也疯狂  
这篇文章主要为大家详细介绍了python监控nginx端口和进程状态,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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生成n个元素的全组合方法

    python生成n个元素的全组合方法

    今天小编就为大家分享一篇python生成n个元素的全组合方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • PyCharm调用matplotlib绘图时图像弹出问题详解

    PyCharm调用matplotlib绘图时图像弹出问题详解

    这篇文章主要给大家介绍了关于PyCharm调用matplotlib绘图时图像弹出问题的相关资料,文中通过图文介绍的非常详细,对大家学习或者使用PyCharm具有一定的参考学习价值,需要的朋友可以参考下
    2022-07-07
  • 如何用Python中19行代码把照片写入到Excel中

    如何用Python中19行代码把照片写入到Excel中

    这篇文章主要介绍了如何利用Python3中的19行代码把照片写入到Excel中,文章内容实现的不是截取一张图片,粘贴到excel,而是通过像素写入到excel中,需要的朋友可以参考一下
    2022-02-02
  • Python程序自动以管理员权限运行的实现方法

    Python程序自动以管理员权限运行的实现方法

    Windows上为了安全起见,python语言启动的应用程序默认都不会使用admin管理员权限,但是在有些情况下我们又需要使用管理员权限启动应用,这篇文章主要给大家介绍了关于Python程序自动以管理员权限运行的实现方法,需要的朋友可以参考下
    2023-11-11
  • python实现井字棋游戏

    python实现井字棋游戏

    这篇文章主要为大家详细介绍了python实现井字棋游戏的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • Windows下Python3.6安装第三方模块的方法

    Windows下Python3.6安装第三方模块的方法

    这篇文章主要介绍了Windows下Python3.6安装第三方模块的方法,需要的朋友可以参考下
    2018-11-11
  • Django实现从数据库中获取到的数据转换为dict

    Django实现从数据库中获取到的数据转换为dict

    这篇文章主要介绍了Django实现从数据库中获取到的数据转换为dict,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python接口自动化浅析logging封装及实战操作

    Python接口自动化浅析logging封装及实战操作

    本篇文章主要给大家介绍将了logging常用配置放入yaml配置文件、logging日志封装及结合登录用例,讲解日志如何在接口测试中运用的实例操作
    2021-08-08
  • 详解appium+python 启动一个app步骤

    详解appium+python 启动一个app步骤

    这篇文章主要介绍了详解appium+python 启动一个app步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • python实现21点小游戏

    python实现21点小游戏

    这篇文章主要为大家详细介绍了python实现21点小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04

最新评论