> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Всё в одном

> Развертывание ClickStack с открытым исходным кодом в конфигурации All in One — стек обсервабилити ClickHouse

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

Этот Docker-образ включает все компоненты ClickStack с открытым исходным кодом:

* **ClickHouse**
* **HyperDX**
* **коллектор OpenTelemetry (OTel)** (с OTLP на портах `4317` и `4318`)
* **MongoDB** (для хранения постоянного состояния приложения)

Этот вариант включает аутентификацию, благодаря чему панели мониторинга, оповещения и сохранённые поиски сохраняются для разных сеансов и пользователей.

<div id="suitable-for">
  ### Подходит для
</div>

* Демонстраций
* Локального тестирования всего стека

<div id="deployment-steps">
  ## Шаги развертывания
</div>

<br />

<Steps>
  <Step>
    ### Развертывание с помощью Docker

    Следующая команда запустит OpenTelemetry Collector (на портах 4317 и 4318) и интерфейс HyperDX (на порту 8080).

    ```shell theme={null}
    docker run -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-all-in-one:latest
    ```

    <Info>
      **Обновление имени образа**

      Образы ClickStack теперь публикуются как `clickhouse/clickstack-*` (ранее — `docker.hyperdx.io/hyperdx/*`).
    </Info>
  </Step>

  <Step>
    ### Перейдите в интерфейс HyperDX

    Перейдите по адресу [http://localhost:8080](http://localhost:8080), чтобы открыть интерфейс HyperDX.

    Создайте пользователя, указав имя пользователя и пароль, соответствующие требованиям.

    После нажатия `Create` для встроенного экземпляра ClickHouse будут созданы источники данных.

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/Wpmp4N2VLv_V8ziJ/images/use-cases/observability/hyperdx-login.png?fit=max&auto=format&n=Wpmp4N2VLv_V8ziJ&q=85&s=a4a7f0f11f4ba3b35b9a6c6613b62f5e" alt="Интерфейс HyperDX" size="lg" width="3600" height="1900" data-path="images/use-cases/observability/hyperdx-login.png" />

    Пример использования другого экземпляра ClickHouse см. в разделе ["Использование ClickHouse Cloud"](#using-clickhouse-cloud).
  </Step>

  <Step>
    ### Приём данных

    Инструкции по приёму данных см. в разделе ["Ингестия данных"](/ru/clickstack/ingesting-data).
  </Step>
</Steps>

<div id="persisting-data-and-settings">
  ## Сохранение данных и настроек
</div>

Чтобы данные и настройки сохранялись после перезапуска контейнера, можно изменить приведённую выше команду docker и смонтировать пути `/data/db`, `/var/lib/clickhouse` и `/var/log/clickhouse-server`. Например:

```shell theme={null}
# убедитесь, что директории существуют
mkdir -p .volumes/db .volumes/ch_data .volumes/ch_logs
# измените команду для монтирования путей
docker run \
  -p 8080:8080 \
  -p 4317:4317 \
  -p 4318:4318 \
  -v "$(pwd)/.volumes/db:/data/db" \
  -v "$(pwd)/.volumes/ch_data:/var/lib/clickhouse" \
  -v "$(pwd)/.volumes/ch_logs:/var/log/clickhouse-server" \
  clickhouse/clickstack-all-in-one:latest
```

<div id="deploying-to-production">
  ## Развертывание в продакшн
</div>

Этот вариант не следует развертывать в продакшн по следующим причинам:

* **Непостоянное хранилище:** Все данные хранятся во встроенной в Docker файловой системе overlay. Такая конфигурация не обеспечивает производительность при масштабировании, а данные будут потеряны, если контейнер удалить или перезапустить, — если только пользователи не [смонтируют необходимые файловые пути](#persisting-data-and-settings).
* **Отсутствие изоляции компонентов:** Все компоненты работают в одном Docker-контейнере. Это не позволяет независимо масштабировать их и отслеживать их состояние, а любые ограничения `cgroup` применяются глобально ко всем процессам. В результате компоненты могут конкурировать за CPU и память.

<div id="customizing-ports-deploy">
  ## Настройка портов
</div>

Если вам нужно изменить порты приложения (8080) или API (8000), на которых работает HyperDX Local, потребуется изменить команду `docker run`, чтобы пробросить нужные порты и задать несколько переменных окружения.

Порты OpenTelemetry можно изменить, просто скорректировав флаги проброса портов. Например, замените `-p 4318:4318` на `-p 4999:4318`, чтобы изменить HTTP-порт OpenTelemetry на 4999.

```shell theme={null}
docker run -p 8080:8080 -p 4317:4317 -p 4999:4318 clickhouse/clickstack-all-in-one:latest
```

<div id="using-clickhouse-cloud">
  ## Использование ClickHouse Cloud
</div>

Этот дистрибутив можно использовать с ClickHouse Cloud. Хотя локальный экземпляр ClickHouse всё равно будет развернут (и проигнорирован), OTel collector можно настроить для работы с экземпляром ClickHouse Cloud, задав переменные окружения `CLICKHOUSE_ENDPOINT`, `CLICKHOUSE_USER` и `CLICKHOUSE_PASSWORD`.

Например:

```shell theme={null}
export CLICKHOUSE_ENDPOINT=<HTTPS ENDPOINT>
export CLICKHOUSE_USER=<CLICKHOUSE_USER>
export CLICKHOUSE_PASSWORD=<CLICKHOUSE_PASSWORD>

docker run -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-all-in-one:latest
```

Значение `CLICKHOUSE_ENDPOINT` должно быть HTTPS-конечной точкой ClickHouse Cloud с указанием порта `8443`, например `https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443`

После входа в интерфейс HyperDX перейдите в [`Team Settings`](http://localhost:8080/team) и создайте подключение к вашему сервису ClickHouse Cloud, а затем добавьте необходимые источники.

<div id="configuring-collector">
  ## Настройка OpenTelemetry Collector
</div>

При необходимости конфигурацию OpenTelemetry Collector можно изменить — см. ["Изменение конфигурации"](/ru/clickstack/ingesting-data/collector#modifying-otel-collector-configuration).

<div id="schema-choice-map-vs-json">
  ## Выбор схемы: Map или JSON
</div>

По умолчанию ClickStack хранит атрибуты в столбцах `Map(LowCardinality(String), String)`. Это рекомендуемая схема для рабочих нагрузок обсервабилити. В сочетании с [сериализацией Map по бакетам](/ru/reference/data-types/map#bucketed-map-serialization) и текстовыми индексами по ключам и значениям в Map она обеспечивает точечные lookup-операции без накладных расходов на приём для каждого ключа, характерных для динамических подстолбцов JSON.

Схема с типом `JSON` доступна в статусе бета для оценки на рабочих нагрузках с небольшим стабильным набором ключей атрибутов. Использовать её **по умолчанию не рекомендуется**. Полное сравнение и переменные окружения, необходимые для включения поддержки JSON, см. в разделе [Map vs JSON type](/ru/clickstack/ingesting-data/schema/map-vs-json).
