引言
在系统管理和性能调优中,实时了解系统运行状态至关重要。Glances 是一款使用 Python 编写的开源、跨平台系统监控工具,旨在通过简洁直观的界面,提供尽可能全面的系统信息。无论您是系统管理员、开发人员还是普通用户,Glances 都能帮助您快速掌握系统资源使用情况,及时发现潜在问题。
主要特性
Glances 以其丰富的功能和灵活性脱颖而出:
- 全面的监控指标: Glances 能够监控广泛的系统资源,包括 CPU 使用率(总览和单核)、内存和 Swap 使用情况、平均负载、进程列表(可排序)、网络接口速率、磁盘 I/O、中断、硬件温度(通过 sensors 插件)、文件系统使用率、Docker 容器状态等。
- 跨平台兼容: Glances 可以在 GNU/Linux、FreeBSD、macOS 和 Windows 等多种操作系统上运行,提供一致的监控体验。
- 多种工作模式:
- 独立模式 (Curses UI): 在终端中运行,提供一个动态更新、颜色编码的文本界面。高资源使用率会以不同颜色(如警告、严重)突出显示,便于快速识别瓶颈。
- Web UI 模式: 通过
glances -w
启动一个内建的 Web 服务器(默认监听 61208 端口),允许用户通过浏览器远程访问监控数据。Web UI 支持密码保护和多种认证方式,增强安全性。 - Client/Server 模式: 允许在一台机器上运行 Glances 服务器 (
glances -s
),并在另一台机器上运行 Glances 客户端 (glances -c <server_ip>
) 进行远程监控。
- 动态和可定制界面: Glances 的界面会根据终端或浏览器窗口的大小动态调整显示的信息。用户可以通过配置文件 (
glances.conf
) 定制显示的模块、刷新频率以及告警阈值(例如,为 CPU、内存设置 WARNING 和 CRITICAL 级别)。 - 强大的扩展性:
- 插件系统: Glances 支持插件来扩展其监控能力,例如监控特定应用程序(如 Nginx, PostgreSQL)、硬件传感器、文件夹大小等。用户也可以编写自己的 Python 插件。
- RESTful API: Glances 提供了一个强大的 RESTful API(默认监听 61208/api/3),允许开发者通过 HTTP 请求获取 JSON 格式的监控数据。这使得 Glances 可以轻松集成到自动化脚本、第三方监控平台(如 Prometheus、InfluxDB)或自定义仪表板中。
安装与快速入门
安装 Glances 非常简单:
- 使用 pip (推荐):
bash
pip install glances[all] # 安装 Glances 及所有可选依赖
# 或者仅安装核心功能
pip install glances -
使用包管理器: 大多数 Linux 发行版和 macOS (通过 Homebrew) 都提供了 Glances 的软件包。
“`bash
# Debian/Ubuntu
sudo apt update && sudo apt install glancesFedora
sudo dnf install glances
macOS (Homebrew)
brew install glances
* **使用 Docker:**
bash
docker run -d –name=glances -e GLANCES_OPT=”-w” -v /var/run/docker.sock:/var/run/docker.sock:ro –pid host -p 61208:61208 nicolargo/glances
“`
快速启动:
- 在终端启动 Curses UI:
glances
- 启动 Web UI:
glances -w
(然后在浏览器访问http://<your_ip>:61208
)
使用场景与案例
Glances 的灵活性使其适用于多种场景:
- 实时系统概览: 快速了解服务器或个人电脑的当前负载和资源使用情况。
- 远程服务器监控: 通过 Web UI 或 Client/Server 模式方便地监控远程或无头服务器。
- 性能问题诊断: 识别消耗 CPU 或内存过高的进程,定位系统瓶颈。许多用户反馈 Glances 的颜色编码对此非常有帮助。
- 开发与测试: 监控应用程序在开发或测试过程中的资源消耗。
- 自动化与集成: 利用其 API 将 Glances 数据集成到自动化监控脚本中。例如,编写 Python 脚本定期检查 CPU 使用率,并在超过阈值时通过 Slack 或邮件发送警报。Glances 也可以通过 exporter 集成到 Prometheus,或直接将数据发送到 InfluxDB 进行长期存储和分析。
用户评价与社区反馈
社区普遍认为 Glances 是一款非常实用且易于上手的监控工具。
- 优点: 用户称赞其信息丰富、界面直观(尤其是颜色编码)、可定制性强以及相对较低的资源占用。Web UI 和 API 功能也备受好评。
- 缺点: 一些用户认为默认的 Curses 界面在美观性上不如某些现代工具,并且希望有更内置、更强大的告警通知功能。
- 常见问题: 社区论坛(如 Reddit, Stack Overflow)中有用户讨论 CPU 或内存使用率显示与
top
/free
命令的差异(通常与计算方式有关)、Web UI 无法访问(防火墙或绑定地址问题)、特定插件无法工作或 Glances 进程崩溃等问题。通常可以通过查阅官方文档、检查配置或更新版本来解决。
与类似工具对比
Glances 经常与 htop
和 btop
等流行的终端监控工具进行比较:
- Glances vs htop:
htop
: 更轻量级,专注于进程查看和管理,交互性强。Glances
: 提供更全面的系统指标(网络、磁盘 I/O、传感器等),支持 Web UI 和 API,可扩展性更好,但资源占用相对较高。
- Glances vs btop:
btop
: 界面更现代、美观,具有更好的鼠标交互和图表。Glances
: 跨平台性更好(btop 主要支持 Linux/macOS/FreeBSD),拥有成熟的 API 和插件生态系统,更适合集成和扩展。btop
的资源占用通常也高于htop
,有时可能高于 Glances。
选择哪个工具取决于具体需求:如果只需要快速查看进程,htop
足够;如果需要现代化的界面和交互,btop
是不错的选择;如果需要全面的系统信息、远程监控、API 集成和良好的扩展性,Glances
是一个强大的竞争者。
总结
Glances 是一款功能丰富、高度可配置且易于使用的跨平台系统监控工具。它通过统一的界面(终端或 Web)提供了对系统资源的深入洞察,并通过 API 和插件系统提供了出色的扩展能力。虽然它可能比最轻量级的工具消耗稍多资源,但其全面的功能和灵活性使其成为系统管理员、开发人员和高级用户的宝贵工具。
如果您正在寻找一款强大的开源系统监控解决方案,Glances 绝对值得一试。
项目地址: https://github.com/nicolargo/glances
官方文档: https://glances.readthedocs.io/
评论(0)