メインコンテンツへスキップ
メインコンテンツへスキップ

オールインワン構成

この包括的な Docker イメージには、すべての ClickStack コンポーネントがバンドルされています:

  • ClickHouse
  • HyperDX
  • OpenTelemetry (OTel) collector(ポート 4317 および 4318 で OTLP を公開)
  • MongoDB(アプリケーション状態を永続化するため)

このオプションには認証が含まれており、ダッシュボード、アラート、保存済み検索をセッションやユーザーをまたいで保持できます。

適した用途

  • デモ
  • スタック全体のローカルテスト

デプロイ手順


Docker でデプロイする

次のコマンドで OpenTelemetry コレクター(ポート 4317 および 4318)と HyperDX UI(ポート 8080)を起動します。

docker run -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one

http://localhost:8080 にアクセスして HyperDX UI を開きます。

要件を満たすユーザー名とパスワードを指定して、ユーザーを作成します。

Create をクリックすると、組み込みの ClickHouse インスタンス用のデータソースが作成されます。

HyperDX UI

別の ClickHouse インスタンスを使用する例については、「ClickHouse Cloud 接続を作成する」を参照してください。

データを取り込む

データを取り込む方法については、「Ingesting data」を参照してください。

データと設定の永続化

コンテナの再起動後もデータと設定を保持するには、前述の docker コマンドを変更し、パス /data/db/var/lib/clickhouse/var/log/clickhouse-server をマウントするようにします。例えば、次のようになります。

# ディレクトリの存在を確認 \{#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" \
  docker.hyperdx.io/hyperdx/hyperdx-all-in-one

本番環境へのデプロイ

次の理由から、このオプションを本番環境で使用することは推奨されません。

  • 永続化されないストレージ: すべてのデータは Docker ネイティブのオーバーレイファイルシステムを使用して保存されます。この構成は大規模なワークロードで十分な性能を発揮できず、コンテナが削除または再起動された場合、ユーザーが必要なファイルパスをマウントしない限り、データは失われます。
  • コンポーネント分離の欠如: すべてのコンポーネントが 1 つの Docker コンテナ内で実行されます。このため、コンポーネント単位でのスケーリングや監視ができず、任意の cgroup 制限がすべてのプロセスに対してグローバルに適用されます。その結果、コンポーネント間で CPU やメモリを取り合う可能性があります。

ポートのカスタマイズ

HyperDX Local が使用するアプリケーション (8080) や API (8000) のポートをカスタマイズする必要がある場合は、適切なポートをポートフォワーディングし、いくつかの環境変数を設定するように docker run コマンドを変更する必要があります。

OpenTelemetry のポートは、ポートフォワーディングのフラグを変更するだけでカスタマイズできます。たとえば、OpenTelemetry の HTTP ポートを 4999 に変更するには、-p 4318:4318-p 4999:4318 に置き換えます。

docker run -p 8080:8080 -p 4317:4317 -p 4999:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one

ClickHouse Cloud の使用

このディストリビューションは ClickHouse Cloud と組み合わせて使用できます。ローカルの ClickHouse インスタンスも引き続きデプロイされますが(使用はされません)、環境変数 CLICKHOUSE_ENDPOINTCLICKHOUSE_USERCLICKHOUSE_PASSWORD を設定することで、OTel collector が ClickHouse Cloud インスタンスを使用するように構成できます。

例:

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 docker.hyperdx.io/hyperdx/hyperdx-all-in-one

CLICKHOUSE_ENDPOINT には、ポート 8443 を含む ClickHouse Cloud の HTTPS エンドポイントを指定します。例えば https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443 のようになります。

HyperDX UI に接続したら、Team Settings に移動し、ClickHouse Cloud サービスへの接続を作成し、その後で必要なソースの設定を行います。フローの一例についてはこちらを参照してください。

OpenTelemetry collector の設定

必要に応じて OTel collector の設定を変更できます。詳細は "設定の変更" を参照してください。

JSON 型サポート

Beta feature. Learn more.
ベータ機能 - 本番環境向けではありません

ClickStack における JSON 型サポートは ベータ機能 です。JSON 型自体は ClickHouse 25.3+ では本番環境向けとして利用可能ですが、ClickStack との統合はまだ積極的に開発中であり、制限があったり、将来的に変更されたり、不具合を含む可能性があります。

ClickStack では、バージョン 2.0.4 以降で JSON 型 をベータ機能としてサポートしています。

この型の利点については JSON 型の利点 を参照してください。

JSON 型のサポートを有効にするには、以下の環境変数を設定する必要があります。

  • OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json' - OTel collector でのサポートを有効にし、スキーマが JSON 型を使用して作成されるようにします。
  • BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true - HyperDX アプリケーションでのサポートを有効にし、JSON データに対してクエリを実行できるようにします。

例えば、次のように設定します。

docker run -e OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json' -e BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one