Olares/docs/zh/developer/install/cli/status.md
Peng Peng 61d793e4c6
cli, daemon: add olares-cli status backed by olaresd /system/status (#2917)
* cli, daemon: add `olares-cli status` backed by olaresd /system/status

Adds a new top-level `olares-cli status` command that calls the local
olaresd daemon's `/system/status` HTTP endpoint and prints either a
grouped, annotated human-readable report or raw JSON.

To avoid duplicating the response schema, the daemon's `state` struct
and related enums are extracted into a new shared package
`cli/pkg/daemon/state`. The daemon now type-aliases those types so all
existing daemon call sites keep compiling unchanged.

Made-with: Cursor

* cli: drop unused state.APIResponse envelope type

The HTTP client in cli/pkg/daemon/api/client.go intentionally uses an
inline anonymous envelope with json.RawMessage for the data field so
that --json mode can passthrough the bytes verbatim, so the public
APIResponse{Data State} type defined here had zero references. Remove
it; if a strongly-typed consumer ever shows up, re-add then.

Addresses Cursor Bugbot feedback on PR #2917.

Made-with: Cursor
2026-04-21 00:29:50 +08:00

12 KiB
Raw Blame History

status

命令说明

status 命令通过调用本机 olaresd 守护进程的 /system/status HTTP 接口,输出当前 Olares 系统的状态。

该接口绑定在 127.0.0.1:18088,仅接受本地回环流量,因此 status 命令必须与 olaresd 运行在同一台机器(通常是主节点)上。

olares-cli status [选项]

默认输出按以下分组展示,便于人工阅读:

  • Olares:安装生命周期、版本、用户名、关键时间戳。
  • System:主机的硬件和操作系统信息。
  • Network:有线/Wi-Fi 连接状态、内/外网 IP 地址。
  • Install / Uninstall:正在进行的安装或卸载进度。
  • Upgrade:正在进行的升级进度(包括下载阶段和安装阶段)。
  • Logs collection:最近一次日志收集任务的状态。
  • Pressures:节点上当前激活的 kubelet 节点压力条件(若有)。
  • OtherFRP、容器模式等其他信息。

加上 --json 可以输出 olaresd 返回的原始 JSON便于脚本化处理或与 jq 等工具配合使用。

选项

选项 用途 是否必需 默认值
--endpoint 本机 olaresd 守护进程的基础 URL。仅当 olaresd 监听在非默认地址时才需要修改。 http://127.0.0.1:18088
--json 直接输出 olaresd 返回的原始 JSON即响应中的 data 字段),适合配合 jq 等工具使用。 false
--timeout 等待 olaresd 响应的最长时间。 5s
--help 显示命令帮助。

使用示例

# 默认输出:分组的人工可读报表
olares-cli status

# 原始 JSON 输出,原样转发自 olaresd
olares-cli status --json | jq

# 指定守护进程地址并延长超时时间
olares-cli status --endpoint http://127.0.0.1:18088 --timeout 10s

字段参考

下表列出 olaresd 返回的字段(即 JSON 响应中 data 对象的字段),以及它们在分组输出中显示的标签。

Olares

字段 JSON Key 含义
State terminusState 系统的高层状态,详见 状态值列表
Olaresd state terminusdState olaresd 守护进程自身的生命周期:启动初始化时为 initialize,初始化完成后为 running
Name terminusName 管理员的 Olares ID例如 alice@olares.cn
Version terminusVersion 已安装的 Olares 版本(语义化版本号)。
Olaresd version olaresdVersion 当前运行的 olaresd 二进制版本。可用于排查升级后的版本漂移。
Installed at installedTime Olares 安装完成时间Unix 时间戳,单位秒)。
Initialized at initializedTime 管理员完成初始激活的时间Unix 时间戳,单位秒)。

System

字段 JSON Key 含义
Device device_name 用户友好的设备/机型名称。
Hostname host_name 内核报告的主机名。
OS os_type / os_arch / os_info 操作系统类型、CPU 架构、发行版描述。
OS version os_version 操作系统版本号,例如 22.04
CPU cpu_info CPU 型号。
Memory memory 物理内存总量,格式为 <N> G
Disk disk 数据分区的文件系统总容量,格式为 <N> G
GPU gpu_info 检测到的 GPU 型号(若有)。

Network

字段 JSON Key 含义
Wired wiredConnected 检测到有线连接时为 yes
Wi-Fi wifiConnected 默认路由走 Wi-Fi 时为 yes
Wi-Fi SSID wifiSSID 已连接 Wi-Fi 的 SSID。
Host IP hostIp Olares 用于互联的内网 IPv4 地址。
External IP externalIp 通过外部探测获取的公网 IPv4 地址(每分钟最多刷新一次)。

Install / Uninstall

字段 JSON Key 含义
Installing installingState 进行中的安装任务的生命周期:in-progresscompletedfailed
installingProgress 当前安装步骤的描述(在分组输出中以括号形式跟随显示)。
Uninstalling uninstallingState 进行中的卸载任务的生命周期。
uninstallingProgress 当前卸载步骤的描述。

Upgrade

字段 JSON Key 含义
Target upgradingTarget 进行中升级的目标版本。
State upgradingState 升级安装阶段的生命周期。
upgradingProgress 升级安装阶段的进度描述(括号显示)。
Step upgradingStep 当前升级步骤的名称。
Last error upgradingError 升级安装阶段最近一次报错信息。
Download state upgradingDownloadState 升级下载阶段的生命周期。
upgradingDownloadProgress 升级下载阶段的进度描述(括号显示)。
Download step upgradingDownloadStep 当前下载步骤的名称。
Download error upgradingDownloadError 升级下载阶段最近一次报错信息。
Retry count upgradingRetryNum 升级被自动重试的次数(仅当大于 0 时显示)。
Next retry at upgradingNextRetryAt 下一次重试的预定时间(仅当存在时显示)。

Logs collection

字段 JSON Key 含义
State collectingLogsState 通过 olaresd 触发的最近一次日志收集任务的生命周期。
collectingLogsError 最近一次日志收集任务的错误信息(括号显示)。

Pressures

pressures 数组列出当前节点上为真的 kubelet 节点压力条件。当节点健康时,分组输出中会显示 (none)

字段 JSON Key 含义
Type type Kubernetes 节点条件类型,例如 MemoryPressureDiskPressure
Message message kubelet 给出的可读说明。

Other

字段 JSON Key 含义
FRP enabled frpEnable FRP 反向通道是否启用(来自环境变量 FRP_ENABLE)。
FRP server defaultFrpServer FRP 服务器地址(来自环境变量 FRP_SERVER)。
Container mode containerMode olaresd 运行在容器内时设置(来自环境变量 CONTAINER_MODE)。

状态值列表

terminusState 字段可能取以下值。CLI 也使用同一份枚举生成描述,因此下表始终与 CLI 输出保持一致。

取值 含义
checking olaresd 还未完成首次状态探测。
network-not-ready 未检测到可用的内网 IPv4 地址。
not-installed 当前节点未安装 Olares。
installing Olares 正在安装中。
install-failed 最近一次安装失败。
uninitialized Olares 已安装,但管理员账户尚未激活。
initializing 管理员账户正在激活中。
initialize-failed 管理员账户激活失败。
terminus-running Olares 运行正常。
restarting 节点刚刚重启,状态会在短时间内稳定。
invalid-ip-address 节点 IP 已变更,需要执行 change-ip 恢复。
ip-changing change-ip 操作正在进行。
ip-change-failed 最近一次 change-ip 操作失败。
system-error 关键 Pod 未正常运行。
self-repairing olaresd 正在尝试自动修复。
adding-node 正在加入 worker 节点。
removing-node 正在移除 worker 节点。
uninstalling Olares 正在卸载中。
upgrading 升级正在执行中。
disk-modifing 存储布局正在调整中。
shutdown 系统正在关机。