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 02 Python
Python中的列表生成式与生成器学习教程
Mar 13 Python
python模拟登录并且保持cookie的方法详解
Apr 04 Python
将TensorFlow的模型网络导出为单个文件的方法
Apr 23 Python
python 判断字符串中是否含有汉字或非汉字的实例
Jul 15 Python
Python使用lambda表达式对字典排序操作示例
Jul 25 Python
python 实现提取log文件中的关键句子,并进行统计分析
Dec 24 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
Sep 17 Python
浅谈在JupyterNotebook下导入自己的模块的问题
Apr 16 Python
django中related_name的用法说明
May 20 Python
Python脚本破解压缩文件口令实例教程(zipfile)
Jun 14 Python
Python将QQ聊天记录生成词云的示例代码
Feb 10 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添加MySQL数据记录代码
2008/06/07 PHP
从手册去理解分析PHP session机制
2011/07/17 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
javascript 面向对象编程基础:继承
2009/08/21 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
JS键盘版计算器的制作方法
2016/12/03 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
Node.js创建一个Express服务的方法详解
2020/01/06 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
Python对列表排序的方法实例分析
2015/05/16 Python
让python 3支持mysqldb的解决方法
2017/02/14 Python
python实现随机森林random forest的原理及方法
2017/12/21 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
keras 简单 lstm实例(基于one-hot编码)
2020/07/02 Python
利用Canvas模仿百度贴吧客户端loading小球的方法示例
2017/08/13 HTML / CSS
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
BIFFI美国站:意大利BIFFI BOUTIQUES豪华多品牌时装零售公司
2020/02/11 全球购物
党校培训自我鉴定
2014/02/01 职场文书
车辆工程专业求职信
2014/04/28 职场文书
四风问题对照检查材料
2014/09/22 职场文书
简易离婚协议书(范本)
2014/10/25 职场文书
2014年档案室工作总结
2014/12/01 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
节约用水广告语60条
2019/11/14 职场文书
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server