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在命令行下使用google翻译(带语音)
Jan 16 Python
Python装饰器使用示例及实际应用例子
Mar 06 Python
在Python的Django框架中更新数据库数据的方法
Jul 17 Python
Python中的条件判断语句基础学习教程
Feb 07 Python
Python通过命令开启http.server服务器的方法
Nov 04 Python
Python Unittest自动化单元测试框架详解
Apr 04 Python
Python迭代器定义与简单用法分析
Apr 30 Python
python进程和线程用法知识点总结
May 28 Python
pymysql模块的操作实例
Dec 17 Python
Python chardet库识别编码原理解析
Feb 18 Python
Pytest mark使用实例及原理解析
Feb 22 Python
Python3内置函数chr和ord实现进制转换
Jun 05 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新手上路(九)
2006/10/09 PHP
php基于GD库画五星红旗的方法
2015/02/24 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
浅说js变量
2011/05/25 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
2013/11/26 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
ReactNative列表ListView的用法
2017/08/02 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
javascript实现贪吃蛇经典游戏
2020/04/10 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
Pytorch 实现权重初始化
2019/12/31 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
Python csv文件记录流程代码解析
2020/07/16 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2021/02/16 Python
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
广州品高软件.net笔面试题目
2012/04/18 面试题
什么叫做SQL注入,如何防止
2016/10/04 面试题
物业管理个人自我评价
2013/11/08 职场文书
房产销售经理职责
2013/12/20 职场文书
幼儿园毕业家长感言
2014/02/10 职场文书
房产委托公证书样本
2014/04/04 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
放射科岗位职责
2015/02/14 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
基于Go Int转string几种方式性能测试
2021/04/28 Golang
golang goroutine顺序输出方式
2021/04/29 Golang