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计算文本文件行数的方法
Jul 06 Python
简单实现python爬虫功能
Dec 31 Python
浅析Python3爬虫登录模拟
Feb 07 Python
使用numpy和PIL进行简单的图像处理方法
Jul 02 Python
python微信好友数据分析详解
Nov 19 Python
python tkinter组件摆放方式详解
Sep 16 Python
关于Python 常用获取元素 Driver 总结
Nov 24 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
Jan 20 Python
基于python实现查询ip地址来源
Jun 02 Python
python中翻译功能translate模块实现方法
Dec 17 Python
详解python 条件语句和while循环的实例代码
Dec 28 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
Feb 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
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
php mssql扩展SQL查询中文字段名解决方法
2012/10/15 PHP
实例讲解PHP面向对象之多态
2014/08/20 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
用jquery方法操作radio使其默认选项是否
2013/09/10 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
利用canvas实现的加载动画效果实例代码
2017/07/05 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
2019/04/17 Javascript
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
Django页面数据的缓存与使用的具体方法
2019/04/23 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
解决c++调用python中文乱码问题
2020/07/29 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
Python读写锁实现实现代码解析
2020/11/28 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
逻辑链路控制协议
2016/10/01 面试题
高三自我鉴定范文
2013/10/19 职场文书
土木工程毕业生自荐信
2013/11/12 职场文书
信息总监管理职责范本
2014/03/08 职场文书
车贷收入证明范本
2014/09/14 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏