Docker Compose 部署
本文介绍如何使用 Docker Compose 在单机上部署 DOG Stack。部署会启动 OpenTelemetry Collector、集成 Doris App 插件的 Grafana,以及可选的一体化 Doris,适用于本地测试、开发和 PoC。生产环境或 Kubernetes 环境请参见 Kubernetes 部署。
如果不使用 Docker 部署各组件,请参见 Doris 部署文档、OpenTelemetry Collector 安装文档 和 Grafana 安装文档。
前提条件
- Docker Engine 20.10 及以上版本
- Docker Compose 2.0 及以上版本
部署
-
克隆仓库:
git clone https://github.com/ai-observe/ai-observe-stack.git
cd ai-observe-stack/docker -
启动服务,以下两种方式二选一。
-
内置 Doris:同时启动一体化 Doris、OpenTelemetry Collector 和 Grafana。
docker compose up -d -
接入已有 Doris:只启动 OpenTelemetry Collector 和 Grafana,数据写入已有的 Doris 集群。先创建配置文件:
cp .env.example .env在
.env中修改 Doris 连接配置:DORIS_FE_HTTP_ENDPOINT=http://<DORIS_FE_HOST>:8030
DORIS_FE_MYSQL_ENDPOINT=<DORIS_FE_HOST>:9030
DORIS_USERNAME=root
DORIS_PASSWORD=然后启动服务:
docker compose -f docker-compose-without-doris.yaml up -d该账号需要具有
CREATE DATABASE权限。OpenTelemetry Collector 会自动创建otel数据库及其中的表。OpenTelemetry Collector 通过 Stream Load 写入数据:FE 会将每个请求重定向到 BE 在 Doris 中注册的地址(可通过
SHOW BACKENDS查看)。因此,除了 FE 之外,OpenTelemetry Collector 容器还需要能够访问这些 BE 地址及 BE 的 HTTP 端口(默认 8040)。
-
-
验证服务是否正在运行:
docker compose ps接入已有 Doris 时,需要加上
-f docker-compose-without-doris.yaml。所有服务的STATUS列应显示Up。使用内置 Doris 时,OpenTelemetry Collector 会在 Doris 通过健康检查后才启动。 -
打开 http://localhost:3000,使用
admin/admin登录 Grafana。
服务端点
| 服务 | 地址 | 账号 |
|---|---|---|
| Grafana | http://localhost:3000 | admin / admin |
| OTLP gRPC | localhost:4317 | - |
| OTLP HTTP | localhost:4318 | - |
| OpenTelemetry Collector 健康检查 | http://localhost:13133 | - |
| Doris FE Web UI(仅内置 Doris) | http://localhost:8030 | root / 空密码 |
| Doris MySQL 协议(仅内置 Doris) | localhost:9030 | root / 空密码 |
接入 OpenTelemetry SDK 的应用将数据发送到 localhost:4317(gRPC)或 localhost:4318(HTTP)。
停止和清理
停止服务并保留数据:
docker compose down
停止服务并删除所有数据:
docker compose down -v
接入已有 Doris 时,以上两条命令都需要加上 -f docker-compose-without-doris.yaml。已有 Doris 集群中的数据不会被删除。