Glances - Linux 上的实时系统监控工具
Glances 是一个跨平台的、基于命令行的系统监控工具,由 Python 语言编写,使用 Python 的 psutil 库来抓取系统数据。可以监控 CPU、负载均衡、内存、网络设备、磁盘 I/O、进程和文件系统使用等。
一、输出信息概览
- CPU 信息(用户应用、系统核心程序、闲置)
- 内存信息,包括 RAM、交换空间、闲置内存等
- CPU 的平均负载(过去 1 分钟、5 分钟、15 分钟)
- 网络连接的下载 / 上传速率
- 进程总数(running、sleeping 等)
- 磁盘 I/O 读写速度
- 当前已挂载设备的磁盘空间使用
- 高资源占用的进程,及其 CPU/内存占用、PID、状态等
- 底部显示当前时间
- 将资源消耗过高的进程红色高亮显示
二、软件安装
Glances 一般已集成到大多数 Linux 发行版的官方软件源中。可以直接使用系统的包管理器(如 apt-get、yum)安装:
sudo apt-get install glances
当然也可以使用 Python 的包管理器(pip 命令)进行安装:
pip install glances
默认情况下,监控信息的刷新时间为 1 秒钟。可以使用 -t
选项自定义间隔时间:
glances -t 2
Glances 有 4 种颜色标记,分别表示不同的紧急程度:
- 绿色:OK
- 蓝色:CAREFUL
- 紫色:WARNING
- 红色:CRITICAL
可以在配置文件(默认为 /etc/glances/glances.conf
)中自行更改阈值。默认为 careful = 50、warning = 70、critical = 90 。
三、命令选项(热键)
- a:自动排序进程
- c:按 CPU 使用率排序进程
- m:按内存占用排序进程
- p:按名称排序进程
- i:按 I/O 速率排序进程
- d:显示或隐藏磁盘 I/O 统计
- f:显示或隐藏文件系统使用统计
- n:显示或隐藏网络流量统计
- s:显示或隐藏传感器数据统计
- l:显示或隐藏日志
- h:显示帮助信息
- q:退出
四、监控远程系统
可以在远程系统中以服务模式运行 glances 程序,再通过客户端上的 glances 连接到远程系统,以监控其状态。
可以使用 -s
选项启用服务器/客户端模式:
$ glances -s --username
Define the Glances server username: starky
Define the Glances server password (starky username):
Password (confirm):
Do you want to save the password? [Yes/No]: Yes
Glances XML-RPC server is running on 0.0.0.0:61209
客户端使用 -c
选项连接:
glances -c ip_address --username
WebServer 模式
在 glances 的 WebServer 模式下,客户端只通过浏览器访问就可以获取远程服务器的运行状态。该模式需要额外安装 Python 的 Bottle 模块:
pip install bottle
安装成功后,使用 glances -w
命令即可开启 WebServer 模式。
客户端使用浏览器访问 http://SERVER_IP:61208/
进入监控界面。
将 WebServer 模式配置为系统服务
- 创建 Unit 文件
sudo vim /etc/systemd/system/glancesweb.service
文件内容如下:
[Unit]
Description = Glances in Web Server Mode
After = network.target
[Service]
ExecStart = /usr/bin/glances -w -t 5 # glances路径因安装方法不同根据实际情况确定,可使用 which glances 命令获取
[Install]
WantedBy = multi-user.target
- 启用 systemd 服务并运行
$ sudo systemctl enable glancesweb
$ sudo systemctl start glancesweb
$ systemctl status glancesweb
● glancesweb.service - Glances in Web Server Mode
Loaded: loaded (/etc/systemd/system/glancesweb.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-08-21 00:02:17 CST; 8min ago
Main PID: 27912 (glances)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/glancesweb.service
└─27912 /home/starky/miniconda3/envs/python2/bin/python /home/starky/miniconda3/envs/python2/bin/glances -w -t 5
8月 21 00:02:17 starky-ThinkPad-T460 systemd[1]: Started Glances in Web Server Mode.
参考文章
Glances – An Advanced Real Time System Monitoring Tool for Linux
Use Glances to Monitor Remote Linux in Web Server Mode