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变量与常量
Jun 02 Python
python处理按钮消息的实例详解
Jul 11 Python
python2.7到3.x迁移指南
Feb 01 Python
Python实现的HMacMD5加密算法示例
Apr 03 Python
python实现俄罗斯方块
Jun 26 Python
Python 数值区间处理_对interval 库的快速入门详解
Nov 16 Python
Python 文本文件内容批量抽取实例
Dec 10 Python
解决python 上传图片限制格式问题
Oct 30 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
Mar 09 Python
Python内置函数property()如何使用
Sep 01 Python
pycharm实现猜数游戏
Dec 07 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
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
jQuery对象[0]是什么含义?
2010/07/31 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
JavaScript文档碎片操作实例分析
2015/12/12 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
javascript+css3开发打气球小游戏完整代码
2017/11/28 Javascript
Vue中 key keep-alive的实现原理
2018/09/18 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
完美解决通过IP地址访问VUE项目的问题
2020/07/18 Javascript
three.js 如何制作魔方
2020/07/31 Javascript
vue实现移动端触屏拖拽功能
2020/08/21 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
python网络编程学习笔记(一)
2014/06/09 Python
一步步教你用Python实现2048小游戏
2017/01/19 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
Python3爬虫全国地址信息
2019/01/05 Python
Python后台开发Django会话控制的实现
2019/04/15 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
python实现发送带附件的邮件代码分享
2020/09/22 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
Python对excel的基本操作方法
2021/02/18 Python
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
UNIX文件系统常用命令
2012/05/25 面试题
Java常用工具类汇总 附示例代码
2021/06/26 Java/Android
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL
Redis基本数据类型String常用操作命令
2022/06/01 Redis