Passer au contenu principal
Ce guide vous permet de collecter les logs et les métriques de votre système Kubernetes, puis de les envoyer vers ClickStack pour les visualiser et les analyser. Pour les données de démonstration, nous pouvons également utiliser le fork ClickStack de l’OpenTelemetry demo officielle.

Prérequis

Pour suivre ce guide, vous devez disposer de :
  • 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

Vous pouvez suivre ce guide en utilisant l’une des options de déploiement suivantes :
  • 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.
Pour simuler le trafic applicatif, vous pouvez, si vous le souhaitez, déployer le fork ClickStack de l’OpenTelemetry Demo Application. Cela génère des données de télémétrie, notamment des logs, des métriques et des traces. Si vous avez déjà des charges de travail en cours d’exécution dans votre cluster, vous pouvez ignorer cette étape et surveiller les pods, nœuds et conteneurs existants.
1

Installer cert-manager (facultatif)

Si votre installation nécessite des certificats TLS, installez cert-manager à l’aide de Helm :
2

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 noms otel-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.
Lors du déploiement de la démo, vérifiez que tous les pods ont bien été créés et sont à l’état Running :

Architecture de la démonstration

La démonstration se compose de microservices écrits dans différents langages de programmation, qui communiquent entre eux via gRPC et HTTP, ainsi que d’un générateur de charge utilisant Locust pour simuler le trafic des utilisateurs. Le code source original de cette démonstration a été modifié pour utiliser l’instrumentation ClickStack.Crédit : https://opentelemetry.io/docs/demo/architecture/Vous trouverez plus de détails sur cette démonstration dans :
3

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 :
4

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.
La commande suivante installe ClickStack dans le namespace 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.
Les utilisateurs qui ne déploient pas la démo OTel peuvent modifier ce paramètre en choisissant un namespace approprié.
ClickStack en productionCe chart installe également ClickHouse et l’OTel collector. Pour un environnement de production, il est recommandé d’utiliser les opérateurs ClickHouse et OTel collector et/ou d’utiliser Managed ClickStack.Pour désactiver ClickHouse et l’OTel collector, définissez les valeurs suivantes :
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.
Pour vérifier l’état du déploiement, exécutez la commande suivante et assurez-vous que tous les composants sont à l’état Running. Notez que ClickHouse sera absent si vous utilisez Managed ClickStack :
5

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.
Pour des raisons de sécurité, le service utilise 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.
Rendez-vous sur http://localhost:8080 pour accéder à HyperDX UI.Créez un utilisateur en indiquant un nom d’utilisateur et un mot de passe conformes aux exigences de complexité.
6

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.
7

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 :
Redémarrez les pods de l’OpenTelemetry Demo Application afin de prendre en compte la clé API d’ingestion.
Les données de traces et de logs provenant des services de démonstration devraient désormais commencer à affluer vers HyperDX.
8

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 :
9

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.yaml dé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.yaml dé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 comme kubeletstats, hostmetrics et les Kubernetes attribute processors. Ces collecteurs enrichissent les logs avec des métadonnées et les envoient à HyperDX via l’exporteur OTLP.
Ensemble, ces manifests permettent une observabilité full-stack à l’échelle du cluster, de l’infrastructure jusqu’à la télémétrie applicative, et transmettent les données enrichies à ClickStack pour une analyse centralisée.Commencez par installer le collecteur en tant que déploiement :
Ensuite, déployez le collecteur en tant que DaemonSet pour les métriques et les journaux au niveau des nœuds et des pods :
10

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.

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.
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 :
Pour explorer les données Kubernetes, accédez au tableau de bord dédié disponible à l’adresse /kubernetes, par exemple http://localhost:8080/kubernetes.Chacun des onglets — Pods, Nodes et Namespaces — doit contenir des données.
Dernière modification le 25 juin 2026