Docker 配置
适用于Alpha
单机部署从 deploy/compose/.env.production 读取配置,这个文件在部署第 2 步中由
.env.production.example 复制而来。必填项为空时 Compose 会拒绝启动;其他变量都有这里列出的默认值,
在你测量到需要调整之前保持默认即可。
启动之前先检查一下这个文件:
docker compose --env-file deploy/compose/.env.production \ -f deploy/compose/production.compose.yml config --quiet| 变量 | 默认值 | 作用 |
|---|---|---|
OPENRUM_DOMAIN |
无 | 这台主机的公网域名,不带 https://。Caddy 为它自动签发 HTTPS,OpenRUM 把 https://<域名> 作为公开基础地址。域名必须解析到这台主机。 |
OPENRUM_IMAGE |
无 | 你在第 3 步构建的应用镜像标签。API、Ingest、Consumer、Worker、Web 和迁移都运行它。标签要能标识所用的版本。 |
POSTGRES_PASSWORD |
无 | OpenRUM 使用的 PostgreSQL 账号密码。 |
CLICKHOUSE_PASSWORD |
无 | OpenRUM 使用的 ClickHouse 账号密码。 |
BOOTSTRAP_TOKEN |
无 | 在 https://<域名>/setup 创建第一个管理员时用来证明你有权限。第一个用户创建后,初始化页面就会关闭。 |
两个数据库密码要在第一次启动前设置好,之后视为固定。以后更换它们是数据库层面的操作,不是改这个文件。
| 变量 | 默认值 | 作用 |
|---|---|---|
OPENRUM_EDGE_SUBNET |
172.30.77.0/24 |
Caddy 和应用共用的私有 Docker 子网。 |
OPENRUM_EDGE_IP |
172.30.77.10 |
Caddy 在该子网里的固定地址。Ingest 只信任来自这个地址的客户端 IP 头,所以限流看到的是访问者的真实地址。 |
两个值要一起改,并且只在默认子网和主机网络冲突时才改。
这些参数要根据实测流量和容量指南来调,不要提前调整。
| 变量 | 默认值 | 作用 |
|---|---|---|
OPENRUM_KAFKA_RETENTION_DURATION |
168h |
Kafka 保留已接收 Event 的时长(7 天)。OpenRUM 用它判断 Consumer 在数据过期之前还有多少时间消化积压。要和 Topic 的真实保留时间一致。 |
OPENRUM_CONSUMER_WORKERS |
4 |
把 Kafka 消息写入 ClickHouse 的并行 Consumer 工作线程数。只有在 Consumer 延迟持续偏高时才调大。 |
OPENRUM_CONSUMER_FLUSH_INTERVAL |
10ms |
Consumer 攒批后等待多久写入 ClickHouse。一个批次累计到 1,000 行或 4 MiB 时也会立即写入。 |
磁盘压力保护
Section titled “磁盘压力保护”ClickHouse 和应用在同一台主机上,所以保护保持开启。它检查 ClickHouse 的剩余磁盘空间,在磁盘写满之前保护主机。 Console 里会看到什么、如何恢复,见存储压力。
| 变量 | 默认值 | 作用 |
|---|---|---|
OPENRUM_STORAGE_PRESSURE_GUARD_ENABLED |
true |
开启保护。只要 ClickHouse 和主机共用磁盘,就保持开启。 |
OPENRUM_STORAGE_WARNING_FREE_RATIO |
0.15 |
剩余空间比例不高于它时,Console 显示容量偏低警告(已用 85%)。 |
OPENRUM_STORAGE_CRITICAL_FREE_RATIO |
0.10 |
剩余空间比例不高于它时,Browser SDK 的采样率被限制在应急采样率(已用 90%)。 |
OPENRUM_STORAGE_HARD_STOP_FREE_RATIO |
0.05 |
剩余空间比例不高于它时,Ingest 停止接收 Event,并返回空的 202(已用 95%)。 |
OPENRUM_STORAGE_RECOVERY_FREE_RATIO |
0.10 |
剩余空间必须回升到高于它,采样和 Ingest 才会恢复正常。 |
OPENRUM_STORAGE_EMERGENCY_SAMPLE_RATE |
0.10 |
保护生效期间使用的采样率。 |
OPENRUM_STORAGE_POLL_INTERVAL |
30s |
保护多久读取一次 ClickHouse 的磁盘容量。 |
这几个比例必须保持这个顺序,否则服务会拒绝启动:硬停止 < 严重 ≤ 恢复 < 警告。
Source Map 存储(可选)
Section titled “Source Map 存储(可选)”Source Map Artifact 需要对象存储,核心监控不需要。不用 Source Map 时,这一节的变量都留空。 服务商、存储桶和凭证的说明见对象存储。
| 变量 | 默认值 | 作用 |
|---|---|---|
OBJECT_STORAGE_PROVIDER |
空 | oss 表示阿里云 OSS,s3 表示 Amazon S3 及兼容服务。 |
OBJECT_STORAGE_ENDPOINT |
空 | 自定义端点,用于 MinIO、R2、Ceph 等 S3 兼容服务。 |
OBJECT_STORAGE_BUCKET |
空 | 存放 Artifact 的存储桶,保持私有。 |
OBJECT_STORAGE_REGION |
空 | 存储桶所在的服务商地域。 |
OBJECT_STORAGE_FORCE_PATH_STYLE |
空 | 服务需要路径风格寻址时设为 true,部分自建 S3 服务需要。 |
OPENRUM_OBJECT_STORAGE_ENDPOINT_ALLOWLIST |
空 | 允许作为自定义端点的精确主机名。生产环境的自定义端点必须使用 HTTPS,并出现在这个列表里。 |
OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET |
空 | 阿里云的静态凭证。两个要同时设置,或同时不设置。 |
AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY |
空 | S3 的静态凭证。两个要同时设置,或同时不设置。 |
AWS_SESSION_TOKEN |
空 | 会话令牌,只在使用 S3 临时凭证时才需要。 |
Console 托管凭证(可选)
Section titled “Console 托管凭证(可选)”默认情况下,对象存储和告警渠道的凭证只来自这个文件。想让管理员在 Console 里保存它们,就要开启托管凭证。 它们加密存放,密钥保存在数据库之外。
| 变量 | 默认值 | 作用 |
|---|---|---|
OPENRUM_ALLOW_MANAGED_SECRETS |
false |
显式开启由 Console 托管的加密凭证。 |
OPENRUM_MASTER_KEY |
空 | 开启托管凭证时必填:恰好 32 个随机字节的 Base64。用 openssl rand -base64 32 生成,并保存在 PostgreSQL 之外。 |
OPENRUM_MASTER_KEY_ID |
v1 |
密钥的标识,轮换密钥时使用。 |
修改文件后,重新执行部署步骤里同一条 up -d --wait 命令。Compose 只会重建配置发生变化的服务,其余服务继续运行。
其他设置,包括在 Console 里配置的那些,见配置参考。
Release Alpha · commit local