用途:通过 colors-compute 在单台 VM 上部署并管理单节点 SigNoz 可观测性栈,SigNoz 位于 Caddy 之后,附带一条 Cloudflare 代理 A 记录,OpenTofu 状态存放于 Cloudflare R2。
安装:
npx skills add getcolors/signoz cp .agents/skills/package-signoz-green/green ./green chmod +x green
注意根目录 green 是 payload 的副本而非符号链接,npx skills update -p 会改写 payload 而保留副本,因此每次更新后需重新复制,否则项目仍运行旧版本。
常用命令: ./green build # 渲染 .colors/<profile>/,不调用 provider、不需凭据 ./green create --dry-run # 走完流程但不产生副作用 ./green create # 真正收敛部署 ./green delete # 受保护的破坏性操作
build 与 --dry-run 适合在干净检出和空环境下检查 colors.yml 的修改;退出码 2 表示校验或用法失败,会一次性列出全部问题。启动器会从工作目录向上查找 colors.yml。
所有权与依赖:固定的 colors-compute 库负责 provider 选择、远程 S3/R2 状态、部署协调、机器密钥、网络策略与单节点;本包提供单例拓扑和 SSH/HTTP 入口,并使用返回的地址、登录用户与 SSH 身份执行应用步骤。新 provider 支持应加入库中,使用方更新其版本固定。应用需要受支持的 Ubuntu 镜像和足够内存以运行 SigNoz、ClickHouse、Keeper、Postgres 与 collector。
网络与来源:使用 signoz-ssh-sources 和 signoz-http-sources 设置中立的 CIDR 白名单。外部账户密钥引用可用 ssh-private-key-path 或 operator/agent SSH 配置;外部私钥不会被生成或删除。本地 SSH 块只为受管部署密钥写入 IdentityFile。
状态保护:已存在的 <profile>/signoz-infrastructure.tfstate 会在计算变更前被拒绝。不要删除它以绕过检查,应显式迁移所有权或先通过原始版本销毁旧部署。不可读状态和 provider 不匹配会以失败关闭处理。默认适配器为 vultr。
端口与接入:SigNoz 需要 TCP 22、80、443;4317 和 4318 保持关闭。接入经 Caddy 及其 bearer-token 网关。社区版 SigNoz 没有 ingestion keys,该功能属于 SigNoz Cloud;Caddy 仅在有服务器生成的 bearer token 时放行 /v1/{logs,traces,metrics},主机其余部分为 UI。可用 ssh <profile> cat /etc/signoz/ingestion.env 读取 token,并以 Authorization: Bearer <token> 发送。仅发布 OTLP/HTTP,4317 上的 gRPC 保持在 loopback。
规则:只编辑 colors.yml,键用 kebab-case,仅放非机密值;凭据放在被 gitignore 的 .envrc.private 中的 COLORS_PAR_* 环境变量,绝不写入 colors.yml、生成输出或文档;绝不 export COLORS_PAR_PROFILE,包在其被设置时拒绝运行;.colors/ 是生成输出,不得编辑、当作源读取或提交;delete 受 compute-prevent-destroy: true 保护,仅可用 COLORS_PAR_COMPUTE_PREVENT_DESTROY=false 单次解除;未经明确授权不得对线上部署执行真实 create 或 delete。
参考:references/configuration.md 记录所有 colors.yml 键和凭据。