引言

在系统管理和性能调优中,实时了解系统运行状态至关重要。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 glances

    Fedora

    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 经常与 htopbtop 等流行的终端监控工具进行比较:

  • 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/

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。