Вывод в продакшн
При развертывании ClickStack в продуктивной среде существует ряд дополнительных аспектов, которые необходимо учесть, чтобы обеспечить безопасность, стабильность и корректную конфигурацию.
Безопасность сети и портов
По умолчанию Docker Compose пробрасывает порты на хост, делая их доступными извне контейнера — даже если включены такие инструменты, как ufw (Uncomplicated Firewall). Такое поведение связано с сетевым стеком Docker, который может обходить правила файрвола на уровне хоста, если специально не настроен.
Рекомендация:
Открывайте только те порты, которые необходимы в продакшн-среде. Как правило, это конечные точки OTLP, сервер API и frontend.
Например, удалите или закомментируйте лишние сопоставления портов в файле docker-compose.yml:
Обратитесь к документации по сетевому взаимодействию Docker для получения подробной информации об изоляции контейнеров и повышении безопасности доступа.
Настройка секрета сессии
В рабочей среде необходимо задать надёжное, случайное значение для переменной окружения EXPRESS_SESSION_SECRET, чтобы защитить данные сессии и предотвратить их подделку.
Ниже показано, как добавить его в файл docker-compose.yml для сервиса приложения:
Вы можете сгенерировать надёжный секрет с помощью openssl:
Не размещайте секреты в системе контроля версий. В продуктивной среде рекомендуется использовать инструменты управления переменными окружения (например, 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
Пользователю ClickHouse для HyperDX достаточно быть пользователем 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, крайне важно включить TLS, настроить аутентификацию и следовать лучшим практикам по усилению контроля доступа. См. эту запись в блоге для контекста по реальным ошибкам настройки и способам их избежать.
ClickHouse OSS предоставляет надежные средства безопасности «из коробки». Однако их необходимо сконфигурировать:
- Используйте TLS через
tcp_port_secureи<openSSL>вconfig.xml. См. guides/sre/configuring-tls. - Задайте надежный пароль для пользователя
defaultили отключите его. - Избегайте внешней публикации ClickHouse, если это не требуется явно. По умолчанию ClickHouse привязывается только к
localhost, пока не измененlisten_host. - Используйте методы аутентификации, такие как пароли, сертификаты, SSH-ключи или внешние аутентификаторы.
- Ограничивайте доступ с помощью фильтрации по IP и предложения
HOST. См. sql-reference/statements/create/user#user-host. - Включите управление доступом на основе ролей (RBAC) для предоставления более тонко настроенных прав доступа. См. operations/access-rights.
- Применяйте квоты и лимиты с помощью квот, профилей настроек и режимов только для чтения.
- Шифруйте данные в состоянии покоя (at rest) и используйте защищенное внешнее хранилище. См. operations/storing-data и cloud/security/CMEK.
- Избегайте жестко прописанных учетных данных. Используйте именованные коллекции или IAM-роли в ClickHouse Cloud.
- Проводите аудит доступа и запросов с помощью системных логов и логов сессий.
См. также внешние аутентификаторы и настройки сложности запросов для управления пользователями и обеспечения ограничений на запросы и использование ресурсов.
Настройте Time To Live (TTL)
Убедитесь, что для вашего развертывания ClickStack Time To Live (TTL) корректно настроен. Этот параметр определяет срок хранения данных — значение по умолчанию 3 дня часто требуется изменить.
Рекомендации по MongoDB
Следуйте официальному контрольному списку по безопасности MongoDB.
ClickHouse Cloud
Ниже приведён простой вариант развертывания ClickStack с использованием ClickHouse Cloud, соответствующий рекомендациям по лучшим практикам.
Создайте сервис
Следуйте руководству по началу работы с ClickHouse Cloud, чтобы создать сервис.
Скопируйте параметры подключения
Чтобы найти параметры подключения для HyperDX, перейдите в консоль ClickHouse Cloud и нажмите кнопку Connect на боковой панели, обратив внимание на параметры HTTP-подключения, в частности URL.
Хотя вы можете использовать имя пользователя и пароль по умолчанию, показанные на этом шаге для подключения HyperDX, мы рекомендуем создать отдельного пользователя — см. ниже.

Создайте пользователя HyperDX
Мы рекомендуем создать отдельного пользователя для HyperDX. Выполните следующие SQL-команды в консоли Cloud SQL, указав надёжный пароль, соответствующий требованиям к сложности:
Подготовьте пользователя для ингестии
Создайте базу данных 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».