glances 介绍与选型指南
glances 是 Python 编写的跨平台系统监控工具,本篇溯源其架构、功能与 top/htop/btop/netdata/bottom 的量化选型对比,附场景建议。
glances 介绍与选型指南
目标:面向准备在 Linux 服务器上选型部署监控工具的运维与开发人员,从项目定位、核心架构、功能特性、适用场景到同类工具(top/htop/btop/netdata/bottom)的量化对比,给出 glances 的完整选型参考。本篇为认知篇,全部信息均来自官方源联网溯源(标注来源与查询日期),未做本地实测。
一、环境信息
本篇为联网溯源的认知篇,不依赖本地实验环境。行文中所有版本号、星数、发布日期均标注了出处与查询日期,读者复核时以官方源最新值为准。
- 软件名称:glances(仓库
nicolargo/glances,官网 https://nicolargo.github.io/glances/ ,官方文档 https://glances.readthedocs.io ) - 最新稳定版:v4.5.8,发布于 2026-10-11(来源:GitHub Releases
https://github.com/nicolargo/glances/releases/latest页面重定向与 PyPIhttps://pypi.org/pypi/glances/json,查询日期 2026-10-23) - 运行要求:Python ≥ 3.10(来源:PyPI 包元数据
requires_python,查询日期 2026-10-23) - 社区热度:GitHub Stars 约 34k(来源:shields.io 徽章
https://img.shields.io/github/stars/nicolargo/glances.json,查询日期 2026-10-23) - 许可证:LGPL-3.0(来源:仓库 LICENSES 目录与 README,查询日期 2026-10-23)
- 本篇其余章节引用的官方文档 URL 均在文末「参考链接」汇总。
二、软件概述
glances 是一个用 Python 编写的开源跨平台系统监控工具(来源:官方 README「Glances is an open-source system cross-platform monitoring tool」,查询日期 2026-10-23)。它可以实时监控系统的各个方面:CPU、内存、磁盘、网络使用率、运行中的进程、文件系统、传感器温度、容器与虚拟机等;同时支持通过 Web 界面或命令行客户端/服务器模式对远程机器进行监控。
它解决的问题非常聚焦:在「只想快速看一眼这台服务器怎么了」的场景下,glances 一条命令就能在一屏终端里给出 CPU、内存、负载、磁盘 I/O、网络流量、进程 TOP、文件系统占用等全景信息,并以红黄绿三色阈值标注异常项;当需要持续观测或多机管理时,又能以 Web 模式、REST API、客户端/服务器模式以及 24 种导出器(CSV、InfluxDB、Prometheus、Elasticsearch、Kafka 等)向外扩展。它定位介于「单机终端监视器(top/htop/btop)」与「重型可观测平台(netdata/Zabbix)」之间:比前者多了 Web/API/导出/告警能力,比后者轻量得多——一个 Python 包即可安装运行,无需数据库与常驻采集代理(来源:官方 README 与官方文档模式章节,查询日期 2026-10-23)。
项目由 Nicolas Hennion(nicolargo)创建并维护,自 2011 年起持续迭代,是 GitHub 上星数最高的 Python 系统监控工具之一(34k stars,查询日期 2026-10-23)。
三、核心架构
以下架构信息来自官方文档(glances.readthedocs.io「Architecture」与「API」章节)与仓库源码结构,查询日期 2026-10-23。
- 数据采集层:插件体系(36 个内置插件)。glances 的监控项全部由插件实现,每个插件独立采集一类指标:
cpu、percpu、mem、memswap、load、network、diskio、fs、processlist、sensors、ports、containers、vms、gpu、cloud、ip、folders、amps等。插件统一向核心注册,可通过配置文件或命令行按名启停(--disable-plugin/--enable-plugin),也可通过plugin_dir加载外部自定义插件(来源:官方 conf 模板[global]段注释与官方文档「Plugins」页)。 - 数据展示层:统一统计结构 + 多输出模式。所有插件产出的统计数据以统一结构在内存中流转,由不同的输出形态消费:
- Standalone 模式(终端 TUI,curses 界面):
glances直接运行; - Web 模式:
glances -w启动内嵌 FastAPI/Uvicorn 服务(默认端口 61208),同时提供 WebUI 与 REST API; - Server/Client 模式:
glances -s启动 XML-RPC 服务(默认端口 61209),glances -c <server>远程连接,支持密码认证与 SNMP 采集; - Central Browser 模式:
glances --browser以列表形态集中浏览多台 Glances 服务器; - stdout 模式:
glances --stdout/--stdout-json/--stdout-csv面向脚本的一次性输出。
- Standalone 模式(终端 TUI,curses 界面):
- 数据外发层:导出器体系(24 个导出模块)。统计可导出到 CSV/JSON 文件、SVG 图表(Pygal),以及时序数据库与消息系统:InfluxDB 1/2/3、Prometheus、Elasticsearch、Cassandra、OpenTSDB、StatsD、Riemann、RabbitMQ、MQTT、CouchDB、MongoDB、Kafka、ZeroMQ、Graphite、TimescaleDB、NATS、DuckDB、ClickHouse 等(来源:官方
--module-list输出的 Exporters 清单于 v4.5.8 源码,查询日期 2026-10-23)。 - 告警与动作层:每个插件都有 careful/warning/critical 三级阈值(可在
glances.conf中逐项覆写),阈值越限产生告警事件(Event),并可触发自定义 shell 动作(<阈值键>_action,如user_critical_action),告警历史可通过 API/TUI 查看。 - 配置层:单一 INI 风格配置文件
glances.conf(查找顺序:/etc/glances/glances.conf→ 用户目录~/.config/glances/glances.conf→ 安装目录),文件中每个插件一个段,命令行参数可临时覆写配置值。
💡 技术拓展:glances 的「远程监控」有两种协议可选——XML-RPC(
glances -s/-c,传统 client/server 模式,端口 61209)与 RESTful API(glances -w,端口 61208,同时带 WebUI)。选型口径:终端对终端的 TUI 远程观看用 XML-RPC 更轻;要做二次开发、对接监控大盘或浏览器访问则用 RESTful。两者可同时运行(同一进程内 -w 与 -s 分别监听不同端口),glances 还支持对不支持 XML-RPC 的远端走 SNMP 采集。
四、功能特性
以下特性清单综合官方 README(v4.5.8)与官方文档,查询日期 2026-10-23:
- 一键全景监控:CPU(总量/每核/iowait/上下文切换)、内存与交换分区、负载、磁盘 I/O、文件系统、网络接口速率、进程列表(排序/过滤/聚焦)、传感器温度、电池、GPU、目录大小、端口连通性、公共 IP 等 36 个插件按需启用。
- 多形态输出:TUI(curses)/ WebUI / REST API / XML-RPC server / 中央浏览器 / stdout 六种形态共用同一套插件与配置。
- 三级阈值与告警:careful/warning/critical 颜色分级 + 告警事件列表 + 自定义告警动作(shell 命令),支持 per-plugin、per-resource 覆写阈值。
- 导出器生态:24 个导出模块,文件类(CSV/JSON/Graph)、时序库类(InfluxDB/Prometheus/Graphite/OpenTSDB/ClickHouse/DuckDB/TimescaleDB/Cassandra)、消息类(Kafka/RabbitMQ/MQTT/NATS/ZeroMQ/StatsD/Riemann)与文档库类(Elasticsearch/MongoDB/CouchDB)。
- 容器与虚拟机监控:通过挂载 Docker/Podman socket 监控容器(CPU/内存/IO/网络),通过 libvirt 监控虚拟机。
- AMP(Application Monitoring Process):对特定进程(如 nginx、systemd、Dropbox)执行自定义命令并展示结果。
- Web 服务化能力(4.x 增强):内嵌 FastAPI/Uvicorn,支持 URL 前缀、CORS 配置、JWT 认证、DNS rebinding 防护、TLS 证书;4.x 还加入了 MCP(Model Context Protocol)服务器支持(
--enable-mcp),可对接 AI 助手(来源:官方 README「Docker compose」与 conf 模板[outputs]段,查询日期 2026-10-23)。 - 跨平台:Linux、Windows、macOS、*BSD(官方 README 提供 FreeBSD pkg 安装说明)、Android(Termux);依赖仅 psutil 等少量 Python 库,
pip install glances[all]即装即用。 - REST API 版本化:当前 API 版本为 4(URL 前缀
/api/4),提供 OpenAPI 规范文件,便于二次开发(来源:官方「Restful/JSON API documentation」)。
五、快速开始(最小可用示例)
以下命令与参数来自官方 README 与官方文档(来源:https://github.com/nicolargo/glances README「Installation」章节与官方文档,查询日期 2026-10-23)。本篇为认知篇,未在本地复跑;安装的实测过程与真实回显见本专栏 《Ubuntu 24.04 安装 glances 4.5.8 指南》,命令与模式的完整实测见 《glances 4.5.8 常用 CLI 命令与工具详解》。
# 安装(官方推荐 PyPI 方式,带全部特性依赖)
pipx install 'glances[all]'
# 一键运行终端监控(standalone TUI 模式)
glances
# 启动 Web UI + REST API(默认端口 61208)
glances -w
# 客户端/服务器远程监控
glances -s # 服务端(默认端口 61209)
glances -c <服务器IP> # 客户端
# 导出统计到 CSV
glances --export csv --export-csv-file /tmp/glances.csv
要点解读:glances 安装后即为单命令工具,无守护进程依赖;-w 模式下浏览器访问 http://<服务器IP>:61208/ 即为 WebUI,/api/4/ 下为 REST API(如 /api/4/cpu 返回 JSON)。
六、适用场景与限制
适用场景(基于官方文档与功能清单归纳,查询日期 2026-10-23):
- 服务器巡检与排障第一入口:SSH 上服务器后
glances一条命令看全景,阈值配色直接指出可疑资源,进程列表支持按 CPU/内存排序并 kill。 - 轻量 Web 监控大盘:
glances -w+ 浏览器/手机访问,适合个人服务器、家庭 NAS、跳板机的「够用级」Web 监控,无需安装数据库。 - 脚本化与自动化:stdout/CSV/JSON 模式输出单行结构化数据,便于塞进 cron、健康检查脚本;REST API 便于自研面板取数。
- 向时序库长期沉淀:通过导出器把统计推给 InfluxDB/Prometheus/ClickHouse,glances 扮演采集器角色,与 Grafana 等展示层配合。
- 多机集中查看:client/server 模式 + 中央浏览器,适合少量机器(几台到几十台)的集中巡视。
限制(来源:官方文档与项目 Issue 讨论,查询日期 2026-10-23):
- 无长期存储与历史图表:内存中的历史数据默认仅保留 1200 个采样点(约 1 小时,
history_size=1200),要历史曲线必须外接导出器。 - 无告警通知渠道:告警动作限于本地命令执行与事件列表展示,邮件/IM 通知需自行在告警动作里对接。
- 无用户体系与多租户:WebUI 无登录认证(4.x 提供 JWT/CORS/DNS 防护等机制但仍非完整用户体系),公网暴露需自行套反向代理与认证。
- 大规模集群不适用:中央浏览器按服务器逐台轮询,没有自动服务发现、聚合与分布式查询,几百节点以上应选 Prometheus 体系。
- API 版本演进:REST API 从 v3 到 v4 有不兼容调整,脚本对接时需关注版本。
七、同类选型对比
选型对比覆盖「终端监视器」与「Web 监控平台」两类共 6 个工具。星数与版本数据来源均为 shields.io 徽章接口或对应官方仓库/官网页面,查询日期统一为 2026-10-23;资源占用口径为单机常驻监控的典型情况(来源:各项目官方 README 对自身依赖与实现的描述)。
| 工具 | 语言/依赖 | 形态 | 社区热度(Stars,2026-10-23) | 远程/集中查看 | 历史存储 | 告警动作 | 典型资源占用 |
|---|---|---|---|---|---|---|---|
| top | C(procps-ng,系统预装) | 终端 TUI | —(随系统发行,无独立仓库热度) | 不支持 | 无 | 无 | 极低(<5MB) |
| htop | C | 终端 TUI | 8.4k(htop-dev/htop) | 不支持 | 无 | 无 | 极低(<5MB) |
| btop | C++(零外部依赖) | 终端 TUI | 35k(aristocratos/btop) | 不支持 | 无 | 无 | 低(约 30-60MB) |
| bottom | Rust(单二进制) | 终端 TUI + 内置绘图 | 14k(ClementTsang/bottom) | 支持远程模式 | 短期内存历史 | 无 | 低 |
| glances | Python(psutil) | TUI + WebUI + REST API + C/S + 24 导出器 | 34k(nicolargo/glances) | Web/API/客户端-服务器/中央浏览器 | 内存短历史 + 外接导出 | 三级阈值 + 自定义命令 | 中(Python 进程,约 60-120MB) |
| netdata | C(带内置时序库) | Web 为主 + Agent | 81k(netdata/netdata) | 内置 Web 大盘 + 云平台 | 内置时序库长期存储 | 完整告警引擎 + 多渠道通知 | 中(官方称空闲约 150-300MB,可调) |
解读与选型建议:
- 纯终端快速查看:top/htop/btop 足够且更省资源;其中 btop 界面信息密度与美观度最好。它们没有 Web/API/导出能力,离开终端就「看不见」。
- 需要浏览器访问、API 对接或数据外发:glances 是同量级里唯一以一个包同时给出 TUI + WebUI + REST API + 导出器的选择;netdata 能力更强(1 秒粒度、内置存储、告警通知、自动服务发现)但体系重得多,运维成本也高。
- 长期可观测平台建设:选 netdata 或 Prometheus + node_exporter 体系;glances 的导出器可作为补充采集器接入这些平台,但不应把它当平台核心。
- 个人/小团队轻量监控(几台到几十台机器):glances 的 Web 模式 + client/server 模式 + CSV/InfluxDB 导出基本覆盖需求,且可以与 top/htop 并存(终端工具互不冲突)。
- 兼容矩阵:top/htop/btop 均为 POSIX/类 Unix 优先(btop 支持 macOS/FreeBSD);bottom 跨平台最全(Linux/Windows/macOS);glances 与 netdata 均跨 Linux/Windows/macOS/BSD,glances 还有 Android Termux 支持(来源:各项目官方 README,查询日期 2026-10-23)。
- 版本节奏:glances 4.x 于 2025 年启动,2026 年内持续发布补丁版本(v4.5.8 发布于 2026-10-11,来源 GitHub Releases 查询日期 2026-10-23),维护活跃;btop/netdata/bottom 均为月度级活跃发布。
八、参考链接
- GitHub 仓库:https://github.com/nicolargo/glances (README,查询日期 2026-10-23)
- Releases 页面:https://github.com/nicolargo/glances/releases (v4.5.8,2026-10-11,查询日期 2026-10-23)
- 官方文档:https://glances.readthedocs.io
- 官网:https://nicolargo.github.io/glances/
- PyPI:https://pypi.org/project/glances/ (4.5.8,requires Python ≥3.10,查询日期 2026-10-23)
- REST API 文档:https://glances.readthedocs.io/en/latest/api.html
- 配置文件官方模板(v4.5.8):https://github.com/nicolargo/glances/blob/v4.5.8/conf/glances.conf
- 本站选型延伸阅读:《glances 4.5.8 常用 CLI 命令与工具详解》(运行模式与 API 实测)、《Ubuntu 24.04 安装 glances 4.5.8 指南》(安装实测)、《glances 4.5.8 配置参数详解》(配置实测)