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 相关文章推荐
pycharm 使用心得(四)显示行号
Jun 05 Python
python计算书页码的统计数字问题实例
Sep 26 Python
python中argparse模块用法实例详解
Jun 03 Python
python 实现tar文件压缩解压的实例详解
Aug 20 Python
python 使用装饰器并记录log的示例代码
Jul 12 Python
Python编译为二进制so可执行文件实例
Dec 23 Python
Django之富文本(获取内容,设置内容方式)
May 21 Python
Keras之自定义损失(loss)函数用法说明
Jun 10 Python
Python selenium爬取微信公众号文章代码详解
Aug 12 Python
Python之字典添加元素的几种方法
Sep 30 Python
python实现学生信息管理系统源码
Feb 22 Python
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
May 24 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中的日期处理方法集锦
2007/01/02 PHP
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
js实现iframe动态调整高度的代码
2008/01/06 Javascript
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
javascript动态加载二
2012/08/22 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
基于javascript实现九九乘法表
2016/03/27 Javascript
three.js实现3D视野缩放效果
2017/11/16 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
webpack4打包vue前端多页面项目
2018/09/17 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
linux系统使用python获取内存使用信息脚本分享
2014/01/15 Python
Python中处理时间的几种方法小结
2015/04/09 Python
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
python 实现一个图形界面的汇率计算器
2020/11/09 Python
质量工程师岗位职责
2013/11/16 职场文书
工商企业管理专业自荐信范文
2014/04/12 职场文书
爱国主义教育活动总结
2014/05/07 职场文书
硕士生找工作求职信
2014/07/05 职场文书
学生违纪检讨书200字
2014/10/21 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
2022/04/07 Servers