资讯动态

Glances 跨平台系统监控工具:TUI、Web、API 与 MCP 多形态监控指南

发布时间:2026/9/20 3:38:03 来源:尧图企业网站定制
Glances 跨平台系统监控工具TUI、Web、API 与 MCP 多形态监控指南【免费下载链接】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 是一款跨平台系统监控工具目标是在最小空间内呈现最大信息量通过 curses 终端界面或 Web 界面提供实时系统指标并支持客户端/服务端远程监控、数据导出、Python/RESTful API 集成以及面向 AI 助手的 MCP 服务器。本文基于项目官方文档与源码带你全面掌握 Glances 的安装、运行模式、配置体系与二次开发能力。Glances 是什么设计目标与核心能力Glances 以 An eye on your system 为理念是一款面向 GNU/Linux、BSD、macOS 和 Windows 的跨平台监控工具见 docs/index.rst。其核心设计目标可以概括为四点信息密度与自适应显示通过 curses 或 Web 界面呈现系统状态并根据终端大小动态调整显示内容——终端越小展示的信息越精简终端越宽展示的插件越多。远程监控支持客户端/服务端模式远程监控可通过终端、Web 界面或 APIXMLRPC 与 RESTful完成。数据出口丰富统计数据可导出到文件或外部数据库详见 Gateway 文档。可编程接入可在 Python 脚本中通过 Glances Python API 使用任何应用也可通过 RESTful API 消费数据AI 助手Claude、Cursor 等还能通过 MCPModel Context Protocol服务器 直接查询 Glances。Glances 的所有功能模块均以插件plugin形式组织仓库源码位于 glances/plugins从 CPU、内存、磁盘、网络到容器Docker/Podman/LXD、GPU、NPU、传感器、WiFi、虚拟机等一应俱全。快速上手四种运行模式Glances 提供 Standalone、Client/Server、Web server、Fetch 四种模式见 docs/quickstart.rst。独立模式Standalone在终端直接运行即可监控本机按q或ESC退出$ glances独立模式还支持把原生 Python 统计直接输出到 stdout便于脚本消费$ glances --stdout cpu.user,mem.used,load,network.wlp2s0.bytes_all cpu.user: 30.7 mem.used: 3278204928 load: {cpucore: 4, min1: 0.21, min5: 0.4, min15: 0.27} network.wlp2s0.bytes_all: 13479也可以用 CSV 格式此模式下不支持 key$ glances --stdout-csv now,cpu.user,mem.used,load now,cpu.user,mem.used,load.cpucore,load.min1,load.min5,load.min15 2018-12-08 22:04:20 CEST,7.3,5948149760,4,1.04,0.99,1.04或用 JSON 格式此模式下不支持 attribute$ glances --stdout-json cpu,mem cpu: {total: 29.0, user: 24.7, nice: 0.0, system: 3.8, idle: 71.4, ...} mem: {total: 7837949952, available: 2919079936, percent: 62.8, used: 4918870016, ...}注意每刷新一次每个统计项输出一行。客户端/服务端模式Client/Server在服务端机器上启动服务server$ glances -s在客户端连接client$ glances -c server其中server是服务端的 IP 地址或主机名。服务端可用-B ADDRESS指定绑定地址、-p PORT指定监听 TCP 端口客户端可用-p PORT指定服务端端口。默认绑定地址为0.0.0.0监听所有可用网卡默认 TCP 端口为61209。在客户端/服务端模式下告警阈值limits由服务端统一设置。安全XML-RPC 的 DNS 重绑定防护默认情况下XML-RPC 服务器接受任意 HTTPHost头值恶意网页可利用 DNS rebinding 从受害者浏览器读取服务器响应对应安全公告 CVE-2026-46611。建议开启 Host 校验在glances.conf的[outputs]段设置xmlrpc_allowed_hosts[outputs] xmlrpc_allowed_hostslocalhost,127.0.0.1,myserver.example.com设置后Host头不匹配列表中任何模式的请求将被拒绝并返回400 Bad Request。通配符遵循 Pythonfnmatch规则——例如*.example.com能匹配foo.example.com但不能匹配example.com本身。任何部署在非回环接口上的服务都应设置该选项缺失时 Glances 会输出启动警告。该配置项同样存在于仓库自带的 conf/glances.conf 模板中。Central Glances Browser集中浏览器使用--browser选项可以集中管理网络中的多个 Glances 服务器服务器列表可通过配置文件[serverlist]段静态定义[serverlist] # 定义要抓取/显示的列逗号分隔的 plugin:field:(key) 列表 # 默认值为: system:hr_name,load:min5,cpu:total,mem:percent columnssystem:hr_name,load:min5,cpu:total,mem:percent,memswap:percent # 定义静态服务器列表 server_1_namexps server_1_aliasxps server_1_port61209 server_2_namewin server_2_port61235启动 TUI 集中浏览器client$ glances --browser列表中可用上下键导航数字键控制排序1不排序2升序ONLINE SNMP PROTECTED OFFLINE UNKNOWN3降序UNKNOWN OFFLINE PROTECTED SNMP ONLINE。Glances 4.3 及以上还支持 WebUI 集中浏览器client$ glances --browser -w打开/browserURL 并点击服务器即可查看统计。可用--disable-autodiscover关闭自动发现。此外Glances 还支持通过 zeroconf 协议自动发现网络中的 Glances 服务器Windows 上不可用。SNMP 与 IPv6作为实验特性当客户端无法通过 Glances 协议检测到服务器时会尝试用 SNMP 抓取统计client$ glances -c snmpserverSNMP 抓取的统计项有限且依赖操作系统需要预先安装并配置 SNMP 服务器。Glances 兼容 IPv6使用-B ::即可绑定所有 IPv6 地址。Web 服务器模式server$ glances -w然后在任意带浏览器的设备上访问http://server:61208其中server为服务端 IP 或主机名。在 URL 末尾追加秒数可调整页面刷新周期例如每 10 秒刷新一次http://server:61208/10Glances Web 界面遵循响应式 Web 设计原则移动端体验良好。为服务器/Web 服务器设置登录口令使用--password设置访问密码默认用户名为glances可用--username修改。设置后SHA 密码会保存在login.pwd文件中存放于配置文件同目录Linux 下为~/.config/glances/。下次运行服务器/客户端时将不再询问密码如需指定用户名用-u username选项。也可以在配置文件中设置默认密码[passwords] # 定义密码列表 # 语法: hostpassword # 其中: host 为主机名 # password 为明文密码 # 另外可选可以定义默认密码 localhostmylocalhostpassword defaultmydefaultpasswordFetch 模式用--fetch以美观的方式在控制台快速展示当前统计$ glances --fetch还支持自定义模板--fetch-template /path/to/template.jinja。仓库提供了现成模板 conf/fetch-templates/short.jinja 与 conf/fetch-templates/with-logo.jinja详细的自定义模板编写方法见 fetch 文档。命令行与交互操作参考完整命令参考见 docs/cmds.rst这里按使用场景精选高频选项选项作用-h, --help显示帮助-V, --version显示版本号-d, --debug开启调试模式-C CONF_FILE, --config CONF_FILE指定配置文件路径-t TIME, --time TIME设置刷新时间秒默认 3 秒-s, --server以服务端模式运行-c CLIENT, --client CLIENT连接 Glances 服务器IPv4/IPv6 地址、主机名或 hostname:port-p PORT, --port PORT定义客户端/服务端 TCP 端口默认 61209-B BIND_ADDRESS, --bind BIND_ADDRESS绑定服务器到指定地址-w, --webserver以 Web 服务器模式运行需要 FastAPI-b, --byte以字节/秒显示网络速率-1, --percpu以每 CPU 模式启动-2, --disable-left-sidebar禁用网络、磁盘 I/O、文件系统和传感器模块-3, --disable-quicklook禁用 quick look 模块-4, --full-quicklook仅保留 quick look 和 load-5, --disable-top禁用顶部菜单QuickLook、CPU、MEM、SWAP、LOAD-6, --meangpu以平均 GPU 模式启动-0, --disable-irix任务 CPU 使用率除以总 CPU 数--stdout PLUGINS_STATS输出插件统计到 stdout--export EXPORT启用导出模块逗号分隔--disable-process禁用进程模块降低 Glances CPU 占用--process-filter PROCESS_FILTER设置进程过滤正则--disable-check-update禁用在线版本检查--print-completion生成 shell 补全脚本--enable-mcp在 Web 服务器旁启用 MCP 服务器需mcp包交互式按键curses 界面TUI 运行期间支持大量快捷键详见 docs/cmds.rst常用包括ENTER设置进程过滤器正则如gnome匹配以 gnome 开头的进程.*gnome.*匹配包含 gnome 的进程macOS 上用CTRL-H删除过滤器c/m/i/p/u/t分别按 CPU、内存、I/O、进程名、用户、CPU 时间排序进程a自动排序CPU 70% 按 CPUMEM 70% 按内存CPU iowait 60% 按 I/Od/n/f/s显示/隐藏磁盘 I/O、网络、文件系统、传感器g为当前历史生成图表1全局 CPU 与每 CPU 统计切换9黑白主题切换/-/k提升/降低选中进程优先级、杀死进程仅独立模式需要权限q/ESC/CTRL-C退出在--browser集中浏览器中ENTER运行选中服务器UP/DOWN上下移动q/ESC退出。配置体系无需配置即可运行按需深度定制Glances不强制要求配置文件但没有配置文件将无法使用更多高级设置见 docs/config.rst。配置文件位置按操作系统优先级查找glances.conf平台查找位置Linux、SunOS~/.config/glances/、/etc/glances/、/usr/share/doc/glances/*BSD~/.config/glances/、/usr/local/etc/glances/、/usr/share/doc/glances/macOS~/.config/glances/、~/Library/Application Support/glances/、/usr/local/etc/glances/、/usr/share/doc/glances/Windows%APPDATA%\glances\glances.conf所有平台venv_root_folder/share/doc/glances/优先级用户级配置覆盖系统级配置命令行选项覆盖两者。仓库提供了完整模板 conf/glances.conf 可供参考。配置语法与常用段落Glances 使用ini语法。全局段[global][global] # 刷新率默认最小 2 秒 # 可被 -t sec 选项覆盖 # 也可在每个插件段中单独覆盖 refresh2 # Glances 是否检查 PyPI 上的新版本 check_updatetrue # 历史记录大小最大数值个数 # 默认 1200 个值默认刷新率下约 1 小时 history_size1200 # 设置 Glances 显示日期的方式默认 %Y-%m-%d %H:%M:%S %Z #strftime_format%Y-%m-%d %H:%M:%S %Z # 定义加载额外插件的外部目录 #plugin_dir/home/user/dev/plugins界面相关段[outputs]含 WebUI、CORS、SSL 等[outputs] # 所有 UI 通用选项 separatorTrue # 限制 WebUI 显示的进程数 max_processes_display25 # WebUI 与 API 的 URL 前缀必须以 / 结尾 #url_prefix/glances/ # CORS允许跨域请求的来源列表默认 * #cors_origins* #cors_credentialsTrue #cors_methods* #cors_headers* # 绑定地址的 Host 校验DNS rebinding 防护 #webui_allowed_hostslocalhost,127.0.0.1,myserver.example.com # XML-RPC 的 Host 校验 #xmlrpc_allowed_hostslocalhost,127.0.0.1,myserver.example.com # SSL 证书配置 #ssl_keyfile./glances.local3-key.pem #ssl_certfile./glances.local3.pem每个插件、导出模块和 AMP应用监控进程都可以有自己的段。以 CPU 插件为例[cpu] disableFalse refresh3 user_careful50 user_warning70 user_critical90 iowait_careful50 iowait_warning70 iowait_critical90 system_careful50 system_warning70 system_critical90 steal_careful50 steal_warning70 steal_critical90以 InfluxDB 导出模块为例[influxdb] # 用于 --export influxdb 选项的配置 hostlocalhost port8086 userroot passwordroot dbglances prefixlocalhost #tagsfoo:bar,spam:eggs以 Nginx AMP 为例[amp_nginx] # 需要启用 Nginx 状态页 enabletrue regex\/usr\/sbin\/nginx refresh60 one_linefalse status_urlhttp://localhost/nginx_status动态配置值Glances 3.0 及以上支持用反引号包裹系统命令作为动态配置值。例如把 InfluxDB 的 prefix 设为当前主机名[influxdb] ... prefixhostname或者把操作系统名作为 tag 加入[influxdb] ... tagssystem:uname -a日志配置Glances 将内部消息写入日志文件-d选项可输出DEBUG消息用glances -V可显示日志文件的完整路径日志超过 1 MB 会自动轮转。如需自定义日志路径与格式可创建glances.jsonJSON 格式的 logging 配置定义RotatingFileHandler、控制台输出及各 logger 级别然后启动$ LOG_CFGpath/glances.json glances数据导出Gateway to Other ServicesGlances 可将统计导出到文件或外部服务数据库、消息队列等完整列表见 Gateway 文档。所有导出器共享[export]公共段[export] # 所有导出器的公共段 # 不导出的字段逗号分隔的正则列表 exclude_fields.*_critical,.*_careful,.*_warning,.*\.key$可用导出目标包括CSV、JSON、Cassandra、ClickHouse、CouchDB、DuckDB、Elasticsearch、Graphite、InfluxDB、Kafka、MQTT、MongoDB、NATS、OpenTSDB、Prometheus、RabbitMQ、Riemann、StatsD、TimescaleDB、ZeroMQ 等。导出器实现位于仓库 glances/exports每个目录对应一个导出模块。使用方式为命令行--export name各导出器在glances.conf中拥有独立配置段。编程接入Python API 与 RESTful APIPython APIGlances 4.4.0可以在自己的 Python 脚本中直接使用 Glances 插件数据见 docs/api/python.rst。核心类GlancesAPI位于 glances/api.py通过属性访问插件、字典方式访问字段 from glances import api gl api.GlancesAPI() gl.cpu {cpucore: 16, ctx_switches: 86881941, guest: 0.0, idle: 81.4, ...} gl.cpu.get(total) 5.5 gl.mem.get(used) 6218879216 gl.auto_unit(gl.mem.get(used)) 5.79G对于返回列表的插件如网络接口、进程可按名称访问 gl.network.keys() [wlp0s20f3] gl.network[wlp0s20f3] {alias: None, bytes_all: 1204, bytes_recv_rate_per_sec: 6969.0, ...}gl.plugins()返回可用插件列表每个插件暴露limits属性展示该插件的告警阈值例如 CPU 插件的阈值cpu_total_careful/warning/critical等。文档对每个插件都给出了字段与 limits 的详细说明涵盖 alert、ports、diskio、containers、processcount、gpu、percpu、system、network、cpu、amps、processlist、load、sensors、uptime、now、fs、wifi、ip 等。这些插件的实现位于 glances/pluginsGlancesAPI即是对这些插件实例的封装。RESTful/JSON APIAPI v4运行 Web 服务器模式-w时 RESTful API 自动启用也可用-w --disable-webui仅保留 API见 docs/api/restful.rst。默认根地址为http://localhost:61208/api/4绑定地址与端口可通过--bind/--port修改[outputs]段中的url_prefix可加 URL 前缀必须以/结尾例如url_prefix /glances/后 API 变为http://localhost:61208/glances/api/4。API 内置文档位于http://localhost:61208/docs#/OpenAPI 规范见 docs/api/openapi.json。常用端点示例# 检查 API 状态 $ curl -I http://localhost:61208/api/4/status # 获取插件列表 $ curl http://localhost:61208/api/4/pluginslist # 获取 CPU 统计 $ curl http://localhost:61208/api/4/cpu # 获取单个字段 $ curl http://localhost:61208/api/4/cpu/total # 获取网络接口中特定项 $ curl http://localhost:61208/api/4/network/interface_name/value/wlp0s20f3 # 清除全部告警事件 $ curl -H Content-Type: application/json -X POST http://localhost:61208/api/4/events/clear/allAPI 认证API 支持 HTTP Basic 与 JWT Bearer 两种认证用--password开启。生成新的登录凭据$ glances -w --username Enter new username: foo Enter new password: ******** Confirm new password: ********JWT 认证需要python-jose库。先向 token 端点请求令牌$ curl -X POST http://localhost:61208/api/4/token \ -H Content-Type: application/json \ -d {username: your_username, password: your_password}返回{access_token: ..., token_type: bearer, expires_in: 3600}随后携带 Bearer 令牌访问受保护端点。JWT 可在配置中定制[outputs] # JWT 密钥不设置则随机生成 jwt_secret_key your-secret-key-here # JWT 令牌过期时间分钟默认 60 jwt_expire_minutes 60API 安全建议默认情况下 Glances Web 服务器无认证并绑定所有网络接口0.0.0.0任何能到达服务器的客户端都可读取完整 REST API包括可能含凭据的进程命令行。官方文档给出的防护建议开启认证glances -w --password仅绑定回环glances -w --bind 127.0.0.1设置webui_allowed_hosts防 DNS rebinding行为与 XML-RPC 的xmlrpc_allowed_hosts一致不匹配返回 400使用反向代理nginx、Caddy、Apache加 TLS 与认证这是生产环境的推荐方案CORS 配置默认cors_origins*且cors_credentialsFalse如需携带凭据的跨域访问必须显式列出来源cors_origins*与cors_credentialsTrue的组合不被允许Glances 会自动禁用凭据并记录警告例如[outputs] cors_originshttps://my-dashboard.internal.example.com cors_credentialsTrue同一cors_origins键也作用于传统 XML-RPC 服务器glances -s。未启用认证或主机过滤时启动会显示风险警告。面向 AI 助手的 MCP 服务器Glances 通过 MCPModel Context Protocol服务器向 AI 助手Claude、Cursor、VS Code Copilot 等暴露实时监控数据让它们直接在对话中查询指标并生成结构化分析见 docs/api/mcp.rst。MCP 服务器在 Web 服务器启动时加--enable-mcp挂载使用SSEServer-Sent Events作为传输层。安装与启动$ pip install glances[mcp] $ glances -w --enable-mcpMCP 服务器地址为http://localhost:61208/mcpSSE 端点为http://localhost:61208/mcp/sse可用--mcp-path修改挂载路径。MCP 端点继承 Web 服务器的认证策略--password启动时每个 MCP 请求必须携带 Basic Auth 或 JWT Bearer 凭据。MCP 资源只读数据源URI说明glances://plugins所有活动插件名的 JSON 列表glances://stats所有插件当前统计的 JSON 对象glances://limits所有插件的告警阈值glances://stats/{plugin}单个插件的当前统计glances://stats/{plugin}/history单个插件的历史时间序列glances://limits/{plugin}单个插件的告警阈值MCP 提示内置分析模板system_health_summaryCPU/内存/交换/负载/文件系统/网络的总体健康报告、alert_analysis活动告警分析参数level取warning/critical/all、top_processes_reportCPU 密集型进程报告参数nb默认 10、storage_health磁盘与 I/O 分析。连接 Claude Desktop{ mcpServers: { glances: { url: http://localhost:61208/mcp/sse } } }密码保护时加headers字段携带Authorization: Basic base64(user:password)。也可用 Python 的mcp.client.sse.sse_client编程访问列出资源、读取glances://stats/cpu、运行健康摘要提示。MCP 服务器实现位于 glances/outputs/glances_mcp.py对应测试见 tests/test_mcp.py 与 tests/HOW_TO_TEST_MCP.md。Docker 部署Glances 提供 Docker 镜像无需在宿主机安装 Python 依赖见 docs/docker.rst$ docker pull nicolargo/glances:latest镜像基于 Alpine 与 Ubuntu常用标签latestAlpine 最新版最小依赖 FastAPI Docker、latest-fullAlpine 最新版全依赖、devdevelop 分支全依赖可能不稳定及对应的ubuntu-*系列。控制台模式运行$ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro \ --pid host --network host -it docker.io/nicolargo/glancesWeb 服务器模式通过GLANCES_OPT环境变量传参$ docker run -d --restartalways -p 61208-61209:61208-61209 \ -e GLANCES_OPT-w \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro \ --pid host docker.io/nicolargo/glances自定义配置可通过挂载glances.conf实现-v \pwd/glances.conf:/etc/glances/glances.conf。容器默认显示容器自身 OS 信息挂载/etc/os-release可显示宿主机 OS。Docker 化的密码保护、NVIDIA GPU 透传--gpus或 composedeploy 段以及完整 docker-compose 示例含 Traefik 反代均可参考 docs/docker.rst仓库还提供了 docker-compose/docker-compose.yml 与 docker-compose/docker-compose-tui.yml。安装与延伸阅读通过 PyPI 安装$ pip install glances安装所有可选特性Web 界面、导出模块等$ pip install glances[all]升级pip install --upgrade glances[all]Debian/Ubuntu 需先装python-devFedora/CentOS/RHEL 需python-devel。Glances 4.3.2 支持 shell 补全例如 Bash$ glances --print-completion bash | sudo tee -a /etc/bash_completion.d/glances $ source /etc/bash_completion.d/glances支持 bash、zsh、tcsh。安装细节见 docs/install.rst。本文所涉主题均有对应的官方文档章节可供深入安装docs/install.rst、快速上手docs/quickstart.rst、完整命令参考docs/cmds.rst、配置docs/config.rst、Fetch 模板docs/fetch.rst、插件详解docs/aoa/index.rst、数据导出docs/gw/index.rst、Python APIdocs/api/python.rst、RESTful APIdocs/api/restful.rst、MCPdocs/api/mcp.rst、Dockerdocs/docker.rst、FAQdocs/faq.rst与支持渠道docs/support.rst。总结Glances 的价值在于一套数据、多种出口同一套插件化采集引擎同时驱动 curses TUI、响应式 Web UI、XML-RPC/RESTful API、Python 内嵌 API、外部数据库导出以及 MCP 数据服务。无论是单机巡检、远程集群监控、写入时序数据库做告警分析还是把实时系统指标喂给 LLM 生成运维洞察Glances 都能以最少的配置成本接入现有工作流。【免费下载链接】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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价