Переход к промышленной эксплуатации
При развертывании ClickStack в рабочей (production) среде необходимо учитывать ряд дополнительных факторов, чтобы обеспечить безопасность, стабильность и правильную конфигурацию.
Безопасность сети и портов
По умолчанию Docker Compose пробрасывает порты на хост, делая их доступными извне контейнеров — даже если включены такие инструменты, как ufw (Uncomplicated Firewall). Такое поведение связано с сетевой подсистемой Docker, которая может обходить правила файрвола на уровне хоста, если явно не настроена иначе.
Рекомендация:
Открывайте только те порты, которые необходимы для работы в продакшене. Как правило, это OTLP-эндпоинты, API-сервер и фронтенд.
Например, удалите или закомментируйте лишние сопоставления портов в вашем файле docker-compose.yml:
Обратитесь к документации по сетевому взаимодействию Docker, чтобы узнать подробности об изоляции контейнеров и повышении безопасности доступа.
Настройка секрета сессии
В продуктивной среде необходимо задать надёжное случайное значение для переменной окружения EXPRESS_SESSION_SECRET, чтобы защитить данные сессий и предотвратить их подделку.
Вот как добавить её в файл docker-compose.yml для сервиса приложения:
Вы можете сгенерировать надёжный секретный ключ с помощью OpenSSL:
Не добавляйте секреты в систему контроля версий. В рабочей (production) среде рассмотрите использование инструментов управления переменными окружения (например, Docker Secrets, HashiCorp Vault или конфигураций CI/CD, специфичных для конкретных окружений).
Безопасная ингестия
Вся ингестия должна выполняться через OTLP‑порты, которые предоставляет дистрибутив ClickStack с коллектором OpenTelemetry (OTel). По умолчанию для этого требуется защищённый ключ API для приёма данных, который генерируется при запуске. Этот ключ необходим при отправке данных на порты OTel и его можно найти в интерфейсе HyperDX в разделе Team Settings → API Keys.

Кроме того, рекомендуется включить TLS для OTLP‑эндпоинтов и создать выделенного пользователя для ингестии в ClickHouse.
ClickHouse
Для производственных развертываний мы рекомендуем использовать ClickHouse Cloud, который по умолчанию применяет отраслевые меры безопасности, включая усиленное шифрование, аутентификацию и сетевое подключение, а также управляемое разграничение доступа. См. раздел "ClickHouse Cloud" для пошагового руководства по использованию ClickHouse Cloud в соответствии с лучшими практиками.
Права пользователя
Пользователь HyperDX
Для HyperDX в ClickHouse достаточно пользователя с правами readonly, который имеет возможность изменять следующие настройки:
max_rows_to_read(не менее 1 миллиона)read_overflow_modecancel_http_readonly_queries_on_client_closewait_end_of_query
По умолчанию пользователь default как в OSS, так и в ClickHouse Cloud обладает этими правами, но мы рекомендуем создать отдельного пользователя с такими правами.
Пользователь для базы данных и ингестии
Мы рекомендуем создать отдельного пользователя, которого OTel collector будет использовать для ингестии в ClickHouse, и убедиться, что данные отправляются в конкретную базу данных, например otel. Подробности см. в разделе "Создание пользователя для ингестии".
Самостоятельное управление безопасностью
Если вы управляете собственным экземпляром ClickHouse, важно включить SSL/TLS, обеспечить обязательную аутентификацию и следовать передовым практикам по укреплению защиты доступа. См. эту запись в блоге о типичных ошибках конфигурации в реальных системах и способах их избежать.
ClickHouse OSS предоставляет мощные средства безопасности «из коробки». Однако они требуют настройки:
- Используйте SSL/TLS через
tcp_port_secureи<openSSL>вconfig.xml. См. guides/sre/configuring-ssl. - Задайте надёжный пароль для пользователя
defaultили отключите его. - Избегайте внешней публикации ClickHouse, если это не требуется явно. По умолчанию ClickHouse привязывается только к
localhost, пока не изменёнlisten_host. - Используйте методы аутентификации, такие как пароли, сертификаты, SSH-ключи или external authenticators.
- Ограничивайте доступ с помощью фильтрации по IP и предложения
HOST. См. sql-reference/statements/create/user#user-host. - Включите управление доступом на основе ролей (RBAC) для выдачи тонко настраиваемых привилегий. См. operations/access-rights.
- Применяйте квоты и лимиты с помощью quotas, settings profiles и режимов только для чтения.
- Шифруйте данные на диске и используйте защищённое внешнее хранилище. См. operations/storing-data и cloud/security/CMEK.
- Не жёстко прописывайте учётные данные. Используйте named collections или IAM-роли в ClickHouse Cloud.
- Аудируйте доступ и запросы с помощью system logs и session logs.
См. также external authenticators и query complexity settings для управления пользователями и обеспечения ограничений на запросы и использование ресурсов.
Настройка Time To Live (TTL)
Убедитесь, что параметр Time To Live (TTL) правильно настроен для вашего развертывания ClickStack. Он определяет срок хранения данных: значение по умолчанию — 3 дня, и его часто требуется изменить.
Рекомендации по MongoDB
Следуйте официальному контрольному списку мер безопасности MongoDB.
ClickHouse Cloud
Ниже представлен простой вариант развертывания ClickStack с использованием ClickHouse Cloud, соответствующий лучшим практикам.
Создайте сервис
Следуйте руководству по началу работы с ClickHouse Cloud, чтобы создать сервис.
Скопируйте данные для подключения
Чтобы найти параметры подключения для HyperDX, перейдите в консоль ClickHouse Cloud и нажмите кнопку Connect на боковой панели, после чего зафиксируйте параметры HTTP-подключения, в частности URL.
Хотя вы можете использовать имя пользователя и пароль по умолчанию, показанные на этом шаге, для подключения HyperDX, мы рекомендуем создать отдельного пользователя — см. ниже

Создайте пользователя HyperDX
Мы рекомендуем создать отдельного пользователя для HyperDX. Выполните следующие SQL-команды в SQL-консоли Cloud, указав надёжный пароль, соответствующий требованиям к сложности:
Подготовьте пользователя для ингестии
Создайте базу данных otel для данных и пользователя hyperdx_ingest для ингестии с ограниченными правами.
Разверните ClickStack
Разверните ClickStack — предпочтительны модели развертывания Helm или Docker Compose (модифицированный для исключения ClickHouse).
Опытные пользователи могут развернуть OTel collector и HyperDX отдельно, используя их автономные режимы развертывания.
Инструкции по использованию ClickHouse Cloud с Helm-чартом можно найти здесь. Эквивалентные инструкции для Docker Compose можно найти здесь.
Перейдите в интерфейс HyperDX
Перейдите по адресу http://localhost:8080, чтобы получить доступ к интерфейсу HyperDX.
Создайте пользователя, указав имя пользователя и пароль, соответствующие требованиям.

После нажатия Create вам будет предложено ввести параметры подключения.
Подключитесь к ClickHouse Cloud
Используя ранее созданные учётные данные, заполните параметры подключения и нажмите Create.

Отправьте данные в ClickStack
Чтобы отправить данные в ClickStack, см. раздел "Sending OpenTelemetry data".