跳到主要内容
最后于 更新

Docker Compose 部署

本文介绍如何使用 Docker Compose 在单机上部署 DOG Stack。部署会启动 OpenTelemetry Collector、集成 Doris App 插件的 Grafana,以及可选的一体化 Doris,适用于本地测试、开发和 PoC。生产环境或 Kubernetes 环境请参见 Kubernetes 部署。

提示

如果不使用 Docker 部署各组件,请参见 Doris 部署文档、OpenTelemetry Collector 安装文档 和 Grafana 安装文档。

本文按 AI Observe Stack 源码提交 2c1fbee83170 核对。下方检出命令固定该提交,避免主分支更新导致参数变化。该提交的内置 Doris 镜像为 4.0.3-all-slim,用于部署栈的连通性验证。

前提条件​

  • Docker Engine 20.10 及以上版本
  • Docker Compose 2.0 及以上版本

部署​

  1. 克隆仓库:

    git clone https://github.com/ai-observe/ai-observe-stack.git
    cd ai-observe-stack
    git checkout 2c1fbee831701178c7dddba857e88130ef292949
    cd docker
  2. 启动服务,以下两种方式二选一。

    • 内置 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

      该账号需要具备创建目标数据库和表、导入数据,以及查询 Grafana 所用表的权限。OpenTelemetry Collector 会自动创建 otel 数据库及其中的表。

      OpenTelemetry Collector 通过 Stream Load 写入数据:FE 会将每个请求重定向到 BE 在 Doris 中注册的地址(可通过 SHOW BACKENDS 查看)。因此,除了 FE 之外,OpenTelemetry Collector 容器还需要能够访问这些 BE 地址及 BE 的 HTTP 端口(默认 8040)。

  3. 验证服务是否正在运行:

    docker compose ps

    接入已有 Doris 时,需要加上 -f docker-compose-without-doris.yaml。所有服务的 STATUS 列应显示 Up。使用内置 Doris 时,OpenTelemetry Collector 会在 Doris 通过健康检查后才启动。

  4. 打开 http://localhost:3000,使用 admin / admin 登录 Grafana。

服务端点​

服务地址账号
Grafanahttp://localhost:3000admin / admin
OTLP gRPClocalhost:4317-
OTLP HTTPlocalhost:4318-
OpenTelemetry Collector 健康检查http://localhost:13133-
Doris FE Web UI(仅内置 Doris)http://localhost:8030root / 空密码
Doris MySQL 协议(仅内置 Doris)localhost:9030root / 空密码

接入 OpenTelemetry SDK 的应用将数据发送到 localhost:4317(gRPC)或 localhost:4318(HTTP)。

停止和清理​

停止服务并保留数据:

docker compose down

停止服务并删除所有数据:

docker compose down -v

接入已有 Doris 时,以上两条命令都需要加上 -f docker-compose-without-doris.yaml。已有 Doris 集群中的数据不会被删除。