Предварительные требования
- Кластер Kubernetes (рекомендуется v1.20+) с как минимум 32 GiB оперативной памяти и 100 GB дискового пространства, доступными на одном узле для ClickHouse.
- Helm v3+
kubectl, настроенный для взаимодействия с вашим кластером
Варианты развертывания
-
ClickStack с открытым исходным кодом: разверните ClickStack целиком в своем кластере Kubernetes, включая:
- ClickHouse
- HyperDX
- MongoDB (используется для хранения состояния и конфигурации панели мониторинга)
- Управляемый ClickStack, где ClickHouse и интерфейс ClickStack (HyperDX) управляются в ClickHouse Cloud. Это избавляет от необходимости запускать ClickHouse или HyperDX внутри вашего кластера.
Установите cert-manager (необязательно)
Если в вашей конфигурации нужны TLS-сертификаты, установите cert-manager с помощью Helm:Разверните OpenTelemetry Demo (необязательно)
Этот шаг необязателен и предназначен для случаев, когда у вас нет существующих подов для мониторинга. Пользователи, у которых в среде Kubernetes уже развернуты сервисы, могут пропустить его, однако это демо включает инструментированные микросервисы, которые генерируют данные трассировок и воспроизведения сеанса, что позволяет изучить все возможности ClickStack.Ниже разворачивается форк ClickStack стека приложений OpenTelemetry Demo в кластере Kubernetes, адаптированный для тестирования обсервабилити и демонстрации инструментирования. Он включает бэкенд-микросервисы, генераторы нагрузки, конвейеры телеметрии, вспомогательную инфраструктуру (например, Kafka и Redis), а также интеграции SDK с ClickStack.Все сервисы развертываются в пространстве именotel-demo. Каждое развертывание включает:- Автоматическое инструментирование с OTel и ClickStack SDKS для трассировок, метрик и журналов.
- Все сервисы отправляют данные своего инструментирования в коллектор OpenTelemetry
my-hyperdx-hdx-oss-v2-otel-collector(не развернут) - Пересылка тегов ресурсов для корреляции журналов, метрик и трассировок через переменную среды
OTEL_RESOURCE_ATTRIBUTES.
Running:Архитектура демо
Добавьте репозиторий Helm-чарта ClickStack
Для развертывания ClickStack мы используем официальный Helm-чарт.Для этого необходимо добавить Helm-репозиторий HyperDX:Развертывание ClickStack
После установки Helm-чарта вы можете развернуть ClickStack в своем кластере. Можно либо запустить все компоненты, включая ClickHouse и HyperDX, в своей среде Kubernetes, либо развернуть только collector и использовать Управляемый ClickStack для ClickHouse и интерфейса HyperDX.ClickStack с открытым исходным кодом (самоуправляемый)
ClickStack с открытым исходным кодом (самоуправляемый)
Следующая команда устанавливает ClickStack в пространстве имен Если вы не развертываете OTel demo, можете изменить этот параметр, указав подходящее пространство имен.
otel-demo. Helm-чарт развертывает:- Экземпляр ClickHouse
- HyperDX
- Дистрибутив OTel collector от ClickStack
- MongoDB для хранения состояния приложения HyperDX
Возможно, вам потребуется скорректировать
storageClassName в соответствии с конфигурацией вашего кластера Kubernetes.Управляемый ClickStack
Управляемый ClickStack
Если вы предпочитаете использовать Управляемый ClickStack, можно развернуть ClickStack и отключить входящий в комплект ClickHouse.
Сейчас чарт всегда развертывает и HyperDX, и MongoDB. Хотя эти компоненты предоставляют альтернативный способ доступа, они не интегрированы с аутентификацией ClickHouse Cloud. В этой модели развертывания эти компоненты предназначены для администраторов, предоставляя доступ к защищенному ключу ингестии, необходимому для ингестии через развернутый OTel collector, но не должны быть доступны конечным пользователям.
Running. Обратите внимание: если вы используете Управляемый ClickStack, ClickHouse будет отсутствовать:Откройте интерфейс HyperDX
Даже при использовании Управляемого ClickStack локальный экземпляр HyperDX, развернутый в кластере Kubernetes, всё равно необходим. Он предоставляет ключ ингестии, которым управляет сервер OpAMP, входящий в состав HyperDX, и обеспечивает защищённую ингестию через развернутый OTel collector — эта возможность в настоящее время недоступна в Управляемом ClickStack.
ClusterIP и по умолчанию не доступен извне.Чтобы открыть интерфейс HyperDX, настройте проброс порта с 3000 на локальный порт 8080.Получение ключа API для приёма данных
Приём данных в OTel collector, развёрнутом коллектором ClickStack, защищён ключом API для приёма данных.Перейдите вTeam Settings и скопируйте Ingestion API Key из раздела API Keys. Этот ключ API обеспечивает безопасную ингестию данных через OpenTelemetry Collector.Создание секрета Kubernetes с ключом API
Создайте новый секрет Kubernetes с ключом API для приёма данных и ConfigMap, содержащий адрес OTel collector, развернутого с помощью Helm-чарта ClickStack. Позднее другие компоненты будут использовать эти ресурсы, чтобы отправлять данные в OTel collector, развернутый с помощью Helm-чарта ClickStack:Добавьте Helm-репозиторий OpenTelemetry
Чтобы собирать метрики Kubernetes, мы развернём стандартный OTel collector и настроим его на безопасную отправку данных в наш коллектор ClickStack с помощью указанного выше ключа API для приёма данных.Для этого нужно установить Helm-репозиторий OpenTelemetry:Развёртывание компонентов коллектора Kubernetes
Для сбора журналов и метрик как с самого кластера, так и с каждого узла потребуется развернуть два отдельных коллектора OpenTelemetry, каждый со своим манифестом. Два предоставленных манифеста —k8s_deployment.yaml и k8s_daemonset.yaml — работают совместно и обеспечивают полный сбор телеметрических данных из вашего кластера Kubernetes.-
k8s_deployment.yamlразворачивает единственный экземпляр OpenTelemetry Collector, отвечающий за сбор событий и метаданных всего кластера. Он собирает события Kubernetes, метрики кластера и обогащает телеметрические данные метками и аннотациями подов. Этот коллектор работает как автономное Развертывание с одной репликой, чтобы избежать дублирования данных. -
k8s_daemonset.yamlразворачивает коллектор в виде ДемонСет, который запускается на каждом узле кластера. Он собирает метрики на уровне узла и пода, а также журналы контейнеров, используя такие компоненты, какkubeletstats,hostmetricsи процессоры Kubernetes Attribute Processor. Эти коллекторы обогащают журналы метаданными и отправляют их в HyperDX с помощью экспортера OTLP.
k8s_deployment.yaml
k8s_deployment.yaml
k8s_daemonset.yaml
k8s_daemonset.yaml
Просмотр данных Kubernetes в HyperDX
Перейдите в интерфейс HyperDX — либо в экземпляр, развернутый в Kubernetes, либо через Управляемый ClickStack.Управляемый ClickStack
Управляемый ClickStack
Если вы используете Управляемый ClickStack, просто войдите в свой сервис ClickHouse Cloud и выберите “ClickStack” в меню слева. Вы будете автоматически аутентифицированы, и создавать пользователя не потребуется.Источники данных для журналов, метрик и трассировок будут созданы заранее.
ClickStack с открытым исходным кодом
ClickStack с открытым исходным кодом
Чтобы получить доступ к локально развернутому HyperDX, выполните локально команду проброса порта и откройте HyperDX по адресу http://localhost:8080.
ClickStack в productionЕсли вы не используете Управляемый ClickStack, для production мы рекомендуем использовать входной шлюз с TLS. Например:
/kubernetes, например: http://localhost:8080/kubernetes.Каждая из вкладок — Pods, Nodes и Namespaces — должна быть заполнена данными.