psutil + Flask + pyecharts + Bootstrap 开发动态可视化系统监控
psutil 是什么
psutil 是一个跨平台库(http://pythonhosted.org/psutil)能够获取到系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。主要用来做系统监控,性能分析,进程管理。支持 Linux、Mac OS、Windows 系统。
本文以 psutil 模块获取系统信息开发一个监控 Mac OS 系统的平台。
准备工作
技术选择
- 监控的系统是 Mac OS 系统
- 监控系统模块选择 psutil 模块
- Web 框架选择的是 Flask 框架
- 前端 UI 选择的是 Bootstrap UI
- 动态可视化图表选择 Pyecharts 模块
安装 psutil
1 |
|
安装 Flask、pyecharts、Bootstrap
- Flask 的教程是在公众号文章:Web 开发 Flask 介绍
- Pyecharts 的教程在公众号文章:Python 图表利器 pyecharts,按照官网 (http://pyecharts.org/#/zh-cn/web_flask) 文档整合 Flask 框架,并使用定时全量更新图表。
- Bootstrap 是一个 前端的 Web UI,官网地址是 (https://v4.bootcss.com)
获取系统信息
CPU信息
通过 psutil 获取 CPU 信息
1 |
|
在监控平台上每 2 秒请求 url 获取 CPU 负载,并动态显示图表
1 |
|
示例结果
内存
通过 psutil 获取内存和交换区信息
1 |
|
在监控平台上每 2 秒请求 url 获取内存负载,并动态显示图表
1 |
|
示例结果
磁盘
通过 psutil 获取磁盘大小、分区、使用率和磁盘IO
1 |
|
在监控平台上每 2 秒请求 url 获取磁盘信息,并动态显示图表
1 |
|
示例结果
网卡
通过 psutil 获取网络接口和网络连接的信息
1 |
|
在监控平台上每 2 秒请求 url 获取网卡IO,并动态显示图表
1 |
|
示例结果
进程
通过 psutil 可以获取所有进程的信息
1 |
|
列出所有不需要权限的进程
1 |
|
示例结果
总结
本文以 Psutil + Flask + Pyecharts + Bootstrap 开发一个简单的系统监控平台,可以算做是本公众号内容的一个学以致用。在 Psutil 还有许多方法文章没有列举感兴趣的小伙伴可以去尝试并使用。