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 相关文章推荐
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
Feb 24 Python
解密Python中的描述符(descriptor)
Jun 03 Python
Python面向对象编程基础解析(一)
Oct 26 Python
在Django中输出matplotlib生成的图片方法
May 24 Python
python实现泊松图像融合
Jul 26 Python
浅谈Python中的bs4基础
Oct 21 Python
Python使用Pickle模块进行数据保存和读取的讲解
Apr 09 Python
pycharm配置git(图文教程)
Aug 16 Python
python使用Matplotlib改变坐标轴的默认位置
Oct 18 Python
Python解释器以及PyCharm的安装教程图文详解
Feb 26 Python
pycharm 实现光标快速移动到括号外或行尾的操作
Feb 05 Python
Django中session进行权限管理的使用
Jul 09 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中文乱码的解决方法
2006/12/17 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
PHP常用正则表达式集锦
2014/08/17 PHP
php上传文件常见问题总结
2015/02/03 PHP
smarty高级特性之过滤器的使用方法
2015/12/25 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
字符串的replace方法应用浅析
2011/12/06 Javascript
Javascript中typeof 用法小结
2015/05/12 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
JS中的JSON对象的定义和取值实现代码
2018/05/09 Javascript
javascript深拷贝、浅拷贝和循环引用深入理解
2018/05/27 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
js实现移动端轮播图滑动切换
2020/12/21 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
django ManyToManyField多对多关系的实例详解
2019/08/09 Python
Python3如何使用range函数替代xrange函数
2020/10/05 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
PyQt QMainWindow的使用示例
2021/03/24 Python
后勤园长自我鉴定
2013/10/17 职场文书
俄语专业毕业生推荐信
2013/10/28 职场文书
生日寄语大全
2014/04/08 职场文书
学习雷锋演讲稿
2014/05/10 职场文书
大学生毕业求职信
2014/06/12 职场文书
vue ref如何获取子组件属性值
2022/03/31 Vue.js