Requisitos previos
- Un clúster de Kubernetes (se recomienda v1.20+) con al menos 32 GiB de RAM y 100 GB de espacio en disco disponibles en un nodo para ClickHouse.
- Helm v3+
kubectl, configurado para interactuar con tu clúster
Opciones de implementación
-
Open Source ClickStack: implementa ClickStack por completo dentro de tu clúster de Kubernetes, lo que incluye:
- ClickHouse
- HyperDX
- MongoDB (utilizado para el estado y la configuración del dashboard)
- Managed ClickStack, con ClickHouse y la UI de ClickStack (HyperDX) gestionados en ClickHouse Cloud. Esto elimina la necesidad de ejecutar ClickHouse o HyperDX dentro de tu clúster.
Instalar cert-manager (opcional)
Si su implementación requiere certificados TLS, instale cert-manager con Helm:Despliega OpenTelemetry Demo (opcional)
Este paso es opcional y está pensado para cuando no tienes pods que supervisar. Aunque los usuarios que ya tienen servicios desplegados en su entorno de Kubernetes pueden omitirlo, esta demo sí incluye microservicios instrumentados que generan datos de trazas y session replay, lo que permite explorar todas las funcionalidades de ClickStack.A continuación se despliega el fork de ClickStack de la pila de aplicaciones OpenTelemetry Demo en un clúster de Kubernetes, adaptado para pruebas de observabilidad y para mostrar la instrumentación. Incluye microservicios de backend, generadores de carga, pipelines de telemetría, infraestructura de soporte (p. ej., Kafka, Redis) e integraciones de SDK con ClickStack.Todos los servicios se despliegan en el espacio de nombresotel-demo. Cada implementación incluye:- Instrumentación automática con OTel y ClickStack SDKS para trazas, métricas y logs.
- Todos los servicios envían su instrumentación a un colector de OpenTelemetry
my-hyperdx-hdx-oss-v2-otel-collector(no desplegado) - Reenvío de etiquetas de recurso para correlacionar logs, métricas y trazas mediante la variable de entorno
OTEL_RESOURCE_ATTRIBUTES.
Running:Arquitectura de la demo
Añade el repositorio del gráfico de Helm de ClickStack
Para implementar ClickStack, usamos el gráfico de Helm oficial.Para ello, debemos añadir el repositorio de Helm de HyperDX:Implementar ClickStack
Con el gráfico de Helm instalado, puedes implementar ClickStack en tu clúster. Puedes ejecutar todos los componentes, incluidos ClickHouse y HyperDX, dentro de tu entorno de Kubernetes, o bien implementar solo el collector y usar Managed ClickStack para ClickHouse y la interfaz de HyperDX.ClickStack Open Source (autogestionado)
ClickStack Open Source (autogestionado)
El siguiente comando instala ClickStack en el espacio de nombres Si no vas a implementar la demo de OTel, puedes modificar esto y seleccionar un espacio de nombres adecuado.
otel-demo. El gráfico de Helm implementa:- Una instancia de ClickHouse
- HyperDX
- La distribución de ClickStack del OTel collector
- MongoDB para almacenar el estado de la aplicación HyperDX
Puede que necesites ajustar
storageClassName según la configuración de tu clúster de Kubernetes.Managed ClickStack
Managed ClickStack
Si prefieres usar Managed ClickStack, puedes implementar ClickStack y deshabilitar el ClickHouse incluido.
Actualmente, el gráfico siempre implementa tanto HyperDX como MongoDB. Aunque estos componentes ofrecen una vía de acceso alternativa, no están integrados con la autenticación de ClickHouse Cloud. En este modelo de implementación, estos componentes están pensados para administradores, ya que proporcionan acceso a la clave segura de ingestión necesaria para ingestar a través del OTel collector implementado, pero no deberían exponerse a los usuarios finales.
Running. Ten en cuenta que ClickHouse no aparecerá si estás usando Managed ClickStack:Acceder a la UI de HyperDX
Incluso si usas Managed ClickStack, la instancia local de HyperDX desplegada en el clúster de Kubernetes sigue siendo necesaria. Proporciona una clave de ingestión gestionada por el servidor OpAMP incluido con HyperDX, lo que protege la ingestión a través del OTel collector desplegado, una capacidad que actualmente no está disponible en Managed ClickStack.
ClusterIP y no se expone externamente de forma predeterminada.Para acceder a la UI de HyperDX, redirige el puerto 3000 al puerto local 8080.Obtener la API key de ingesta
La ingestión en el OTel collector desplegado por el ClickStack collector está protegida con una API key de ingesta.Ve aConfiguración del equipo y copia la API key de ingesta de la sección API Keys. Esta API key garantiza una ingestión de datos segura a través del OpenTelemetry collector.Crear un Secret de Kubernetes para la API key
Cree un nuevo Secret de Kubernetes con la API key de ingesta y un ConfigMap que contenga la ubicación del OTel collector desplegado con el gráfico de Helm de ClickStack. Los componentes posteriores lo usarán para permitir la ingesta en el collector desplegado con el gráfico de Helm de ClickStack:Añade el repositorio de Helm de OpenTelemetry
Para recopilar métricas de Kubernetes, implementaremos un OTel collector estándar y lo configuraremos para enviar datos de forma segura a nuestro ClickStack collector mediante la API key de ingesta anterior.Para ello, debemos instalar el repositorio de Helm de OpenTelemetry:Desplegar los componentes del collector de Kubernetes
Para recopilar logs y métricas tanto del clúster en sí como de cada nodo, es necesario implementar dos OpenTelemetry collectors independientes, cada uno con su propio manifiesto. Los dos manifiestos proporcionados —k8s_deployment.yaml y k8s_daemonset.yaml — trabajan en conjunto para recopilar datos de telemetría exhaustivos de su clúster de Kubernetes.-
k8s_deployment.yamlimplementa una sola instancia de OpenTelemetry Collector responsable de recopilar eventos y metadatos de todo el clúster. Recopila eventos de Kubernetes, métricas del clúster y enriquece los datos de telemetría con etiquetas y anotaciones de los pods de Kubernetes. Este collector se ejecuta como una implementación independiente con una sola réplica para evitar la duplicación de datos. -
k8s_daemonset.yamldespliega un colector basado en conjunto de daemon que se ejecuta en cada nodo de su clúster. Recopila métricas a nivel de nodo y de pod de Kubernetes, así como logs de contenedores, mediante componentes comokubeletstats,hostmetricsy procesadores Kubernetes Attribute Processor. Estos colectores enriquecen los logs con metadatos y los envían a HyperDX mediante el exportador OTLP.
k8s_deployment.yaml
k8s_deployment.yaml
k8s_daemonset.yaml
k8s_daemonset.yaml
Explora los datos de Kubernetes en HyperDX
Ve a tu UI de HyperDX, ya sea usando tu instancia desplegada en Kubernetes o a través de Managed ClickStack.Managed ClickStack
Managed ClickStack
Si usas Managed ClickStack, simplemente inicia sesión en tu servicio de ClickHouse Cloud y selecciona “ClickStack” en el menú de la izquierda. La autenticación será automática y no necesitarás crear un usuario.Las fuentes de datos para logs, métricas y trazas se crearán previamente para ti.
ClickStack Open Source
ClickStack Open Source
Para acceder a HyperDX desplegado localmente, puedes usar el reenvío de puertos con el siguiente comando y acceder a HyperDX en http://localhost:8080.
ClickStack en producciónEn producción, recomendamos usar un Ingreso con TLS si no estás usando Managed ClickStack. Por ejemplo:
/kubernetes, por ejemplo http://localhost:8080/kubernetes.Cada una de las pestañas, Pods, Nodos y Espacios de nombres, debería mostrar datos.