Passer au contenu principal
Tous les composants de ClickStack Open Source sont distribués séparément sous forme d’images Docker distinctes :
  • ClickHouse
  • HyperDX
  • collecteur OpenTelemetry (OTel)
  • MongoDB
Ces images peuvent être combinées et déployées localement avec Docker Compose. Docker Compose expose des ports supplémentaires pour l’observabilité et l’ingestion, selon la configuration par défaut de otel-collector :
  • 13133 : endpoint de contrôle d’état pour l’extension health_check
  • 24225 : récepteur Fluentd pour l’ingestion des logs
  • 4317 : récepteur OTLP gRPC (standard pour les traces, les logs et les métriques)
  • 4318 : récepteur OTLP HTTP (alternative à gRPC)
  • 8888 : endpoint de métriques Prometheus pour superviser le collecteur lui-même
Ces ports permettent des intégrations avec diverses sources de télémétrie et rendent le collecteur OpenTelemetry prêt pour la production afin de répondre à des besoins d’ingestion variés.

Adapté aux cas suivants

  • Tests en local
  • Preuves de concept
  • Déploiements en production où la tolérance aux pannes n’est pas requise et où un seul serveur suffit pour héberger l’ensemble des données ClickHouse
  • Déploiement de ClickStack avec un hébergement séparé de ClickHouse, par exemple via ClickHouse Cloud.

Étapes de déploiement


1

Cloner le dépôt

Pour déployer avec Docker Compose, clonez le dépôt ClickStack, placez-vous dans le répertoire et exécutez docker-compose up :
git clone https://github.com/ClickHouse/ClickStack.git
docker compose up
2

Accéder à la UI de HyperDX

Rendez-vous sur http://localhost:8080 pour accéder à la UI de HyperDX.Créez un utilisateur en indiquant un nom d’utilisateur et un mot de passe conformes aux exigences.Lorsque vous cliquez sur Create, des sources de données sont créées pour l’instance ClickHouse déployée avec Docker Compose.
Remplacer la connexion par défautVous pouvez remplacer la connexion par défaut à l’instance ClickHouse intégrée. Pour plus de détails, consultez “Using ClickHouse Cloud”.
Pour voir un exemple d’utilisation d’une autre instance ClickHouse, consultez “Using ClickHouse Cloud”.
3

Renseigner les détails de connexion

Pour vous connecter à l’instance ClickHouse déployée, cliquez simplement sur Create et acceptez les paramètres par défaut.Si vous préférez vous connecter à votre propre cluster ClickHouse externe, par exemple ClickHouse Cloud, vous pouvez saisir manuellement vos identifiants de connexion.Si vous êtes invité à créer une source, conservez toutes les valeurs par défaut et renseignez le champ Table avec la valeur otel_logs. Tous les autres paramètres devraient être détectés automatiquement, ce qui vous permettra de cliquer sur Save New Source.

Modification des paramètres de Compose

Vous pouvez modifier les paramètres de la stack, comme la version utilisée, dans le fichier de variables d’environnement :
user@example-host clickstack % cat .env

# Used by docker-compose.yml
IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-all-in-one
LOCAL_IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-local
ALL_IN_ONE_IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-all-in-one
OTEL_COLLECTOR_IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-otel-collector
CODE_VERSION=2.8.0
IMAGE_VERSION_SUB_TAG=.8.0
IMAGE_VERSION=2
IMAGE_NIGHTLY_TAG=2-nightly
IMAGE_LATEST_TAG=latest

# Set up domain URLs
HYPERDX_API_PORT=8000 #optional (should not be taken by other services)
HYPERDX_APP_PORT=8080
HYPERDX_APP_URL=http://localhost
HYPERDX_LOG_LEVEL=debug
HYPERDX_OPAMP_PORT=4320

# Otel/Clickhouse config
HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE=default

Configurer l’OpenTelemetry collector

La configuration de l’OTel collector peut être modifiée si nécessaire. Voir “Modification de la configuration”.

Utilisation de ClickHouse Cloud

Cette distribution peut être utilisée avec ClickHouse Cloud, mais elle diffère de Managed ClickStack. Dans cette configuration, vous gérez vous-même l’UI de ClickStack tout en utilisant ClickHouse Cloud uniquement pour le calcul et le stockage. Sauf si vous avez une raison particulière d’exploiter l’UI séparément, nous vous recommandons d’utiliser Managed ClickStack, qui inclut une authentification intégrée et des fonctionnalités Enterprise supplémentaires, et vous évite d’avoir à gérer vous-même l’UI de ClickStack. Vous devez :
  • Supprimer le service ClickHouse du fichier docker-compose.yml. Cette étape est facultative à des fins de test, car l’instance ClickHouse déployée sera simplement ignorée, même si elle gaspillera des ressources locales. Si vous supprimez le service, assurez-vous également de supprimer toute référence à celui-ci, comme depends_on.
  • Modifier l’OTel collector pour utiliser une instance ClickHouse Cloud en définissant les variables d’environnement CLICKHOUSE_ENDPOINT, CLICKHOUSE_USER et CLICKHOUSE_PASSWORD dans le fichier compose. Plus précisément, ajoutez ces variables d’environnement au service OTel collector :
    otel-collector:
        image: ${OTEL_COLLECTOR_IMAGE_NAME_DOCKERHUB}:${IMAGE_VERSION}
        environment:
          CLICKHOUSE_ENDPOINT: '<CLICKHOUSE_ENDPOINT>' # endpoint HTTPS ici
          CLICKHOUSE_USER: '<CLICKHOUSE_USER>'
          CLICKHOUSE_PASSWORD: '<CLICKHOUSE_PASSWORD>'
          HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE: ${HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE}
          HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
          OPAMP_SERVER_URL: 'http://app:${HYPERDX_OPAMP_PORT}'
        ports:
          - '13133:13133' # extension health_check
          - '24225:24225' # récepteur Fluentd
          - '4317:4317' # récepteur OTLP gRPC
          - '4318:4318' # récepteur OTLP HTTP
          - '8888:8888' # extension de métriques
        restart: always
        networks:
          - internal
    
    CLICKHOUSE_ENDPOINT doit être l’endpoint HTTPS de ClickHouse Cloud, y compris le port 8443, par exemple https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443
  • Lorsque vous vous connectez à l’UI de HyperDX et créez une connexion à ClickHouse, utilisez vos identifiants Cloud.

Choix du schéma : Map vs JSON

Par défaut, ClickStack stocke les attributs dans des colonnes Map(LowCardinality(String), String). Il s’agit du schéma recommandé pour les charges de travail d’observabilité. Associé à la sérialisation de map compartimentée et à des index textuels sur les clés et les valeurs de la map, il permet des recherches sélectives sans la surcharge d’ingestion par clé propre aux sous-colonnes JSON dynamiques. Un schéma de type JSON est disponible en bêta pour évaluation sur des charges de travail avec un ensemble réduit et stable de clés d’attributs. Il n’est pas recommandé par défaut. Consultez Map vs JSON type pour la comparaison complète et les variables d’environnement requises pour activer la prise en charge de JSON.
Dernière modification le 25 juin 2026