前提条件
- ClickHouse 用に、少なくとも 1 つのノードで 32 GiB の RAM と 100GB のディスク容量を利用できる Kubernetes クラスター (v1.20 以降を推奨)
- Helm v3 以降
- クラスターにアクセスできるよう設定された
kubectl
デプロイオプション
-
Open Source ClickStack: 以下を含め、ClickStack を Kubernetes クラスター内に完全にデプロイします。
- ClickHouse
- HyperDX
- MongoDB (ダッシュボードの状態管理と設定に使用)
- Managed ClickStack: ClickHouse と ClickStack UI (HyperDX) は ClickHouse Cloud で管理されます。これにより、クラスター内で ClickHouse や HyperDX を実行する必要がなくなります。
OpenTelemetry Demo をデプロイする (任意)
このステップは任意で、監視対象の既存のポッドがない場合を想定しています。Kubernetes 環境にすでにサービスをデプロイしている場合はスキップできますが、このデモにはトレースとセッションリプレイのデータを生成するインストルメント済みのマイクロサービスが含まれているため、ClickStack のすべての機能を試すことができます。以下では、オブザーバビリティのテストとインストルメンテーションの実演向けに調整された、OpenTelemetry Demo Application スタックの ClickStack フォーク版を Kubernetes クラスター内にデプロイします。これには、バックエンドのマイクロサービス、ロードジェネレーター、テレメトリー パイプライン、補助的なインフラストラクチャ (例: Kafka、Redis) 、および ClickStack との SDK インテグレーションが含まれます。すべてのサービスはotel-demo ネームスペースにデプロイされます。各デプロイメントには次が含まれます:- トレース、メトリクス、ログ向けの、OTel と ClickStack SDKS による自動インストルメンテーション。
- すべてのサービスは、インストルメンテーション データを
my-hyperdx-hdx-oss-v2-otel-collectorOpenTelemetry collector (未デプロイ) に送信します - 環境変数
OTEL_RESOURCE_ATTRIBUTESを介してログ、メトリクス、トレースを相関付けるための リソースタグの転送。
Running 状態になっていることを確認します:デモアーキテクチャ
ClickStack の Helm チャートリポジトリを追加する
ClickStack をデプロイするには、公式の Helm チャートを使用します。そのため、HyperDX の Helm リポジトリを追加する必要があります。ClickStack をデプロイする
Helm チャートをインストールしたら、ClickStack をクラスターにデプロイできます。ClickHouse や HyperDX を含むすべてのコンポーネントを Kubernetes 環境内で実行することも、collector のみをデプロイして、ClickHouse と HyperDX UI には Managed ClickStack を利用することもできます。ClickStack Open Source(セルフマネージド)
ClickStack Open Source(セルフマネージド)
次のコマンドは、OTel デモをデプロイしない場合は、適切なネームスペースを選んでこの設定を変更できます。
otel-demo ネームスペースに ClickStack をインストールします。この helm チャートでは、以下がデプロイされます。- ClickHouse インスタンス
- HyperDX
- ClickStack ディストリビューションの OTel collector
- HyperDX のアプリケーション状態を保存するための MongoDB
Kubernetes クラスターの構成に応じて、
storageClassName の調整が必要になる場合があります。Managed ClickStack
Managed ClickStack
Managed ClickStack を使用する場合は、ClickStack をデプロイし、同梱の ClickHouse を無効化できます。
現在、このチャートでは常に HyperDX と MongoDB の両方がデプロイされます。これらのコンポーネントは代替のアクセス経路を提供しますが、ClickHouse Cloud の認証とは統合されていません。このデプロイメントモデルでは、これらのコンポーネントは管理者向けであり、デプロイした OTel collector 経由でデータを取り込むために必要なセキュアなインジェストキーにアクセスできますが、エンドユーザーには公開すべきではありません。
Running 状態になっていることを確認してください。Managed ClickStack を使用している場合、ClickHouse は表示されません。HyperDX UI にアクセスする
Managed ClickStack を使用する場合でも、Kubernetes クラスターにデプロイされたローカルの HyperDX インスタンスは引き続き必要です。これは、HyperDX に同梱された OpAMP サーバーによって管理されるインジェストキーを提供し、デプロイ済みの OTel collector を介した安全なインジェストを可能にするためです。この機能は、現時点では Managed ClickStack では利用できません。
ClusterIP を使用しており、デフォルトでは外部に公開されません。HyperDX UI にアクセスするには、3000 からローカルポート 8080 へポートフォワードします。インジェスト API key を取得する
ClickStack collector によってデプロイされた OTel collector へのインジェストは、インジェストキーで保護されています。Team Settings に移動し、API Keys セクションから Ingestion API Key をコピーします。この API key により、OpenTelemetry collector 経由のデータインジェストの安全性が確保されます。API key 用の Kubernetes Secret を作成する
インジェスト API key と、ClickStack Helm チャートでデプロイした OTel collector の場所を格納した ConfigMap を含む、新しい Kubernetes Secret を作成します。後続のコンポーネントはこれを使用して、ClickStack Helm チャートでデプロイした collector へのインジェストを行えるようになります。OpenTelemetry Helm リポジトリを追加する
Kubernetes のメトリクスを収集するため、標準の OTel collector をデプロイし、上記のインジェスト API key を使ってデータを ClickStack collector に安全に送信するよう設定します。これには、OpenTelemetry Helm リポジトリをインストールする必要があります。Kubernetes collector コンポーネントのデプロイ
クラスター自体と各ノードの両方からログとメトリクスを収集するには、それぞれ独自のマニフェストを持つ2つの独立したOpenTelemetry Collectorをデプロイする必要があります。提供されている2つのマニフェスト (k8s_deployment.yaml と k8s_daemonset.yaml) は連携して機能し、Kubernetesクラスターから包括的なテレメトリーデータを収集します。-
k8s_deployment.yamlは、クラスター全体のイベントとメタデータを収集する役割を持つ単一の OpenTelemetry Collector インスタンスをデプロイします。Kubernetes イベントとクラスターのメトリクスを収集し、ポッドのラベルやアノテーションを使ってテレメトリーデータを拡充します。データの重複を避けるため、この collector は 1 つのレプリカを持つスタンドアロンのデプロイメントとして実行されます。 -
k8s_daemonset.yamlは、クラスター内のすべてのノードで実行される デーモンセットベースの collector をデプロイします。これは、kubeletstats、hostmetrics、Kubernetes Attribute Processor などのコンポーネントを使用して、ノードレベルおよびポッドレベルのメトリクス に加え、コンテナーログも収集します。これらの collector はログにメタデータを付与し、OTLP エクスポーターを使用して HyperDX に送信します。
k8s_deployment.yaml
k8s_deployment.yaml
k8s_daemonset.yaml
k8s_daemonset.yaml
HyperDX で Kubernetes データを確認する
Kubernetes にデプロイしたインスタンスを使う場合も、Managed ClickStack を使う場合も、HyperDX UI にアクセスします。Managed ClickStack
Managed ClickStack
Managed ClickStack を使用している場合は、ClickHouse Cloud サービスにログインし、左側のメニューから “ClickStack” を選択するだけです。自動的に認証されるため、ユーザーを作成する必要はありません。ログ、メトリクス、トレース用のデータソースはあらかじめ作成されています。
ClickStack Open Source
ClickStack Open Source
ローカルにデプロイした HyperDX にアクセスするには、次のローカルコマンドでポートフォワードを実行し、http://localhost:8080 で HyperDX にアクセスします。
本番環境での ClickStack本番環境では、Managed ClickStack を使用していない場合、TLS を使用するイングレスの利用を推奨します。例:
/kubernetes の専用ダッシュボードに移動します。例: http://localhost:8080/kubernetesPods、Nodes、Namespaces の各タブには、それぞれデータが表示されているはずです。