私有部署 · 运行状态监控

看清每一台电脑与服务器的运行状态。
设备上的 Agent 采集,自己部署的中枢汇聚,
Web、桌面与手机随处查看。

测试版v3.0.158 · 2026-10-17向下滚动 · 剖开观测单元中枢端口 38472

§ 01 · 剖面

七层结构,
对应六类硬件。

观测单元 GL-01 是为观澜设计的一件虚构仪器:每一层对应观澜实际采集的一类硬件,最上层是观测窗。向下滚动,逐层剖开。

观测单元 GL-01 的爆炸视图:自上而下为观测窗、风扇、显卡、处理器、内存、磁盘、网络七层

00 / 06 · OBSERVE

观测窗

看到的,就是测到的。

  • 设备未提供的传感器显示为空
  • 首次尚无差分基线时标为不可用
  • 暂时失败的结果标注「N 秒前」

不以零冒充,也不阻塞设备上线。

01 / 06 · FAN

风扇

每一只风扇单独成列。

  • 风扇转速
  • 按风扇实例展示

主板或驱动未暴露转速时,对应读数留空。

02 / 06 · GPU

显卡

负载、编解码、频率、显存、核心温度。

  • 核心负载
  • 编码 / 解码负载
  • GPU 频率
  • 显存已用容量
  • 核心温度

测试版 v3.0.158 起,实时进程列表增加进程级 GPU 占用。

03 / 06 · CPU

处理器

使用率、频率与温度。

  • CPU 使用率
  • CPU 频率
  • CPU 温度(Package / Core)

04 / 06 · MEMORY

内存

物理内存与已提交内存。

  • 内存占用
  • 物理与已提交内存
  • 历史水位

05 / 06 · STORAGE

磁盘

驱动器、挂载点与 I/O。

  • 挂载点容量
  • 读写速率
  • 磁盘温度

单个缺失的磁盘容量不会把整台机器的容量清零。

06 / 06 · NETWORK

网络

物理网卡吞吐与流量日历。

  • 收发速率
  • 流量带宽
  • 历史流量日历

§ 02 · 数据流

从一台机器,
到每一块屏幕。

Agent 在每台设备上采集并上报,中枢负责汇聚与保存,客户端只和中枢对话。链路断开时,样本先留在设备上,恢复后补传。

设备 · Agent

workstation-01Windows队列 0
node-01Linux · 无桌面队列 0
build-02Linux队列 0
laptop-07Windows队列 0

中枢 · Docker Compose

HUB:38472
  • web控制台 · /api 代理
  • server上报 · 鉴权 · 实时
  • redis短窗口序列
  • mysql分钟 / 小时历史

终端

Web 控制台
Windows 桌面端
GNOME Linux 桌面端
Android

示意动画:断开后样本在设备本地排队,恢复后按顺序补传;无法恢复的样本会被隔离,不阻塞队列。

COLLECT

采集 · Agent

安装包注册机器级 guanlan-agent 服务(Windows 服务,Linux systemd 系统单元),开机即采集,无需登录。快速指标不等待慢探针;温度、风扇、GPU 等慢采集带实际采集时间。

AGGREGATE

汇聚 · 中枢

中枢以 Docker Compose 部署在你的服务器上:Redis 保存短窗口序列,MySQL 保存分钟与小时历史。所有客户端和 Agent 使用同一个公开入口(默认端口 38472)。

VIEW

查看 · 终端

Web、Windows、GNOME Linux 与 Android 共用一个访问密钥。设备详情可在实时、5 分钟、1 小时、6 小时、24 小时与 7 天之间切换。

§ 03 · 实时查看 测试版

需要看清此刻,
就直接问设备。

设备详情页展开「实时」后,按 1 / 2 / 5 秒间隔查询快速指标、进程与 Docker 容器。它走一条独立的设备双向连接,不把数据库里的「在线」当作可达依据,每秒的数据也不写入历史库。

设备/workstation-01Windows

实时 · 刚刚采集于 --:--:--

最近两分钟的设备实时数据,直接来自设备,不写入历史。

CPU 使用率整机平均—
内存占用— / 32.0 GB—
磁盘读
—
磁盘写
—
网络 ↓
—
网络 ↑
—
示意数据 · 官网重绘的界面示意

§ 04 · 终端

一个中枢,
四种终端。

Browser

Web 控制台

  • 使用 .env 中的 ACCESS_KEY 登录
  • 总览、设备目录、接入中枢、设备详情与设置
  • 窄屏底栏保留四个目的地

Windows

Windows 桌面端

  • 在「配置」页填写中枢地址、访问密钥和设备名称
  • 常驻系统托盘:左键主界面,右键查看状态或退出
  • 关闭窗口或注销登录不会中断采集

Linux

GNOME Linux 桌面端

  • /usr/bin/guanlan,在「连接」页填写中枢
  • 非提权用户只能查看状态
  • 修改机器级配置需要管理员权限

Android

Android 客户端

  • 填写中枢地址和查看密钥
  • 支持 https:// 与 http://
  • 未配置 TLS 时仅建议在可信局域网使用 HTTP

同一个公开入口

所有客户端和 Agent 都使用同一个中枢地址。默认建议 HTTPS;不要把 Docker 容器内部的 4000 端口填入客户端。

局域网 HTTP
http://服务器IP:38472
局域网
https://服务器域名:38472
公网
https://你的域名
受控 HTTP 内网穿透
http://公网IP:转发端口

§ 05 · 无人值守

没有桌面,
也能装好、
配好、报上来。

& "DeviceStateConsole-Windows-Setup-vX.Y.Z.exe" /S `
    /HUB="https://hub.example.com" /KEY="<ACCESS_KEY>" `
    /DEVICE=node-01 /HOSTNAME="节点01" /VERIFY=120

命令取自产品 README;把 X.Y.Z 换成 Releases 中的版本号,hub.example.com 换成你的中枢地址。

/S
静默安装;同一份桌面安装包在无桌面会话的机器上也能完成安装、配置、开机自启与上报。
/VERIFY=<秒>
安装结束前等待首次上报确认;超时返回退出码 3,便于 Intune / SCCM / Ansible 判定。
机器级服务
Windows 注册 guanlan-agent 服务(无法创建时回退为 AtStartup + SYSTEM 计划任务);Linux 启用 WantedBy=multi-user.target 的系统单元。
--key-stdin
访问密钥只通过标准输入或密钥文件传入,不出现在进程参数里;status / export / 诊断输出全部脱敏。

随包发布的 guanlan-agent 命令

guanlan-agent status [--json]
服务 / 配置 / 上报状态;退出码 0/3/4/5 可用于编排
guanlan-agent doctor [--json]
服务 + 配置 + 中枢连通性检查
guanlan-agent config get|set|validate|export|import
读写机器级配置
guanlan-agent service install|uninstall|start|stop|status
管理机器级服务
guanlan-agent collector start|stop|restart
控制采集器
guanlan-agent probes status|detect
硬件探针状态与检测
guanlan-agent wait-for-upload --timeout N
等待首次上报确认
guanlan-agent onboarding-url
输出接入地址

卸载默认保留机器级配置;只有 --purge(deb)或 /REMOVECONFIG(Windows)才删除。

§ 06 · 中枢

中枢,
部署在你自己的
服务器上。

Docker Compose 默认只拉取 GitHub Container Registry 中已发布的镜像,不从源码构建。生产环境使用固定版本或不可变 digest,并通过 TLS 反向代理访问控制台。

  1. 01

    准备配置

    cp .env.example .env

    至少修改 SESSION_SECRET、ACCESS_KEY、MYSQL_ROOT_PASSWORD、MYSQL_PASSWORD、REDIS_PASSWORD,并为 REDIS_URL 配置相同的认证密码。

  2. 02

    拉取并启动

    DSC_VERSION=<版本号> docker compose pull
    DSC_VERSION=<版本号> docker compose up -d
  3. 03

    接入设备

    在各客户端与 Agent 中填写同一个入口,例如 https://服务器域名:38472。

完整部署说明
对外:38472
web控制台与 /api 代理38472 → 3000
server中枢服务:上报、鉴权、实时通道4000(仅容器内)
redis短窗口实时序列内部
mysql分钟 / 小时历史内部

docker-compose.yml · 4 services

§ 07 · 边界

可信,
先从不越界开始。

01 · KEY

密钥不进命令行

访问密钥只通过 --key-stdin 或 --key-file 传入,不会出现在进程参数里;status、export 与诊断输出全部脱敏。

02 · TLS

默认要求 HTTPS

SESSION_COOKIE_SECURE 与 AGENT_REQUIRE_HTTPS 默认开启。只有在明确受信的网络里,才由部署参数改用 HTTP。

03 · IDENTITY

设备身份不可冒用

实时通道为每台设备登记独立密钥,中枢只保存哈希;另一个安装实例不能覆盖同名设备。

04 · RATE

鉴权失败限流

统一凭证层对所有鉴权失败做频率限制与防爆破,覆盖控制台路由与 Agent 上报入口。

05 · DOCKER

只读的容器视图

只读取本机 Engine API;DOCKER_HOST 只接受本地 unix:// 或 npipe://,不跟随重定向,也不提供启停、日志或 exec。

06 · TRUTH

空就是空

设备、硬件或驱动未提供的传感器显示为空;首次尚无差分基线时标为不可用。观澜不以零冒充测量值。

§ 08 · 开始

开始观测。

测试版通道 · v3.0.158 · 2026-10-17

全部安装包与校验文件·先部署中枢·版本说明 ↗

当前发布均为 GitHub prerelease(测试版通道),产品说明不建议直接用于生产部署。