
Glances 版本演进全解析从 1.x 到 4.5.x 的功能脉络与安全加固之路【免费下载链接】glancesGlances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, macOS and Windows operating systems.项目地址: https://gitcode.com/gh_mirrors/gl/glancesGlances 是一款面向 GNU/Linux、BSD、macOS 与 Windows 的跨平台系统监控工具top/htop的现代替代品。本文基于仓库根目录的 NEWS.rst即官方 ChangeLog覆盖 1.1.3 至 4.5.6 全部版本记录系统梳理其架构演进主线从 1.x 的单体脚本到 2.x 的插件化体系再到 3.x 的 WebUI 与性能优化直至 4.x 的 REST API 重构与 NPU/ZFS 等新硬件监控并重点解读 4.5.x 系列密集的安全加固与破坏性变更。读完本文你将能理解 Glances 各版本的核心能力差异、破坏性变更的迁移要点以及新版安全配置如allowed_hosts、cors_origins的正确用法。一、版本脉络总览Glances 四代演进的核心主线通读 NEWS.rst 可提炼出 Glances 版本演进的三条主线监控能力横向扩张从 CPU/内存/网络等基础指标逐步覆盖传感器、Docker 容器、GPU、RAID、S.M.A.R.T.、虚拟机、ZFS、NPU、MPP 等形成插件化生态输出与交互形态升级从纯 Curses 终端界面到 Bottle 的 Web 服务、再到 FastAPI/Uvicorn 的 REST API 与响应式 WebUI安全与工程化持续强化从明文密码、宽松 CORS演进到 JWT Token、Host 校验、CVE 批量修复与严格的 CI/CD 流程。当前仓库开发版本为4.5.7_dev01见 glances/init.py与 ChangeLog 中 4.5.6 的最新发布记录衔接说明本文描述的是当前活跃主线的最新状态。二、4.5.x 系列安全加固密集落地的硬核版本4.5.x 是 NEWS.rst 中记录最详细、安全补丁最密集的系列其核心特征是以破坏性变更换取默认安全。若你正运行 Glances Web 服务或 API 模式-w/--enable-webserver升级前务必逐条核对。2.1 4.5.2八个 CVE 一次修复的 Breaking Release4.5.2 明确标注为 breaking changes一次性修复 8 个安全漏洞并因此改变了若干可观测行为漏洞/变更影响与迁移动作CVE-2026-32632 DNS RebindingWeb 服务器默认强制校验Host头仅接受localhost/127.0.0.1其他请求返回 HTTP 400。反代、自定义主机名或非回环 IP 访问时必须在glances.conf的[outputs]段配置allowed_hosts逗号分隔列表CVE-2026-32610 CORS 通配默认 CORS 策略收紧不再返回Access-Control-Allow-Origin: *。跨源 Web 仪表盘需显式声明cors_originsCVE-2026-32609 密钥泄露/api/4/args与/api/4/config对未认证调用者不再返回密码哈希、SSL 密钥路径、SNMP community string集成脚本需先认证Token 或密码CVE-2026-32633/32634 凭据透传Browser多服务器模式不再向远程服务器透传配置中的凭据无论 Zeroconf 发现还是[serverlist]配置改为用户显式登录单个服务器CVE-2026-32596 无认证告警REST API 无认证无--password也无 API Token启动时输出 WARNING 提示模式本身不变CVE-2026-32611 DuckDB SQL 注入DuckDB 导出改用参数化 DDL插件/指标名派生的表名先净化旧库表名含特殊字符者需重建CVE-2026-32608 命令注入[action]模板中的进程名先做 shell 转义再替换这些配置在当前仓库的 conf/glances.conf 中均有对应注释项cors_origins默认*可设具体来源并配合cors_credentials、webui_allowed_hosts、mcp_allowed_hostsMCP 服务自 4.5.1 起要求、xmlrpc_allowed_hosts均支持通配符如*.example.com配置示例为[outputs] cors_originshttps://dash.example.com webui_allowed_hostslocalhost,127.0.0.1,myserver.example.com xmlrpc_allowed_hostslocalhost,127.0.0.1,myserver.example.com2.2 4.5.x 其余安全补丁与功能增强4.5.6修复了as_dict_secure()的值级绕过CVE-2026-68520URL 值泄露凭据、--disable-config-exec未覆盖 on-alert 动作CVE-2026-68519、action-template 净化器的跨字段 shell 运算符绕过CVE-2026-68518等 5 个漏洞4.5.5新增 GPU 的 CPU/MEM 计量并入 Quicklook 插件、Docker/Podman/LXD 容器的 CPU 限额、ARM/Raspberry Pi GPU 监控及 NVIDIA JetsonTegra的 proc/温度显示对应源码 glances/plugins/gpu/cards4.5.4新增 Rockchip MPP 硬件编解码监控源码见 glances/plugins/mpp支持 RKVENC/RKVDEC/RKJPEGD修复单核 Rockchip NPU 负载解析4.5.3新增 LXC/LXD 容器支持glances/plugins/containers/engines与 ClickHouse 导出glances/exports/glances_clickhouse。2.3 升级 4.5.x 的行动清单结合 ChangeLog 与配置源码升级到 4.5.x 建议按以下顺序检查若经反向代理或自定义域名访问 WebUI/API配置[outputs]段的allowed_hosts若第三方前端跨源调用 API配置cors_origins并评估cors_credentialsTrue的必要性检查脚本是否依赖/api/4/args、/api/4/config的未认证明文敏感字段改为 Token/密码认证Browser 多服务器模式改为逐服务器显式登录检查监控管道是否把启动 WARNING 输出误判为失败。三、4.04.4REST API 重构与监控版图扩张3.1 4.0.0Bottle 时代终结FastAPI 登场4.0.0 是版本 3 到 4 的分水岭破坏性变更包括最小 Python 版本升至 3.8API 从 v3 升级为 v4RESTful URL 变为/api/4/Alias 语法重构v3 及以下为sda1_aliasInternalDisk逐行定义v4 起改为aliassda1:InternalDisk,sdb1:ExternalDisk的逗号分隔语法Alert 数据模型从 list of list 改为 list of dictDocker 内存用量计算与docker stats算法对齐技术栈替换Bottle → FastAPI Uvicorn、CouchDB → PyCouchDB、nvidia-ml-py → py3nvml后又在后续版本回迁 nvidia-ml-py、pysnmp → pysnmp-lextudio。包维护者需注意4.0 的最低依赖为psutil、defusedxml、packaging、ujson、pydantic、fastapi、uvicorn、jinja2后两项仅 WebUI/RESTful API 需要。3.2 4.x 新增的关键监控维度NPU 监控4.5.0issue #2694新增 NPU 插件源码 glances/plugins/npu 已内置 AMDamdxdna、Intel、Rockchip 三种加速卡实现ZFS 监控4.5.0issue #873从/proc/spl/kstat/zfs/arcstats读取 ARC 统计见 glances/plugins/fs/zfs.py含zfs_enable()检测与zfs_stats()解析测试数据位于 tests-data/plugins/fs/zfs/arcstatsNVMe 支持4.5.0SMART 插件新增 DeviceName 键与 NVMe 相关能力DuckDB 导出4.4.0 实验性4.5.0 正式化见 glances/exports/glances_duckdb--fetchneofetch 风格快照4.4.0输出静态系统快照模板位于 conf/fetch-templatesAPI Token4.5.0issue #1995为 RESTful API 服务端实现 Token 认证JWT 配置见 conf/glances.confjwt_secret_key、jwt_expire_minutes。3.3 4.24.4 的体验与工程改进4.4.0 新增 Python API将 Glances 作为库使用、进程长命令行默认截断方向键查看完整命令行SHIFT方向键切换排序4.2.0 将 WebUI 迁移至 Bootstrap 5、新增 Multipass 虚拟机插件4.3.x 增加--print-completion生成 shell 补全、InfluxDB 3 Core 支持、TimeScaleDB 导出。工程侧4.x 全面采用 uv 管理开发环境、兼容 Python 3.14、以 SPDX 格式规范许可证。四、3.x 系列CPU 优化与 WebUI 现代化4.1 3.2.0以降低 CPU 占用为目标的里程碑3.2.0 通过火焰图剖析与代码优化将 CPU 占用降低 20%50%视系统而异手段包括按插件可配置刷新率[plugin]配置、进程 username/cmdline 缓存、系统统计默认刷新周期 60 秒、传感器刷新周期为全局刷新率的两倍、历史记录性能优化、Docker 客户端连接超时可配置。3.3.0 则完成了 WebUI 从 AngularJS 到 Vue 的技术栈迁移并新增 IP 插件公共 IP 展示Censys 链接、可配置时钟模块等。4.2 3.x 的关键功能累积3.3.xDocker 插件按容器排序、传感器 hide 大小写不敏感、AMP 正则特殊字符支持3.2.x按用户名过滤进程、Curses 界面杀进程issue #1444、F5 手动刷新、nice 值配置[processlist]段的nice_warning/nice_careful/nice_critical示例配置完整保留在 NEWS.rst 中、InfluxDB 2 导出3.1.xTCP 连接状态插件、S.M.A.R.T. 硬盘健康报告、--enable-plugin命令行开关、sparkline 图3.0REST API 独立开关--disable-webui、Pygal 图形导出、MQTT 导出、prometheus 标签支持、配置文件的动态命令替换如[influxdb] prefixhostname、tagsfoo:bar,system:uname -a。3.0 还给出了一批向后不兼容的 CLI 迁移--disable-plugin→--disable-plugin plugin、--export-exporter→--export exporter并明确 Docker API 最低版本 1.21、InfluxDB 0.9 弃用。五、2.x 系列插件化体系与监控生态成形2.0 是一次完整代码重构确立了 Glances 至今沿用的架构Core 定义基础与公共函数所有统计通过插件采集源码目录 glances/pluginsCurses、Web、CSV 等输出方式也以插件形式管理。2.x 期间新增的插件奠定了现代 Glances 的形态2.3Docker 插件按容器 CPU/内存监控、RAID 插件、告警触发动作[action]支持 Mustache 风格{{tag}}占位符、InfluxDB 与 StatsD 导出、告警日志开关_log2.6ElasticSearch、文件夹监控、网络/磁盘/文件系统 hide 正则通配、IOPS 统计、--disable-bg背景色开关2.7AMPApplication Monitoring Process插件取代旧监控进程列表、端口扫描插件、IRQ 插件、公开 IP 展示、进程按用户名过滤、Cassandra/Scylla 导出、图形历史导出重构2.8GPU 监控最初仅限 NVIDIA、ZeroMQ/CouchDB 导出、WiFi 热点信息、Docker 告警与动作2.9Prometheus 与 Kafka 导出、-c hostname:port形式指定客户端端口。2.x 还完成了安全地基浏览器模式服务器密码SHA256 存储、客户端/服务器密码保护、--password命令行交互式输入。六、1.x 起源从 psutil 替代者到现代监控工具1.x 阶段记录了 Glances 的技术底色与演进历程1.4告别 StatGrab全面拥抱 psutil 库不再使用 autotools改为setup.py安装1.5引入 client/serverXML-RPC远程监控模式1.6配置文件可定义阈值、每进程 IO 速率、服务器密码-P1.7硬碟温度HDDTemp 守护进程、电池容量Batinfo、每核 CPU 模式-1、XML-RPC IPv6 支持、本地配置文件支持、uninstall 脚本。这些早期能力阈值、密码、远程模式至今仍是 Glances 的核心语义只是实现不断现代化。七、演进规律与升级启示综合 NEWS.rst 全文可总结出三条对运维与开发者都有参考价值的规律安全是主线而非分支从 4.5.1 到 4.5.6几乎每个小版本都伴随 CVE 修复主题集中在命令注入、CORS/CSRF、DNS Rebinding、密钥泄露与序列化反序列化。这提示所有暴露网络的监控工具都应默认采用最小暴露、默认拒绝策略监控覆盖面与硬件生态同步扩张Docker → Podman/LXD → 虚拟机 → ZFS → GPUAMD/Intel/NVIDIA/Tegra→ NPU → MPPGlances 持续跟踪主流虚拟化与异构计算硬件且每种硬件都配有独立测试数据目录如 tests-data/plugins/gpu、tests-data/plugins/npu验证了其插件 厂商后端架构的可扩展性破坏性变更集中、但迁移路径清晰无论是 alias 语法、API 版本还是 CORS 默认策略ChangeLog 均给出明确的迁移指引与新配置项升级前对照 conf/glances.conf 的注释即可完成适配。对于计划升级或首次部署的用户建议以 conf/glances.conf 为基线配置逐段[outputs]、[quicklook]、[processlist]、[graph]等核对注释说明再结合本仓库 docs 下的config.rst、quickstart.rst等文档完成环境验证生产环境的 Web/API 部署务必按 4.5.x 的安全清单收紧 Host 校验与 CORS 策略。【免费下载链接】glancesGlances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, macOS and Windows operating systems.项目地址: https://gitcode.com/gh_mirrors/gl/glances创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考