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安装第三方库的3种方法
Jun 21 Python
用python实现百度翻译的示例代码
Mar 09 Python
python调用staf自动化框架的方法
Dec 26 Python
在Python 中同一个类两个函数间变量的调用方法
Jan 31 Python
python3使用matplotlib绘制散点图
Mar 19 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
Django框架HttpResponse对象用法实例分析
Nov 01 Python
python实现while循环打印星星的四种形状
Nov 23 Python
Python实现寻找回文数字过程解析
Jun 09 Python
python3中布局背景颜色代码分析
Dec 01 Python
Python+MySQL随机试卷及答案生成程序的示例代码
Feb 01 Python
Python基础之hashlib模块详解
May 06 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模板的朋友必看的很多个顶级PHP模板引擎比较分析
2008/05/26 PHP
PHP 组件化编程技巧
2009/06/06 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
file_get_contents("php://input", "r")实例介绍
2013/07/01 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
2019/02/15 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
浅谈Javascript 执行顺序
2013/12/18 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
jQuery实现加入购物车飞入动画效果
2015/03/14 Javascript
javascript数组排序汇总
2015/07/07 Javascript
jquery带动画效果幻灯片特效代码
2015/08/27 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
Python计算已经过去多少个周末的方法
2015/07/25 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
python绘制立方体的方法
2018/07/02 Python
Python3 jupyter notebook 服务器搭建过程
2018/11/30 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
2020/04/26 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
使用OpenCV对车道进行实时检测的实现示例代码
2020/06/19 Python
HTML5 语义化结构化规范化
2008/10/17 HTML / CSS
Abe’s of Maine:自1979以来销售相机和电子产品
2016/11/21 全球购物
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
大学毕业生通用求职信
2013/09/28 职场文书
python单元测试之pytest的使用
2021/06/07 Python
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
2021/08/02 MySQL