Prérequis
- D’un cluster Kubernetes (v1.20+ recommandée) avec au moins 32 Gio de RAM et 100 Go d’espace disque disponibles sur un nœud pour ClickHouse.
- Helm v3+
- De
kubectl, configuré pour interagir avec votre cluster
Options de déploiement
-
Open Source ClickStack : déployez ClickStack entièrement dans votre cluster Kubernetes, y compris :
- ClickHouse
- HyperDX
- MongoDB (utilisé pour l’état et la configuration des tableaux de bord)
- Managed ClickStack, avec ClickHouse et la ClickStack UI (HyperDX) gérés dans ClickHouse Cloud. Vous n’avez ainsi pas besoin d’exécuter ClickHouse ou HyperDX dans votre cluster.
Installer cert-manager (facultatif)
Si votre installation nécessite des certificats TLS, installez cert-manager à l’aide de Helm :Déployer l’OpenTelemetry Demo (facultatif)
Cette étape est facultative et s’adresse aux cas où vous n’avez aucun pod existant à surveiller. Les utilisateurs qui ont déjà des services déployés dans leur environnement Kubernetes peuvent l’ignorer, mais cette démo inclut des microservices instrumentés qui génèrent des données de traces et de session replay, ce qui permet d’explorer toutes les fonctionnalités de ClickStack.La suite déploie le fork ClickStack de la stack applicative OpenTelemetry Demo dans un cluster Kubernetes, conçu pour les tests d’observabilité et la démonstration de l’instrumentation. Il inclut des microservices backend, des générateurs de charge, des pipelines de télémétrie, l’infrastructure de support (par ex. Kafka, Redis) ainsi que des intégrations SDK avec ClickStack.Tous les services sont déployés dans l’espace de nomsotel-demo. Chaque déploiement inclut :- Une instrumentation automatique avec OTel et les SDKs ClickStack pour les traces, les métriques et les logs.
- Tous les services envoient leur instrumentation à un collecteur OpenTelemetry
my-hyperdx-hdx-oss-v2-otel-collector(non déployé) - Le transfert des tags de ressource afin de corréler les logs, les métriques et les traces via la variable d’environnement
OTEL_RESOURCE_ATTRIBUTES.
Running :Architecture de la démonstration
Ajouter le dépôt du chart Helm ClickStack
Pour déployer ClickStack, nous utilisons le chart Helm officiel.Pour cela, il faut ajouter le dépôt Helm HyperDX :Déployer ClickStack
Une fois le chart Helm installé, vous pouvez déployer ClickStack sur votre cluster. Vous pouvez soit exécuter tous les composants, y compris ClickHouse et HyperDX, dans votre environnement Kubernetes, soit déployer uniquement le collector et vous appuyer sur Managed ClickStack pour ClickHouse et l’interface HyperDX.ClickStack Open Source (autogéré)
ClickStack Open Source (autogéré)
La commande suivante installe ClickStack dans le namespace Les utilisateurs qui ne déploient pas la démo OTel peuvent modifier ce paramètre en choisissant un namespace approprié.
otel-demo. Le chart Helm déploie :- Une instance ClickHouse
- HyperDX
- La distribution ClickStack de l’OTel collector
- MongoDB pour stocker l’état de l’application HyperDX
Vous devrez peut-être ajuster le
storageClassName en fonction de la configuration de votre cluster Kubernetes.Managed ClickStack
Managed ClickStack
Si vous préférez utiliser Managed ClickStack, vous pouvez déployer ClickStack et désactiver le ClickHouse inclus.
Le chart déploie actuellement toujours HyperDX et MongoDB. Bien que ces composants constituent un autre moyen d’accès, ils ne sont pas intégrés à l’authentification de ClickHouse Cloud. Dans ce modèle de déploiement, ces composants sont destinés aux administrateurs, car ils donnent accès à la clé d’ingestion sécurisée nécessaire pour ingérer des données via l’OTel collector déployé, mais ils ne doivent pas être exposés aux utilisateurs finaux.
Running. Notez que ClickHouse sera absent si vous utilisez Managed ClickStack :Accéder à l’interface HyperDX
Même lorsque vous utilisez Managed ClickStack, l’instance locale d’HyperDX déployée dans le cluster Kubernetes reste nécessaire. Elle fournit une clé d’ingestion gérée par le serveur OpAMP inclus avec HyperDX et permet une ingestion sécurisée via l’OTel collector déployé — une fonctionnalité qui n’est pas encore disponible dans Managed ClickStack.
ClusterIP et n’est pas exposé à l’extérieur par défaut.Pour accéder à l’interface HyperDX, effectuez une redirection de port de 3000 vers le port local 8080.Récupérer la clé API d’ingestion
L’ingestion vers l’OTel collector déployé par le ClickStack collector est sécurisée par une clé d’ingestion.Accédez àTeam Settings et copiez l’Ingestion API Key depuis la section API Keys. Cette clé API garantit la sécurité de l’ingestion des données via l’OpenTelemetry collector.Créer un secret Kubernetes pour l’API key
Créez un nouveau secret Kubernetes avec l’API key d’ingestion, ainsi qu’une ConfigMap contenant l’adresse de l’OTel collector déployé avec le chart Helm ClickStack. Les composants suivants l’utiliseront pour autoriser l’ingestion vers le collector déployé avec le chart Helm ClickStack :Ajouter le dépôt Helm OpenTelemetry
Pour collecter les métriques Kubernetes, nous allons déployer un OTel collector standard et le configurer pour envoyer les données de manière sécurisée à notre ClickStack collector à l’aide de la clé API d’ingestion ci-dessus.Cela nécessite d’installer le dépôt Helm OpenTelemetry :Déployer les composants du collector Kubernetes
Pour collecter les logs et les métriques du cluster lui-même et de chaque nœud, nous devrons déployer deux collecteurs OpenTelemetry distincts, chacun avec son propre manifeste. Les deux manifestes fournis —k8s_deployment.yaml et k8s_daemonset.yaml — fonctionnent conjointement pour collecter des données de télémétrie complètes depuis votre cluster Kubernetes.-
k8s_deployment.yamldéploie une instance unique d’OpenTelemetry Collector chargée de collecter les événements et les métadonnées à l’échelle du cluster. Elle recueille les événements Kubernetes, les métriques du cluster et enrichit les données de télémétrie avec les labels et annotations des pods. Ce collecteur s’exécute comme un déploiement autonome avec une seule réplique pour éviter les doublons de données. -
k8s_daemonset.yamldéploie un collecteur basé sur un DaemonSet qui s’exécute sur chaque nœud de votre cluster. Il collecte les métriques des nœuds et des pods, ainsi que les logs des conteneurs, à l’aide de composants commekubeletstats,hostmetricset les Kubernetes attribute processors. Ces collecteurs enrichissent les logs avec des métadonnées et les envoient à HyperDX via l’exporteur OTLP.
k8s_deployment.yaml
k8s_deployment.yaml
k8s_daemonset.yaml
k8s_daemonset.yaml
Explorer les données Kubernetes dans HyperDX
Accédez à votre interface HyperDX, soit en utilisant votre instance déployée dans Kubernetes, soit via Managed ClickStack.Managed ClickStack
Managed ClickStack
Si vous utilisez Managed ClickStack, connectez-vous simplement à votre service ClickHouse Cloud et sélectionnez “ClickStack” dans le menu de gauche. Vous serez automatiquement authentifié et n’aurez pas besoin de créer d’utilisateur.Les sources de données pour les logs, les métriques et les traces seront créées à l’avance pour vous.
ClickStack Open Source
ClickStack Open Source
Pour accéder à l’instance HyperDX déployée localement, vous pouvez effectuer une redirection de port à l’aide de la commande suivante, puis accéder à HyperDX à l’adresse http://localhost:8080.
ClickStack en productionEn production, nous recommandons d’utiliser un Ingress avec TLS si vous n’utilisez pas Managed ClickStack. Par exemple :
/kubernetes, par exemple http://localhost:8080/kubernetes.Chacun des onglets — Pods, Nodes et Namespaces — doit contenir des données.