Linux 系统监控大师:Glances 工具详解助力自动化
看图猜诗,你有任何想法都可以在评论区留言哦~
摘要
Glances
是一款基于Python
开发的跨平台系统监控工具,集成了 CPU、内存、磁盘、网络、进程等核心指标的实时监控能力,并支持命令行、Web界面、客户端-服务器模式等多种使用场景。其轻量级、高可定制化及丰富的扩展功能(如数据导出、远程监控、API调用)使其成为运维人员实现自定义监控自动化的关键。本文将结合实践场景,从安装配置到常用功能、生产案例,全面解析Glances
的核心应用。
文章目录
- 一、基础说明
- 1.1 Glances 核心功能
- 1.2 与同类工具对比(htop、top)
- 二、安装与配置
- 2.1 安装方法
- 2.2 依赖项管理
- 三、使用技巧
- 3.1 基础监控与交互操作
- 3.2 Web 界面监控
- 3.3 数据导出与集成
- 四、生产实际案例
- 4.1 多服务器集群监控
- 4.2 容器化环境监控
- 五、常见问题处理
- 5.1 安装依赖缺失
- 5.2 Web 界面无法访问
- 5.3 客户端连接超时
一、基础说明
1.1 Glances 核心功能
- 实时监控:动态展示 CPU、内存、磁盘 I/O、网络流量、进程资源占用等指标。
- 多模式支持:单机模式、客户端-服务器模式、Web 界面模式。
- 数据导出:支持 CSV、JSON、InfluxDB、Prometheus 等格式导出。
- 交互式操作:通过快捷键对进程排序、筛选、显示/隐藏模块。
- 跨平台兼容:支持 Linux、Windows、macOS 及 Docker 容器环境。
1.2 与同类工具对比(htop、top)
功能/工具 | Glances | htop | top |
---|---|---|---|
界面交互 | 动态自适应终端尺寸 | 固定分栏 | 基础分栏 |
监控维度 | 15+ 项系统指标 | CPU、内存、进程 | CPU、内存、进程 |
远程监控 | 支持客户端-服务器 | 不支持 | 不支持 |
数据导出 | CSV/HTML/数据库 | 无 | 无 |
扩展性 | 支持插件与 API | 有限 | 无 |
优势总结:Glances 在功能集成性、远程协作及数据扩展性上显著优于传统工具,尤其适合多服务器集群监控场景。
二、安装与配置
2.1 安装方法
Debian/Ubuntu:
# 通过 apt 安装
sudo apt install glances -y# 通过 pipx 安装(推荐)
pipx install glances[all] # 安装全部扩展功能
CentOS/RHEL:
# 启用 EPEL 仓库后安装
sudo yum install -y epel-release && sudo yum install glances -y
Docker 部署:
# 拉取镜像并运行
docker pull nicolargo/glances:latest-full
docker run -d -it --pid host --network host nicolargo/glances
Windows 系统:
# 通过 pip 安装
pip install glances
2.2 依赖项管理
- 核心依赖:
psutil
(系统信息采集)、defusedxml
(XML 解析)。 - 可选依赖:
bottle
(Web 界面)、influxdb
(数据导出)。
三、使用技巧
3.1 基础监控与交互操作
查看版本:
linux01@linux01:~$ glances -V
Glances version: 4.3.1
Glances API version: 4
PsUtil version: 7.0.0
Log file: /home/linux01/.local/share/glances/glances.log
linux01@linux01:~$
启动 Glances:
glances # 默认刷新间隔2秒
glances -t 5 # 设置刷新间隔为5秒
界面展示:
界面说明:
- 顶部:系统负载、CPU 使用率、内存/交换分区。
- 中部:网络流量、进程列表(按 CPU 或内存排序)。
- 底部:磁盘 I/O、传感器温度(需安装
lm-sensors
)。
快捷键操作
快捷键 | 功能 |
---|---|
c | 按 CPU 使用率排序进程 |
m | 按内存使用率排序进程 |
d | 显示/隐藏磁盘 I/O 统计 |
n | 显示/隐藏网络统计 |
w | 删除警告日志 |
k | 删除进程 |
h | 显示帮助菜单 |
3.2 Web 界面监控
启动 Web 服务器:
glances -w # 默认端口 61208
访问 http://<服务器IP>:61208
即可查看实时监控页面(支持响应式布局)。
进阶配置:
# 设置用户密码保护
glances -w --username --password# 后台启动
glances -w &
3.3 数据导出与集成
导出为 CSV:
glances --export csv --export-csv-file /path/to/glances.csv
导出为 JSON:
glances --export json --export-json-file /path/to/glances.json
集成 Prometheus:
# 以 Prometheus 支持的方式启动 Glances
glances --export prometheus# 默认仅支持本地访问,端口 9091,验证
linux01@linux01:~$ curl http://127.0.0.1:9091/metrics
# HELP python_gc_objects_collected_total Objects collected during gc
# TYPE python_gc_objects_collected_total counter
python_gc_objects_collected_total{generation="0"} 1092.0
python_gc_objects_collected_total{generation="1"} 164.0
python_gc_objects_collected_total{generation="2"} 10.0
# HELP python_gc_objects_uncollectable_total Uncollectable objects found during GC
# TYPE python_gc_objects_uncollectable_total counter# 你可以配置 Prometheus 来连接 Glances
四、生产实际案例
4.1 多服务器集群监控
场景:监控 10 台 Linux 服务器的资源使用情况。
解决方案:
- 在其中一台服务器启动 Glances 服务端:
glances -s -B 0.0.0.0
- 其他服务器作为客户端连接:
glances -c <主服务器IP>
- 在主服务器通过 Web 界面或客户端汇总查看所有节点状态。
4.2 容器化环境监控
场景:监控 Docker 容器的 CPU 和内存占用。
解决方案:
- 使用 Docker 运行 Glances:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host nicolargo/glances
- 启用 Docker 监控模块:
glances --enable-docker
五、常见问题处理
5.1 安装依赖缺失
报错:ModuleNotFoundError: No module named 'psutil'
解决:安装缺失的 Python 库:
pip install psutil defusedxml
5.2 Web 界面无法访问
可能原因:防火墙未开放端口或服务未绑定正确 IP,安装的不是 glances[all] 版本。
排查:
netstat -tuln | grep 61208 # 检查端口监听状态
glances -w -B 0.0.0.0 # 强制绑定所有IP
5.3 客户端连接超时
可能原因:网络隔离或服务端未正确启动。
排查:
telnet <服务器IP> 61209 # 测试端口连通性
glances -s --debug # 启用调试模式
结语:Glances 凭借其高度集成性、跨平台支持及灵活的扩展能力,已成为运维监控领域的标杆工具。通过本文的详解,你已经掌握其核心功能。进一步学习可参考 Glances 官方文档。如果你觉得这篇文章对你有帮助,不妨点个赞👍,或者分享给你的朋友们吧!你的支持是我持续创作的最大动力!
资源推荐:
- Glances GitHub 仓库
- Grafana 仪表盘模板库
- 上一篇:Linux 系统监控进阶:htop 命令详解与高效运维