介绍

项目地址: https://github.com/leeyoshinari/performance_monitor

已完成如下功能

1、监控整个服务器的CPU使用率、io wait、内存使用、磁盘IO、网络带宽和TCP连接数

2、监控指定端口的CPU使用率、上下文切换、内存占用大小、磁盘读写和TCP连接数

3、针对java应用,可以监控jvm大小和垃圾回收情况;当Full GC频率过高时,可发送邮件提醒

4、系统CPU使用率过高,或者剩余内存过低时,可发送邮件提醒;可设置自动清理缓存

5、可随时启动/停止监控指定端口

6、当端口重启后,可自动重新监控

7、支持运维监控,端口停止后,可发送邮件提醒

8、可直接在服务端停止客户端

9、可按照指定时间段可视化监控结果

10、自动按照百分位数计算出CPU、磁盘IO和带宽的数据

11、数据采样频率最高可达约1次/s,可设置任意采样频率

12、可直接在页面查看服务器当前资源(CPU、内存、磁盘)使用情况

13、可同时管理监控多台服务器

14、服务端停止后,不影响客户端监控

既可以做性能测试监控(不放过每一秒的数据变化),也可以做运维监控(异常自动邮件提醒),而且可以二次开发增加更多功能。

实现

1、使用基于协程的http框架aiohttp

2、服务端前端使用jinjia2模板渲染

3、数据可视化采用echarts

4、采用线程池+队列的方式实现同时监控多个端口

5、客户端每隔8s向服务端注册本机IP和端口

6、服务端每隔10s会查询所有已注册的客户端的状态

7、使用influxDB数据库存储监控数据;数据可设置自动过期时间

8、为保证监控结果准确性,直接使用Linux系统命令获取数据,且可视化时未做任何曲线拟合处理

页面

(1)客户端(agent)启动后,访问http://ip:port可以看到页面显示服务器的CPU、内存、磁盘和网络等信息



(2)服务端(server)启动后,访问http://ip:port/上下文可以看到首页,页面实时展示已经注册的客户端的IP、系统、CPU、内存、磁盘、带宽。CPU、内存、磁盘使用率高于设定值时,红色加粗提示。



(3)点击监控列表,可以看到监控页面;点击开始监控按钮,即可在指定的服务器上开始监控指定的端口;点击停止监控按钮,即可在指定的服务器上停止监控指定的端口;点击获取监控列表按钮,可以查看当前已经监控的端口



(4)点击可视化,可以看到可视化页面;点击画图按钮,即可将指定服务器上的指定端口的监控数据可视化

当前监控程序几乎可以运行在任何可以运行python的linux系统上,已测试过的系统CentOSUbuntu中标麒麟银河麒麟,支持X86_64ARM架构
源码在GitHub上 https://github.com/leeyoshinari/performance_monitor

基于python的Linux服务器资源监控的更多相关文章

  1. shell:实现linux服务器资源监控并发送告警邮件

    1.安装方式 wget http://10.8.225.126/wsmonitor/install.sh;sh install.sh test@test.com 2.install.sh #!/bin ...

  2. 用 Python 脚本实现对 Linux 服务器的监控

    目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统 ...

  3. Python 脚本实现对 Linux 服务器的监控

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 原文地址 由于原文来自微信公众号,并且脚本都是图片,所以这里 ...

  4. Linux服务器上监控网络带宽的18个常用命令 zz

    Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量 ...

  5. Linux服务器上监控网络带宽的18个常用命令和工具

    一.如何查看CentOS的网络带宽出口 检查维护系统的时候,经常会要查看服务器的网络端口是多大的,所以需要用到Linux的一个命令. 如何查看CentOS的网络带宽出口多大?可以用下面的命令来查看. ...

  6. Linux服务器上监控网络带宽的18个常用命令nload, iftop,iptraf-ng, nethogs, vnstat. nagios,运用Ntop监控网络流量

    Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量 ...

  7. 服务器资源监控插件(jmeter)

    零.引言 我们对被测应用进行性能测试时,除了关注吞吐量.响应时间等应用自身的表现外,对应用运行所涉及的服务器资源的使用情况,也是非常重要的方面,通过 实时监控,可以准确的把握不同测试场景下服务器资源消 ...

  8. JMeter性能测试-服务器资源监控插件详解

          零.引言 我们对被测应用进行性能测试时,除了关注吞吐量.响应时间等应用自身的表现外,对应用运行所涉及的服务器资源的使用情况,也是非常重要的方面,通过实时监控,可以准确的把握不同测试场景下服 ...

  9. linux 服务器性能监控(一)

    这篇文章主要介绍一些常用的linux服务器性能监控命令,包括命令的常用参数.指标的含义以及一些交互操作. 几个问题 命令本身并不复杂,关键是你对操作系统基础知识的掌握和理解,先来看看下面几个问题: C ...

  10. (转)JMeter性能测试-服务器资源监控插件详解

    零.引言 我们对被测应用进行性能测试时,除了关注吞吐量.响应时间等应用自身的表现外,对应用运行所涉及的服务器资源的使用情况,也是非常重要的方面,通过实时监控,可以准确的把握不同测试场景下服务器资源消耗 ...

随机推荐

  1. 给你安利一款带有AI功能的数据库管理工具

    写在前面 说到数据库管理工具,大家应该不陌生了 小伙伴们应该都用过Navicat.DBever.DataGrip.SQLyog.plsqldeveloper等数据库管理工具 这些工具呢都各自有优缺点. ...

  2. SpringMVC配置web.xml文件详解(列举常用的配置)

    常用的web.xml的配置 1.Spring 框架解决字符串编码问题:过滤器 CharacterEncodingFilter(filter-name) 2.在web.xml配置监听器ContextLo ...

  3. 推荐几款三维模型OBJ格式轻量化处理工具软件

    推荐几款三维模型OBJ格式轻量化处理工具软件 以下是几款常用的三维模型OBJ格式轻量化处理软件的介绍: 1.MeshLab: MeshLab是一款免费且强大的开源三维模型处理软件,支持多种文件格式,包 ...

  4. C++笔记(自用)

    <Effective C++> 条款11 在operator=中处理"自我赋值" 自我赋值 证同测试: if(this==&rhs)return*this; 影 ...

  5. QA|requests接口请求失败而postman请求成功原因排查|Requests

    requests接口请求失败而postman请求成功原因 代码如下 1 def ihrm_login(login_data, url1): 2 """login_data ...

  6. 完全可复制、经过验证的 Go 工具链

    原文在这里. 由 Russ Cox 发布于 2023年8月28日 开源软件的一个关键优势是任何人都可以阅读源代码并检查其功能.然而,大多数软件,甚至是开源软件,都以编译后的二进制形式下载,这种形式更难 ...

  7. GIS中的ROI文件可否由.xml格式转为.roi格式?

      本文介绍在ENVI软件中,将用户自行绘制的.xml格式的感兴趣区(ROI)文件转换为.roi格式的方法.   对于ENVI软件,其在早期版本中,默认将用户所绘制的感兴趣区文件保存为.roi格式:而 ...

  8. 【Azure Key Vault】在Azure Databricks上获取Azure Key Vault中所存储的机密(secret)的两种方式

    问题描述 在Azure Databricks上获取Azure Key Vault中所存储的机密(secret)的两种方式? 问题解答 方式一: 在Databricks的Notebook 中,直接编写P ...

  9. 一行代码搞定 font-size 响应式

    前言 公司要做大屏,但是大屏还要有个嵌在系统的版本,屏幕(iframe)小了但字体大了怎么办.网上找了很多代码都很长,个人参考了资料后实现了一个一行代码 font-size 响应式. TL;DR ht ...

  10. Java算法之动态规划

    ①动态规划 动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程.20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的 ...