基于python的Linux服务器资源监控
介绍
项目地址: 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系统上,已测试过的系统CentOS、Ubuntu、中标麒麟、银河麒麟,支持X86_64和ARM架构
源码在GitHub上 https://github.com/leeyoshinari/performance_monitor
基于python的Linux服务器资源监控的更多相关文章
- shell:实现linux服务器资源监控并发送告警邮件
1.安装方式 wget http://10.8.225.126/wsmonitor/install.sh;sh install.sh test@test.com 2.install.sh #!/bin ...
- 用 Python 脚本实现对 Linux 服务器的监控
目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统 ...
- Python 脚本实现对 Linux 服务器的监控
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 原文地址 由于原文来自微信公众号,并且脚本都是图片,所以这里 ...
- Linux服务器上监控网络带宽的18个常用命令 zz
Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量 ...
- Linux服务器上监控网络带宽的18个常用命令和工具
一.如何查看CentOS的网络带宽出口 检查维护系统的时候,经常会要查看服务器的网络端口是多大的,所以需要用到Linux的一个命令. 如何查看CentOS的网络带宽出口多大?可以用下面的命令来查看. ...
- Linux服务器上监控网络带宽的18个常用命令nload, iftop,iptraf-ng, nethogs, vnstat. nagios,运用Ntop监控网络流量
Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量 ...
- 服务器资源监控插件(jmeter)
零.引言 我们对被测应用进行性能测试时,除了关注吞吐量.响应时间等应用自身的表现外,对应用运行所涉及的服务器资源的使用情况,也是非常重要的方面,通过 实时监控,可以准确的把握不同测试场景下服务器资源消 ...
- JMeter性能测试-服务器资源监控插件详解
零.引言 我们对被测应用进行性能测试时,除了关注吞吐量.响应时间等应用自身的表现外,对应用运行所涉及的服务器资源的使用情况,也是非常重要的方面,通过实时监控,可以准确的把握不同测试场景下服 ...
- linux 服务器性能监控(一)
这篇文章主要介绍一些常用的linux服务器性能监控命令,包括命令的常用参数.指标的含义以及一些交互操作. 几个问题 命令本身并不复杂,关键是你对操作系统基础知识的掌握和理解,先来看看下面几个问题: C ...
- (转)JMeter性能测试-服务器资源监控插件详解
零.引言 我们对被测应用进行性能测试时,除了关注吞吐量.响应时间等应用自身的表现外,对应用运行所涉及的服务器资源的使用情况,也是非常重要的方面,通过实时监控,可以准确的把握不同测试场景下服务器资源消耗 ...
随机推荐
- centos7.X安装mysql5.7 – 东凭渭水流
1.下载mysql5.7 可以使用windows下载好后上传至Linux.网络条件好的推荐使用 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/m ...
- Hugging News #0821: Hugging Face 完成 2.35 亿美元 D 轮融资
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...
- shiro框架基本概念介绍
什么是Shiro: Shiro 是一个强大灵活的开源安全框架,可以完全处理身份验证.授权.加密和会话管理 Shiro的核心功能包括: 身份验证(Authentication):验证用户的身份,确保用户 ...
- iOS日志获取
IOS日志获取 崩溃日志存放目录: /var/mobile/Library/Logs/CrashReporter
- Java开发面试--nacos专区
1. Nacos是什么? 请简要介绍Nacos是什么以及它的主要功能和用途. 答: 简介: Nacos是一个开源的.高性能.动态服务发现.配置和服务管理平台,通常用于微服务架构中.Nacos的名称来源 ...
- Web组态可视化软件之BY组态可视化平台介绍
Web组态可视化软件之BY组态可视化平台介绍 关于组态软件,首先要从组态的概念开始说起. 什么是组态 组态(Configure)的概念来自于20世纪70年代中期出现的第一代集散控制系统(Distrib ...
- GO 中的时间操作(time & dateparse)【GO 基础】
〇.前言 日常开发过程中,对于时间的操作可谓是无处不在,但是想实现时间自由还是不简单的,多种时间格式容易混淆,那么本文将进行梳理,一起学习下. 官方提供的库是 time,功能很全面,本文也会详细介绍. ...
- Dubbo3应用开发—Dubbo序列化方案(Kryo、FST、FASTJSON2、ProtoBuf序列化方案的介绍和使用)
Dubbo序列化方案(Kryo.FST.FASTJSON2.ProtoBuf序列化方案的介绍和使用) 序列化简介 序列化是Dubbo在RPC中非常重要的一个组成部分,其核心作用就是把网络传输中的数据, ...
- Quantitative Relationship Induction
数量关系是指事物之间的数值或数量之间的相互关系(+.-.*./). 数量关系描述各种量的变化和相互关系.数量关系可以包括数值的比较.增减.比例.百分比.平均值等方面. 在数学中,数量关系可以通过代数方 ...
- Apollo2.1.0+Springboot使用OpenApI
依赖管理 <!-- bootstrap最高级启动配置读取 --> <dependency> <groupId>org.springframework.cloud&l ...