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使用multiprocessing实现一个最简单的分布式作业调度系统
Mar 14 Python
Python2.7简单连接与操作MySQL的方法
Apr 27 Python
利用python求相邻数的方法示例
Aug 18 Python
基于Python的文件类型和字符串详解
Dec 21 Python
Python变量赋值的秘密分享
Apr 03 Python
python实现电子产品商店
Feb 26 Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 Python
python 实现将Numpy数组保存为图像
Jan 09 Python
如何理解Python中包的引入
May 29 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
Jun 16 Python
python 提高开发效率的5个小技巧
Oct 19 Python
Python进程池与进程锁之语法学习
Apr 11 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 fopen下载远程文件的函数
2016/11/18 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
javascript URL编码和解码使用说明
2010/04/12 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
浅析Python基础-流程控制
2016/03/18 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
Django用户认证系统 User对象解析
2019/08/02 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
2019/08/13 Python
python求前n个阶乘的和实例
2020/04/02 Python
python缩进长度是否统一
2020/08/02 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
智能钱包:Ekster
2019/11/21 全球购物
犯错检讨书
2014/02/21 职场文书
门市房租房协议书
2014/12/04 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
Golang 对es的操作实例
2022/04/20 Golang
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python