STACIO WIKI · 运维指南
Stacio 远程运维指南
1. 运维原则
Stacio 提供终端、设备看板、文件、隧道、诊断和 Agent 能力,但不会替代组织权限、监控平台、备份系统或变更审批。所有远程任务建议遵循以下顺序:
确认目标 -> 只读基线 -> 判断影响 -> 准备备份和回滚
-> 最小变更 -> 专项验证 -> 记录结果 -> 必要时恢复开始前必须确认:
- 当前选中的终端、会话名称、IP 或域名、端口和环境;
- 是单主机还是多主机任务;
- 当前账号权限及是否真的需要提权;
- 任务是只读诊断还是会改变远端状态;
- 生产环境是否已有变更窗口、备份和回滚负责人。
1.1 用 IP、域名和端口确认目标
远程运维不能只凭会话名称判断目标。开始操作前,应把 Stacio 中配置的连接端点和远端 Shell 返回的身份信息放在一起核对:
| Stacio 连接端点 | 典型含义 | 还要核对 |
|---|---|---|
root@192.168.1.20:22 |
直接连接局域网 IPv4 的默认 SSH 端口 | hostname、账号、环境和资产记录。 |
deploy@192.168.1.20:2222 |
同一 IP 上的自定义端口或 NAT 映射 | 端口映射实际落到哪台主机。 |
admin@server.example.com:22 |
通过 DNS 名称连接 | 当前解析 IP、负载均衡或地址切换策略。 |
保存会话的主机与端口在界面中分开填写;上表只是把二者合并为便于核对的端点表示。hostname相同不能证明连接入口相同,IP 相同也不能忽略端口差异。使用域名时,故障记录应保留“配置域名 + 当时解析 IP + 端口”;使用 IP 时,也要确认它没有因 DHCP、云资源回收或 NAT 规则变化而指向其他资产。
2. 建立可靠的运维工作区
2.1 会话标记
在新建/编辑会话 > 自动化中设置:
环境:开发、预发或生产;AI 执行:跟随全局、禁止执行、仅命令卡片、只读自动或每条确认;- 标签:系统、业务、地域、角色和责任团队。
生产会话应明确标记为生产。该标记会参与 MultiExec 和 AI/Agent 的确认策略;仅在名称里写 prod 不等同于生产环境策略。
2.2 分屏与上下文
分屏适合同时查看:
- 应用日志与服务状态;
- 主机资源与业务健康接口;
- 发布前版本与发布后验证;
- 主节点与从节点状态。
点击 pane 后再打开 Files、看板或 AI,确保右侧能力绑定到正确终端。分屏不会自动同步输入;同步输入需要显式进入 MultiExec。
2.3 终端可读性
建议在设置 > 终端中按任务调整:
- 开启时间戳,便于关联故障时间线;
- 长日志任务增加滚动缓冲行数;
- 开启长命令完成通知;
- 开启多行粘贴确认;
- 高输出任务可使用“暂停输出”,恢复后检查是否出现“已跳过字节”提示;
- 使用
Command+F定位错误、请求 ID、进程名或时间。
3. 设备看板
3.1 打开方式
- 选中一个已连接的 SSH 标签。
- 选择
视图 > 显示/隐藏设备看板或工具栏设备看板。 - 等待至少两个采样周期;CPU 和速率类指标通常需要前后两次采样才能计算。
看板是受 License 控制的高级能力。
3.2 指标范围
| 模块 | 可见信息 | 解释重点 |
|---|---|---|
| 系统 | 主机名、操作系统、架构等 | 先确认是否连接到预期资产。 |
| CPU | 总使用率、核心数、CPU 型号、分核心使用率 | 瞬时高值不等于持续压力,应结合多个采样和进程。 |
| 内存 | 已用、总量和使用率 | 同时关注 available、swap 和 OOM 记录。 |
| 网络 | 各接口收发速率 | 排除 loopback、容器和虚拟接口后再判断业务流量。 |
| 磁盘 | 挂载点容量和使用率 | 同时检查 inode;空间正常不代表 inode 正常。 |
| 磁盘读写 | 读取、写入速率 | 速率是采样结果,需要结合延迟、队列和业务负载。 |
3.3 兼容与刷新设置
在设置 > 看板中可配置:
- 刷新间隔
1-30秒; - 采集失败时是否保留上次成功数据;
- 是否显示网络和磁盘模块;
- 磁盘显示数量和曲线采样点;
- 是否自动隐藏虚拟/容器网卡;
- CPU、内存和磁盘告警阈值及连续超限次数。
跨地域、低性能或 BusyBox 主机应适当增大刷新间隔,避免频繁探针影响交互。告警只有连续达到配置条件后才发送;macOS 通知只是提示,不替代集中监控。
3.4 Linux 探针边界
当前看板优先使用 /proc/stat、/proc/meminfo、/proc/net/dev、/proc/mounts 和兼容的 df 输出,面向 CentOS/RHEL、Rocky、Alma、Fedora、Ubuntu、Debian、Alpine/BusyBox 和 openSUSE 等 Linux 环境。
以下场景可能只显示部分指标:
- 非 Linux 目标;
- 容器内
/proc或挂载信息受限; - 远端账号无读取或执行权限;
- 极简系统缺少兼容
df; - SSH 连接中断或 Shell 被前台程序占用。
4. 主机资源巡检 Runbook
下面命令以常见 Linux 为例,均为只读。执行前确认命令存在,并避免在大量主机上同时运行高开销采样。
4.1 身份与系统
date -Is
hostname
whoami
uname -a
uptime记录时间、主机名、用户、内核和负载,先证明当前证据属于哪台主机。
4.2 CPU 与进程
uptime
top -b -n 1 | head -40
ps -eo pid,ppid,user,stat,%cpu,%mem,etime,comm,args --sort=-%cpu | head -25判断时区分:
- load average 与 CPU 核心数;
- 瞬时
top与持续采样; - 用户态、系统态、I/O wait 和 steal;
- 单个高 CPU 进程与全机压力;
- 采样命令自身的短时占用。
4.3 内存与 Swap
free -h
ps -eo pid,user,rss,vsz,%mem,etime,comm,args --sort=-rss | head -25优先看 available,而不是只看 free。Swap 已使用不一定是当前压力;应结合换页活动、OOM 日志和业务延迟。
4.4 磁盘与 inode
df -hT
df -ih需要定位大目录时,先限定到明确文件系统和目录,避免从 / 无边界扫描:
du -xhd1 /var 2>/dev/null | sort -h不要在未确认挂载点、业务高峰和目录规模时直接运行全盘 du。
4.5 端口与网络
ip -brief address 2>/dev/null || ifconfig
ip route 2>/dev/null || netstat -rn
ss -lntup 2>/dev/null || netstat -lnt应用面板中的诊断 > 端口检查可用于快速验证主机和端口。检查 192.168.1.20:2222 时,主机填写 192.168.1.20、端口填写 2222;检查域名时则填写 server.example.com 和对应端口。“端口可达”只证明 TCP 层,不代表协议认证或业务健康。
5. 服务不可用 Runbook
5.1 先收集只读证据
systemctl status <service> --no-pager
journalctl -u <service> --since '30 minutes ago' --no-pager | tail -200
ss -lntp
curl -fsS -D- --max-time 10 http://127.0.0.1:<port>/<health-path>替换占位符前确认服务管理器、端口和健康路径。非 systemd 系统应使用对应服务工具。
5.2 建立故障链路
按以下关系逐层验证:
IP 或域名解析 -> 路由/NAT/负载均衡 -> 监听端口 -> 进程/容器
-> 应用健康 -> 数据库/缓存 -> 上下游依赖不要因为进程“running”就宣称业务恢复,也不要因为外部请求失败就直接重启服务。
5.3 变更前门槛
需要改配置、重启、回滚或部署时,先确认:
- 故障点与拟变更之间存在证据关系;
- 已保存当前配置、版本和运行状态;
- 有本次新建且可验证的备份;
- 有明确回滚命令和负责人;
- 影响范围、连接中断和数据风险已知;
- 生产变更已取得所需批准。
6. 文件与传输故障 Runbook
6.1 目录打不开
- 确认 Files 绑定到正确的 SSH/SFTP/FTP 会话。
- 在终端执行
pwd和只读目录检查,确认账号权限。 - 检查路径是否已被删除、重命名或包含异常字符。
- 刷新目录;仍失败时查看
视图 > 诊断。
6.2 传输失败
| 状态/错误 | 检查 |
|---|---|
| 认证失败 | 会话用户、凭据引用、私钥和主机密钥。 |
| 连接超时 | 网络、VPN、跳板、服务端口和连接状态。 |
| 权限不足 | 远端目录权限、文件所有者和本地目标目录权限。 |
| 磁盘空间不足 | 远端及本地 df -h、inode 和配额。 |
| 文件大小不一致 | 网络中断、服务端变化、续传支持和冲突策略。 |
| 远端文件已变化 | Remote Edit 的缓存版本落后;重新打开并合并,不要强制覆盖。 |
使用传输队列查看任务 ID、方向、来源、目标、进度、诊断和日志。暂停/恢复或续传是否可用取决于协议和服务端能力。
7. 隧道故障 Runbook
- 确认 License 和 SSH/SFTP/SCP 端点可用。
- Local 或 Dynamic 隧道先检查本地端口是否已占用。
- 分别验证:Mac 到 SSH 端点、SSH 端点到目标、客户端到本地监听。
- Remote 隧道还要检查服务端是否允许 remote forwarding 和外部绑定。
- 查看隧道行的状态、详情、接入数、活跃连接和上下行字节。
- 自动重连持续失败时,手动停止,修复网络或凭据后再启动。
完整字段和示例见隧道指南。
8. 诊断面板
选择视图 > 诊断可查看或执行:
- 当前运行时诊断与严重级别;
- 主机/端口连通性检查;
- 会话导入报告;
- MultiExec 和 AI/Agent 审计记录;
- 应用日志搜索、级别过滤、刷新、导出和清理;
- 诊断包导出。
诊断包会执行脱敏,并受设置 > 安全中的审计条数、日志行数和“包含应用日志”设置限制。导出前仍应人工预览,尤其是主机名、业务路径、请求内容和日志片段。
9. AI 与本地 Agent 运维
Stacio 提供两类工作方式:
| 方式 | 适用场景 | 执行边界 |
|---|---|---|
| 排查助手 | 逐步诊断、命令卡、结构化结论 | 由 Stacio 编排并应用风险、审批、备份和验证门禁。 |
| 本地 Agent | Codex、Claude、OpenCode、Qwen Code 等复杂任务 | 通过 Agent Bridge 操作选中的终端;第三方 Agent 的规划仍受其自身实现和指令遵循影响。 |
使用前:
- 检查当前目标终端和远程目录。
- 优先要求只读检查和明确证据。
- 生产环境使用“每条确认”或至少“只读自动”。
- 变更任务要求报告备份位置、验证结果和回滚方法。
- 任何目标失败都要单独报告,不能把部分成功写成全部成功。
Agent 的完整边界见Agent 能力与安全保障。
10. 变更、验证与回滚
10.1 通用变更清单
- 记录变更前版本、配置摘要、服务状态和健康结果。
- 创建带时间戳、不会覆盖历史的备份。
- 验证备份存在、可读且大小合理;数据库优先使用原生备份工具。
- 只修改与故障或需求直接相关的最小范围。
- 先做配置语法或 dry-run 检查。
- 应用变更后验证进程、端口、日志、健康接口和业务请求。
- 对比变更前后关键值。
- 验证失败立即停止扩大变更,并按预案恢复。
- 回滚后再次运行只读验证。
10.2 完成标准
以下任一项缺失时,不应宣布“已修复”:
- 当前状态证据;
- 与目标一致的专项验证;
- 多目标任务的逐目标结果;
- 变更任务的备份与回滚信息;
- 残余风险和未验证项说明。
11. 事件响应清单
11.1 发现异常时
- 确认目标、时间和影响范围。
- 暂停自动化、MultiExec 或继续变更。
- 保存当前终端、日志、指标和审计证据。
- 判断是否需要隔离账号、主机、隧道或凭据。
- 通知对应服务、网络、安全或数据库负责人。
- 在批准后执行遏制和恢复。
- 验证业务恢复并持续观察。
11.2 升级材料
提交给下一处理人时至少包含:
- Stacio 和 macOS 版本;
- 会话名称、协议和环境,以及脱敏后的 IP/域名与端口;使用域名时记录故障时的解析结果;
- 故障开始时间、时区和当前影响;
- 已执行的只读检查及关键输出;
- 已做变更、备份位置、验证和回滚结果;
- 诊断包或日志的时间范围;
- 仍未验证的假设和下一步建议。
不要附带密码、Token、私钥、私钥口令、完整环境变量或不必要的客户数据。
12. 运维告警参考
| 告警 | 建议严重度 | 第一响应 |
|---|---|---|
| 主机不可达 | 高,若影响生产流量 | 核对配置 IP/域名、独立端口字段、VPN、DNS、路由、NAT 和 SSH 监听。 |
| CPU 持续高 | 中到高 | 多次采样,按进程和等待类型定位,不直接重启。 |
| 可用内存持续低/OOM | 高 | 检查 available、swap、OOM 日志和 RSS 排名。 |
| 磁盘或 inode 接近满 | 高 | 确认挂载点、增长源、保留策略和扩容/清理授权。 |
| 文件传输持续失败 | 中 | 区分认证、网络、权限、容量和远端变化。 |
| SSH 主机密钥变化 | 安全高风险 | 立即停止连接并通过独立渠道核验。 |
| 隧道反复重连 | 中到高 | 停止自动重试,检查 SSH 端点、凭据和两段链路。 |
