Skip to content

生成安全诊断信息

生成不泄露密钥的安全支持诊断信息。

Updated View as Markdown

目标

生成一份可以安全分享给团队成员或支持人员的诊断摘要,而不是手动拼凑日志、环境变量和服务器命令输出——手动拼凑很容易不小心带上密钥。

适用场景

  • 部署失败但错误提示不够明确。
  • 生成访问地址、自定义域名或 TLS 状态互相矛盾。
  • 健康检查和运行时日志看起来互相矛盾。
  • 需要把问题交给团队成员或 Appaloft 支持人员。

前置条件

  • 已经知道要排查的 Resource(以及可选的具体 Deployment)。

输入与默认值

参数说明默认值
--deployment附带某次具体部署的信息不附带
--deployment-timeline附带该部署的事件时间线关闭
--runtime-logs附带运行时日志关闭
--tail日志尾部行数全部
--summary只输出分区状态和稳定错误码,不输出完整 JSON关闭

CLI 操作步骤

# 生成完整的安全诊断摘要
appaloft resource diagnose res_web \
  --deployment dep_123 \
  --deployment-timeline \
  --runtime-logs \
  --tail 50

# 只看分区状态和错误码摘要,不要完整 JSON
appaloft resource diagnose res_web --summary

如果访问 Appaloft 生成的 URL 或自定义域名时看到一个带 request id 的错误页,可以用这个 id 直接查询短期保留的安全证据:

appaloft resource access-failure req_abc123 --resource res_web --host web.example.com --path /

当部署因为磁盘空间、Docker 镜像存储或构建缓存压力失败时,先运行只读容量诊断(不会执行任何清理):

appaloft server capacity inspect srv_primary

预期输出与状态

诊断摘要包含:Project/Resource/Environment/Deployment 等稳定 id、最近失败阶段和错误码、Source/Runtime/Health/Network 的安全摘要、服务器和代理就绪摘要、访问地址/域名/证书状态、已屏蔽的密钥键名(只显示是否存在,不显示值)。

安全诊断摘要示例json
{
  "resourceId": "res_web",
  "deploymentId": "dep_123",
  "failedPhase": "verify",
  "errorCode": "health_check_failed",
  "accessFailure": {
    "requestId": "req_abc123",
    "code": "resource_access_upstream_timeout",
    "affected": { "hostname": "web.example.com", "path": "/" },
    "nextAction": "check-health"
  },
  "secrets": [{ "key": "DATABASE_URL", "value": "***" }],
  "nextAction": "Check health path and runtime logs."
}

验证

分享前检查摘要中是否只包含 id、状态、错误码和安全上下文——不应该出现任何明文密钥、私钥或完整环境变量值。

回滚 / 恢复

绝对不要分享以下内容作为诊断证据:SSH 私钥、API token 或 Session token、数据库连接串、.env 文件全文、证书私钥、完整服务器 shell 历史、截图中的敏感信息、原始 Provider 响应。

如果诊断摘要提示磁盘或构建缓存压力,先只读检查容量(server capacity inspect),确认候选项后再决定是否运行 dry-run 清理:

# 只读检查服务器容量与运行时占用
appaloft server capacity inspect srv_primary
appaloft server runtime usage inspect srv_primary

# 预览清理候选项(不会真正删除任何内容)
appaloft server capacity prune srv_primary --before 2026-01-01T00:00:00.000Z

# 确认候选项符合预期后,才显式执行破坏性清理
appaloft server capacity prune srv_primary --before 2026-01-01T00:00:00.000Z --dry-run false

容量清理只会保留在 Appaloft 状态目录、运行中的运行时、回滚候选、部署快照、审计/事件、日志和业务状态之外的候选项进行操作,不会执行大范围的 Docker 系统清理。

运行时监控采样与阈值

Appaloft 会在控制面内保留有界的运行时监控采样与汇总,用于 Web Monitor 与诊断闭环。阈值与告警门槛通过运行时配置控制;超出保留窗口的原始样本会被清理。

外部可观测性交接

控制面内的监控不替代完整的外部可观测性栈。需要长期指标、告警路由或跨服务关联时,应把 Prometheus / PromQL、APM tracing / trace,以及自定义指标(custom metrics)接到你自己的观测系统;Appaloft 只保留排障所需的有界样本。

故障排查链接

相关参考页面

Navigation

Type to search…

↑↓ navigate↵ selectEsc close