Перейти к содержимому
Последнее обновление

Развёртывание с помощью Docker Compose

В этой статье описано, как развернуть DOG Stack на одном хосте с помощью Docker Compose. При развёртывании запускаются OpenTelemetry Collector, Grafana с плагином Doris App и, при необходимости, Doris в конфигурации all-in-one. Этот вариант подходит для локального тестирования, разработки и PoC. Для производственных сред и сред Kubernetes см. Развёртывание в Kubernetes.

Это руководство проверено на коммите AI Observe Stack 2c1fbee83170. Приведённая ниже команда checkout фиксирует эту ревизию, чтобы последующие изменения в ветке main не влияли на параметры. Встроенный образ 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 в конфигурации all-in-one вместе с OpenTelemetry Collector и Grafana.

      docker compose up -d
    • Существующий Doris: запускает только OpenTelemetry Collector и Grafana и записывает данные в ваш кластер Doris. Сначала создайте файл конфигурации:

      cp .env.example .env

      Измените параметры подключения к Doris в .env:

      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 по адресу, под которым этот BE зарегистрирован в Doris (отображается командой SHOW BACKENDS). Поэтому из контейнера OpenTelemetry Collector должны быть доступны не только FE, но и адреса BE и HTTP-порт BE (по умолчанию 8040).

  3. Убедитесь, что сервисы запущены:

    docker compose ps

    В режиме с существующим Doris добавьте -f docker-compose-without-doris.yaml. В столбце STATUS каждого сервиса должно отображаться Up. При использовании встроенного Doris OpenTelemetry Collector запускается только после того, как Doris успешно пройдёт проверку работоспособности.

  4. Откройте http://localhost:3000 и войдите в Grafana с учётными данными admin / admin.

Адреса сервисов​

СервисАдресУчётные данные
Grafanahttp://localhost:3000admin / admin
OTLP gRPClocalhost:4317-
OTLP HTTPlocalhost:4318-
Проверка работоспособности OpenTelemetry Collectorhttp://localhost:13133-
Веб-интерфейс Doris FE (только для встроенного Doris)http://localhost:8030root / пустой пароль
Протокол MySQL в Doris (только для встроенного 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 не удаляются.