# 生产用 OpenObserve(单机)。相对本地版 docker-compose.yml 的区别: # - 端口只绑 127.0.0.1 → 公网/外网都到不了(UI 访问走 SSH 隧道或 nginx 反代,见 README) # - root 密码走环境变量(放同目录 .env,已 gitignore,勿提交) # - 数据 bind-mount 到宿主 /data 分区(需预建目录 + 确认容器可写)+ CPU/内存上限(与 app/PG 共存防抢内存) # # 用法: # 1) 本目录建 .env(已 gitignore): # OO_ROOT_PASSWORD=<强随机串> # 生成: python -c "import secrets;print(secrets.token_urlsafe(24))" # 2) docker compose -f docker-compose.prod.yml up -d # 3) 开机自起: sudo systemctl enable docker services: openobserve: image: public.ecr.aws/zinclabs/openobserve:v0.91.2 container_name: openobserve ports: - "127.0.0.1:5080:5080" # 只绑本机,安全 environment: ZO_ROOT_USER_EMAIL: "admin@shaguabijia.com" ZO_ROOT_USER_PASSWORD: "${OO_ROOT_PASSWORD:?请先在 deploy/openobserve/.env 里设 OO_ROOT_PASSWORD}" ZO_DATA_DIR: "/data" ZO_COMPACT_DATA_RETENTION_DAYS: "30" # 超 30 天自动删,防爆盘(默认 3650 天=10年) ZO_TELEMETRY: "false" # 关匿名遥测(内网自用);变量名是 ZO_TELEMETRY,不是 *_ENABLED volumes: - /data/openobserve/data:/data # 绑定挂载到宿主机的 /data/openobserve/data 目录(建议该目录所在分区有 20G+ 空间) restart: unless-stopped deploy: resources: limits: # 硬上限:防 OO 查询/ingest 抢爆 CPU/内存,拖垮同机 PG+app cpus: '2.0' memory: 3G logging: # 容器 stdout 日志上限,防爆盘 driver: json-file options: { max-size: "10m", max-file: "3" }