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接收多播数据的代码
Mar 01 Python
python获得图片base64编码示例
Jan 16 Python
在PyCharm中三步完成PyPy解释器的配置的方法
Oct 29 Python
python正向最大匹配分词和逆向最大匹配分词的实例
Nov 14 Python
详解numpy.meshgrid()方法使用
Aug 01 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 Python
np.dot()函数的用法详解
Jan 17 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
Mar 23 Python
如何在sublime编辑器中安装python
May 20 Python
Python3 ffmpeg视频转换工具使用方法解析
Aug 10 Python
如何利用python正则表达式匹配版本信息
Dec 09 Python
python 如何用urllib与服务端交互(发送和接收数据)
Mar 04 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
一个查看session内容的函数
2006/10/09 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
PHP 获取文件权限函数介绍
2013/07/11 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
javascript 用原型继承来实现对象系统
2010/03/22 Javascript
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
初识javascript 文档碎片
2010/07/13 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
@ResponseBody 和 @RequestBody 注解的区别
2017/03/08 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
vue-router实现tab标签页(单页面)详解
2017/10/17 Javascript
react native 文字轮播的实现示例
2018/07/27 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
python实现在windows服务中新建进程的方法
2015/06/30 Python
python 实现删除文件或文件夹实例详解
2016/12/04 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
python使用selenium爬虫知乎的方法示例
2020/10/28 Python
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
经理职责范文
2013/11/08 职场文书
诚信考试倡议书
2014/04/15 职场文书
服务承诺书范文
2014/05/19 职场文书
安全先进班组材料
2014/12/26 职场文书