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开发之tkinter实现图形随鼠标移动的方法
Nov 11 Python
Python使用修饰器进行异常日志记录操作示例
Mar 19 Python
如何通过Python实现标签云算法
Jul 02 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
Aug 08 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
快速解决docker-py api版本不兼容的问题
Aug 30 Python
python基于gevent实现并发下载器代码实例
Nov 01 Python
基于Keras的格式化输出Loss实现方式
Jun 17 Python
浅谈django框架集成swagger以及自定义参数问题
Jul 07 Python
python爬虫请求头设置代码
Jul 28 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
Dec 21 Python
Python使用pyecharts控件绘制图表
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的可变变量名的使用方法分享
2012/02/05 PHP
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
JavaScript实现图片滑动切换的代码示例分享
2016/03/06 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
关于vue-router路径计算问题
2017/05/10 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
微信小程序框架wepy之动态控制类名
2018/09/14 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
用Python编程实现语音控制电脑
2014/04/01 Python
python实现批量下载新浪博客的方法
2015/06/15 Python
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
关于解决iframe标签嵌套问题的解决方法
2020/03/04 HTML / CSS
美国美妆网站:B-Glowing
2016/10/12 全球购物
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
校长岗位职责
2013/11/26 职场文书
建设工地安全标语
2014/06/07 职场文书
优秀志愿者感言
2015/08/01 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
Python 避免字典和元组的多重嵌套问题
2022/07/15 Python