Passer au contenu principal
Cette image Docker complète regroupe tous les composants de ClickStack Open Source :
  • ClickHouse
  • HyperDX
  • collector OpenTelemetry (OTel) (exposant OTLP sur les ports 4317 et 4318)
  • MongoDB (pour la persistance de l’état de l’application)
Cette option inclut l’authentification, ce qui permet de conserver les tableaux de bord, les alertes et les recherches enregistrées d’une session à l’autre et pour tous les utilisateurs.

Convient pour

  • Démos
  • Tests locaux de la stack complète

Étapes de déploiement


1

Déployer avec Docker

La commande suivante exécute un collector OpenTelemetry (sur les ports 4317 et 4318) ainsi que l’interface HyperDX (sur le port 8080).
docker run -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-all-in-one:latest
Mise à jour du nom de l’imageLes images ClickStack sont désormais publiées sous clickhouse/clickstack-* (auparavant docker.hyperdx.io/hyperdx/*).
2

Accéder à l’interface HyperDX

Accédez à http://localhost:8080 pour ouvrir l’interface 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 intégrée.Pour voir un exemple utilisant une autre instance ClickHouse, consultez « Using ClickHouse Cloud ».
3

Ingérer des données

Pour ingérer des données, consultez « Ingesting data ».

Persistance des données et des paramètres

Pour conserver les données et les paramètres après le redémarrage du conteneur, vous pouvez modifier la commande Docker ci-dessus afin de monter les chemins /data/db, /var/lib/clickhouse et /var/log/clickhouse-server. Par exemple :
# ensure directories exist
mkdir -p .volumes/db .volumes/ch_data .volumes/ch_logs
# modify command to mount paths
docker run \
  -p 8080:8080 \
  -p 4317:4317 \
  -p 4318:4318 \
  -v "$(pwd)/.volumes/db:/data/db" \
  -v "$(pwd)/.volumes/ch_data:/var/lib/clickhouse" \
  -v "$(pwd)/.volumes/ch_logs:/var/log/clickhouse-server" \
  clickhouse/clickstack-all-in-one:latest

Déploiement en production

Cette option ne doit pas être déployée en production pour les raisons suivantes :
  • Stockage non persistant : Toutes les données sont stockées à l’aide du système de fichiers overlay natif de Docker. Cette configuration n’offre pas de performances suffisantes à grande échelle, et les données seront perdues si le conteneur est supprimé ou redémarré, sauf si les utilisateurs montent les chemins de fichiers requis.
  • Absence d’isolation des composants : Tous les composants s’exécutent dans un seul conteneur Docker. Cela empêche une mise à l’échelle et une supervision indépendantes, et les limites cgroup s’appliquent globalement à l’ensemble des processus. Par conséquent, les composants peuvent se retrouver en concurrence pour le CPU et la mémoire.

Personnaliser les ports

Si vous devez personnaliser les ports de l’application (8080) ou de l’API (8000) utilisés par HyperDX Local, vous devrez modifier la commande docker run pour rediriger les ports appropriés et définir quelques variables d’environnement. Pour personnaliser les ports OpenTelemetry, il suffit de modifier les options de redirection de port. Par exemple, remplacez -p 4318:4318 par -p 4999:4318 pour définir le port HTTP OpenTelemetry sur 4999.
docker run -p 8080:8080 -p 4317:4317 -p 4999:4318 clickhouse/clickstack-all-in-one:latest

Utilisation de ClickHouse Cloud

Cette distribution peut être utilisée avec ClickHouse Cloud. Même si l’instance ClickHouse locale sera toujours déployée (puis ignorée), l’OTel collector peut être configuré pour utiliser une instance ClickHouse Cloud en définissant les variables d’environnement CLICKHOUSE_ENDPOINT, CLICKHOUSE_USER et CLICKHOUSE_PASSWORD. Par exemple :
export CLICKHOUSE_ENDPOINT=<HTTPS ENDPOINT>
export CLICKHOUSE_USER=<CLICKHOUSE_USER>
export CLICKHOUSE_PASSWORD=<CLICKHOUSE_PASSWORD>

docker run -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-all-in-one:latest
Le CLICKHOUSE_ENDPOINT doit être l’endpoint HTTPS de ClickHouse Cloud, avec le port 8443, par exemple https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443 Après vous être connecté à l’interface HyperDX, accédez à Team Settings et créez une connexion à votre service ClickHouse Cloud, puis créez les sources requises.

Configuration du collecteur OpenTelemetry

La configuration de l’OTel collector peut être modifiée si nécessaire. Voir « Modifier la configuration ».

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