跳转到主要内容
MoleSignal 以一个二进制文件和一个容器镜像交付。配置决定进程运行哪些角色:单个进程可以运行全部角色,也可以把角色拆分到多个进程。每个部署都需要两个外部服务:PostgreSQL 与对象存储。

前置条件

内存与磁盘用量取决于接入量、活跃数据流数量以及配置中的缓存设置。请根据实际用量规划容量:首页 显示原始与压缩后的接入量,进程也在 /metrics 暴露 Prometheus 指标。参见生产检查清单。

容器镜像

镜像发布为 ghcr.io/molesignal/molesignal。每个版本发布一个版本标签(例如 26.1.0.0)和一个通道标签(例如 alpha)。生产环境请固定使用版本标签。
所有角色使用同一个镜像。运行时变量 RELEASE_CHANNEL(alpha、beta、rc 或 stable)标记部署成熟度,不会改变二进制本身。网页界面内嵌在二进制中,由 HTTP 端口提供。

部署方式

仓库提供 deploy/docker/docker-compose.yaml,包含两个 profile。两者都会启动 PostgreSQL 17 与 RustFS,并运行 ghcr.io/molesignal/molesignal 的 MoleSignal 镜像。
multirole profile 每个角色部署一个容器。router 在 5080 发布网页界面与 HTTP API,在 4317 发布 OTLP gRPC 接收端,参见分角色部署。standalone 服务发布 5080 与 5082,不发布 OTLP gRPC 端口 4317。要从宿主机发送 OTLP gRPC,请为该服务添加 4317:4317 映射。Compose 文件只是沙箱:它使用默认凭据、开发用 cipher key,以及 multirole profile 使用的开发用 MS_SELF_TELEMETRY_CLUSTER_TOKEN。存放真实数据前必须替换,参见生产检查清单。沙箱的存储桶是私有的。
角色、扩缩容与高可用参见分角色部署。

端口

健康检查与指标

  • GET /api/v1/healthz 为公开端点。服务正常时返回 200 与 {"status":"ok"};WAL 重放期间或对象存储不可达时返回 503 并附带 reason。容器与负载均衡器探针使用它。
  • GET /metrics 为公开端点,返回 Prometheus 指标。请在代理或网络层限制访问。
  • 在 standalone 或 router 节点上,GET /api/v1/readyz 与 GET /api/v1/version 需要 Bearer Token。version 返回版本、commit、构建 id、发布通道与版本类型。
  • 分角色集群中不提供完整 API 的节点,在同一端口上不经认证地响应 GET /api/v1/healthz、GET /api/v1/readyz 与 GET /metrics。
指标以及服务自身的内置遥测参见自身可观测性。
最后修改于 2026年10月26日