Kubernetesの監視
このガイドでは、Kubernetes システムからログやメトリクスを収集し、ClickStack に送信して可視化および分析を行う方法を説明します。デモデータとして、オプションで公式の Open Telemetry デモの ClickStack フォークを使用します。
前提条件
このガイドを利用するには、以下の条件を満たす必要があります。
- Kubernetes クラスター(推奨バージョンは v1.20 以上)で、ClickHouse 用に少なくとも 32 GiB の RAM と 100 GB のディスクスペースが 1 ノードに利用可能であること。
- Helm v3 以上
kubectl
がクラスターと対話できるように設定されていること。
デプロイオプション
以下のいずれかのデプロイオプションを使用して、このガイドに従うことができます。
-
セルフホスト: Kubernetes クラスター内で ClickStack を完全にデプロイします。これには以下が含まれます。
- ClickHouse
- HyperDX
- MongoDB(ダッシュボードの状態と構成に使用)
-
クラウドホスト: ClickHouse Cloud を使用し、HyperDX は外部で管理されます。これにより、クラスター内で ClickHouse や HyperDX を実行する必要がなくなります。
アプリケーショントラフィックをシミュレートするために、オプションで OpenTelemetry Demo Application の ClickStack フォークをデプロイできます。これにより、ログ、メトリクス、およびトレースを含むテレメトリデータが生成されます。すでにクラスターでワークロードが実行中の場合は、このステップをスキップし、既存のポッド、ノード、およびコンテナを監視できます。
OpenTelemetry デモのデプロイ (オプション)
この ステップはオプションであり、監視する既存のポッドがないユーザー向けに設計されています。Kubernetes 環境に既存のサービスをデプロイしているユーザーはこのデモをスキップできますが、このデモにはトレースとセッションリプレイデータを生成する計測されたマイクロサービスが含まれているため、ユーザーは ClickStack のすべての機能を探索できます。
以下は、観測可能性のテストと計測を示すために調整された OpenTelemetry デモアプリケーションスタックの ClickStack フォークを Kubernetes クラスター内にデプロイします。これには、バックエンドマイクロサービス、負荷生成器、テレメトリパイプライン、サポートインフラストラクチャ(例:Kafka、Redis)、および ClickStack との SDK 統合が含まれます。
すべてのサービスは otel-demo
ネームスペースにデプロイされます。各デプロイメントには以下が含まれます。
- トレース、メトリクス、ログ用の OTel および ClickStack SDK による自動計測。
- すべてのサービスが、
my-hyperdx-hdx-oss-v2-otel-collector
OpenTelemetry コレクター(未デプロイ)に、その計測データを送信します。 - リソースタグの転送により、環境変数
OTEL_RESOURCE_ATTRIBUTES
を介してログ、メトリクス、トレースを相関させます。
デモのデプロイ後、すべてのポッドが正常に作成され、Running
状態であることを確認します。
Demo Architecture
デモは、gRPCおよびHTTPを介して相互に通信する異なるプログラミング言語で書かれたマイクロサービスと、Locustを使用してユーザートラフィックを偽装する負荷発生器で構成されています。このデモの元のソースコードは、ClickStackの計測を使用するように変更されています。

クレジット: https://opentelemetry.io/docs/demo/architecture/
デモの詳細については以下を参照してください:
ClickStack Helm チャートリポジトリの追加
ClickStack をデプロイするには、公式 Helm チャートを使用します。
これには、HyperDX Helm リポジトリを追加する必要があります。
ClickStack のデプロイ
Helm チャートをインストールすると、ClickStack をクラスターにデプロイできます。ClickHouse と HyperDX を Kubernete 環境内で実行するか、ClickHouse Cloud を使用して HyperDX を管理サービスとして利用することができます。
セルフマネージドデプロイ
以下のコマンドは、otel-demo
ネームスペースに ClickStack をインストールします。この helm チャートは以下をデプロイします:
- ClickHouse インスタンス
- HyperDX
- OTel コレクターの ClickStack ディストリビューション
- HyperDX アプリケーション状態のストレージ用 MongoDB
Kubernetes クラスターの設定に応じて、storageClassName
を調整する必要があるかもしれません。
OTel デモをデプロイしないユーザーは、適切なネームスペースを選択してこれを修正できます。
このチャートは ClickHouse と OTel コレクターもインストールします。プロダクションでは、ClickHouse および OTel コレクターのオペレーターを使用することや、ClickHouse Cloud を利用することをお勧めします。
ClickHouse と OTel コレクターを無効にするには、次の値を設定します:
ClickHouse Cloud を使用
ClickHouse Cloud を使用する場合は、ClickStack をデプロイし、含まれる ClickHouse を無効にすることができます。
このチャートは現在、常に HyperDX と MongoDB の両方をデプロイします。これらのコンポーネントは代替的なアクセスパスを提供しますが、ClickHouse Cloud 認証には統合されていません。これらのコンポーネントは、このデプロイメントモデルの管理者向けに設計されており、デプロイされた OTel コレクターを介してデータを取り込むために必要なセキュアな取り込みキーへのアクセスを提供しますが、エンドユーザーに対しては公開されるべきではありません。
デプロイ状況を確認するには、以下のコマンドを実行し、すべてのコンポーネントが Running
状態であることを確認します。ClickHouse Cloud を使用するユーザーにとっては、ClickHouse はここに表示されません。
HyperDX UI にアクセス
ClickHouse Cloud を使用している場合でも、Kubernetes クラスターにデプロイされたローカルの HyperDX インスタンスが依然として必要です。これは、HyperDX にバンドルされた OpAMP サーバーによって管理される取り込みキーを提供し、デプロイされた OTel コレクターを介してのセキュアな取り込みを可能にします - これは現在 ClickHouse Cloud ホスティングバージョンには利用できない機能です。
セキュリティのため、このサービスは ClusterIP
を使用し、デフォルトで外部には公開されません。
HyperDX UI にアクセスするには、ポートフォワードを使用して 3000 ポートからローカルポート 8080 に接続します。
http://localhost:8080 に移動して HyperDX UI にアクセスします。
ユーザーを作成し、複雑さの要件を満たすユーザー名とパスワードを提供します。

API キー Kubernetes シークレットの作成
取り込み API キーと、ClickStack helm チャートでデプロイされた OTel コレクターの場所を含むコンフィグマップを持つ新しい Kubernetes シークレットを作成します。後のコンポーネントは、このシークレットを使用して ClickStack Helm チャートでデプロイされたコレクターへの取り込みを許可します。
取り込み API キーを考慮して OpenTelemetry デモアプリケーションポッドを再起動します。
デモサービスからのトレースとログデータが HyperDX に流れ始めるはずです。

OpenTelemetry Helm リポジトリの追加
Kubernetes のメトリックを収集するために、標準の OTel コレクターをデプロイし、上記の取り込み API キーを使用して ClickStack コレクターにデータを安全に送信するように設定します。
これには、OpenTelemetry Helm リポジトリをインストールする必要があります。
Kubernetes コレクターコンポーネントのデプロイ
クラスターそのものと各ノードからログやメトリクスを収集するために、2 つの別々の OpenTelemetry コレクターをデプロイする必要があります。それぞれ独自のマニフェストを持つ 2 つのマニフェスト - k8s_deployment.yaml
と k8s_daemonset.yaml
- は、Kubernetes クラスターから包括的なテレメトリデータを収集するために協力します。
-
k8s_deployment.yaml
は、クラスター全体のイベントとメタデータを収集する 単一の OpenTelemetry コレクターインスタンス をデプロイします。これにより、Kubernetes イベント、クラスターのメトリクスを収集し、ポッドラベルと注釈でテレメトリデータを強化します。このコレクターは、重複データを避けるために、単一のレプリカでスタンドアロンデプロイメントとして実行されます。 -
k8s_daemonset.yaml
は、クラスター内のすべてのノードで実行される DaemonSet ベースのコレクター をデプロイします。これにより、ノードレベルおよびポッドレベルのメトリクス、およびコンテナログが収集され、kubeletstats
、hostmetrics
、および Kubernetes 属性プロセッサのようなコンポーネントを使用します。これらのコレクターは、メタデータでログを強化し、OTLP エクスポーターを使用して HyperDX に送信します。
これらのマニフェストを組み合わせることで、インフラストラクチャからアプリケーションレベルのテレメトリに至るまで、クラスター全体の観測可能性を実現し、強化されたデータを ClickStack に送信して集中分析を行うことができます。
まず、デプロイメントとしてコレクターをインストールします。
k8s_deployment.yaml
次に、ノードおよびポッドレベルのメトリクスとログのためにコレクターを DaemonSet としてデプロイします。
k8s_daemonset.yaml
k8s_daemonset.yaml
HyperDX での Kubernetes データの探索
HyperDX UI に移動します - Kubernetes にデプロイされたインスタンスまたは ClickHouse Cloud を介して。
ClickHouse Cloud を使用している場合は、単に ClickHouse Cloud サービスにログインし、左メニューから「HyperDX」を選択します。自動的に認証され、ユーザーを作成する必要はありません。 データソースを作成するように求められたら、作成モデル内のすべてのデフォルト値を保持し、 トレースおよびメトリクス用のデータソースも作成する必要があります。 たとえば、トレースおよび OTel メトリクス用のソースを作成するには、ユーザーはトップメニューから ここから、必要なソースタイプを選択し、次に適切なテーブルを選択します。たとえば、トレースの場合は ClickStack 内の異なるデータソース(ログやトレースなど)は互いに相関させることができます。これを有効にするには、各ソースに追加の設定が必要です。たとえば、ログソースでは対応するトレースソースを指定でき、その逆も可能です。「相関ソース」の詳細を参照してください。 ローカルにデプロイされた HyperDX にアクセスするには、ローカルコマンドを使用してポートフォワードを行い、http://localhost:8080 で HyperDX にアクセスします。 プロダクション環境では、ClickHouse Cloud に HyperDX を使用しない場合、TLS を使用したイングレスを使用することをお勧めします。たとえば:ClickHouse Cloud を使用
otel_logs
の値を Table フィールドに入力してログソースを作成します。他のすべての設定は自動的に検出され、新しいソースを保存
をクリックできます。新しいソースを作成
を選択できます。otel_traces
テーブルを選択します。すべての設定は自動的に検出されるはずです。セルフマネージドデプロイを使用
Kubernetes データを探索するには、専用のプレゼンテーションダッシュボード /kubernetes
に移動します。例:http://localhost:8080/kubernetes。
各タブ、Pods、Nodes、および Namespaces にはデータが表示されているはずです。
