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实现删除Android工程中的冗余字符串
Jan 19 Python
python开发之IDEL(Python GUI)的使用方法图文详解
Nov 12 Python
如何用itertools解决无序排列组合的问题
May 18 Python
python实现Floyd算法
Jan 03 Python
解决Django的request.POST获取不到内容的问题
May 28 Python
Python实现的简单排列组合算法示例
Jul 04 Python
selenium处理元素定位点击无效问题
Jun 12 Python
解决.ui文件生成的.py文件运行不出现界面的方法
Jun 19 Python
浅谈django2.0 ForeignKey参数的变化
Aug 06 Python
使用tensorboard可视化loss和acc的实例
Jan 21 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 Python
python实现excel公式格式化的示例代码
Dec 23 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
如何在PHP中使用数组
2020/06/09 PHP
js函数内变量的作用域分析
2015/01/12 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
JavaScript函数表达式详解及实例
2017/05/05 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
package.json配置文件构成详解
2019/08/27 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
JQuery绑定事件四种实现方法解析
2020/12/02 jQuery
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
python逐行读写txt文件的实例讲解
2018/04/03 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
Canvas系列之滤镜效果
2019/02/12 HTML / CSS
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
Bodum官网:咖啡和茶壶、玻璃器皿、厨房电器等
2018/08/01 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
计算机专业职业规划
2014/02/28 职场文书
股权转让协议书范本
2014/04/12 职场文书
百日安全活动总结
2014/05/04 职场文书
关于旅游的活动方案
2014/08/15 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
领导干部学习心得体会
2016/01/23 职场文书
python获取淘宝服务器时间的代码示例
2021/04/22 Python