要点OTel
filelog receiver を使用して、ClickStack で Kafka broker のログ (Log4j フォーマット) を収集して可視化します。デモデータセットとあらかじめ用意されたダッシュボードが含まれています。既存のKafkaとのインテグレーション
前提条件
- 稼働中の ClickStack インスタンス
- 既存の Kafka インストール環境 (バージョン 2.0 以降)
- Kafka のログファイル (
server.log、controller.logなど) へのアクセス
Kafka のログ設定を確認する
Kafka は Log4j を使用しており、ログはkafka.logs.dir システムプロパティまたは LOG_DIR 環境変数で指定されたディレクトリに書き込まれます。ログファイルの保存場所を確認してください。server.log: 一般的なブローカーのログ (起動、接続、レプリケーション、エラー)controller.log: コントローラー固有のイベント (リーダー選出、パーティションの再割り当て)state-change.log: パーティションおよびレプリカの状態遷移
Docker ベースの Kafka デプロイメント (例:
confluentinc/cp-kafka) では、デフォルトの Log4j 設定に含まれるのはコンソール appender のみで、file appender はありません。そのため、logs は stdout にしか出力されません。filelog receiver を使用するには、log4j.properties に file appender を追加するか、stdout をパイプする (例: | tee /var/log/kafka/server.log) ことで、logs をファイルにリダイレクトする必要があります。Kafka 用のカスタム OTel collector 設定を作成する
ClickStack では、カスタム設定ファイルをマウントし、環境変数を設定することで、ベースの OpenTelemetry Collector 設定を拡張できます。このカスタム設定は、HyperDX が OpAMP 経由で管理するベース設定にマージされます。以下の内容で、kafka-logs-monitoring.yaml という名前のファイルを作成します。- カスタム設定で定義するのは、新しい receiver とパイプラインだけです。プロセッサ (
memory_limiter、transform、batch) とエクスポーター (clickhouse) は、ベースの ClickStack 設定ですでに定義されているため、名前を参照するだけで済みます。 multiline設定により、スタックトレースが 1 つのログエントリとして取り込まれます。- この設定では、collector の起動時に既存のログをすべて読み込むため、
start_at: beginningを使用しています。本番環境へのデプロイでは、collector の再起動時にログを再取り込みしないよう、start_at: endに変更してください。
ClickStack でカスタム設定を読み込むように構成する
既存の ClickStack デプロイメントでカスタム collector の設定を有効にするには、次の対応が必要です。- カスタム設定ファイルを
/etc/otelcol-contrib/custom.config.yamlにマウントする - 環境変数
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yamlを設定する - collector が Kafka のログを読み取れるように、Kafka のログディレクトリをマウントする
- Docker Compose
- Docker Run (All-in-One Image)
ClickStack のデプロイメント設定を更新します。
ClickStack collector に Kafka のログファイルを読み取るための適切な権限があることを確認してください。本番環境では、読み取り専用マウント (
:ro) を使用し、最小権限の原則に従ってください。HyperDX でログを確認する
設定が完了したら、HyperDX にログインし、ログが取り込まれていることを確認します。デモデータセット
ダッシュボードと可視化
してダッシュボード設定を取得します
あらかじめ用意されたダッシュボードをインポートする
- HyperDX を開き、Dashboards セクションに移動します。
- 右上の三点メニューから「Import Dashboard」をクリックします。
- kafka-logs-dashboard.json ファイルをアップロードし、インポートを完了します。
ダッシュボードが作成され、すべての可視化が事前に設定された状態になります
デモデータセットでは、時間範囲に 2026-03-09 00:00:00 - 2026-03-10 00:00:00 (UTC) が含まれるよう設定します。トラブルシューティング
regex_parser の正規表現もそれに合わせて調整してください。
次のステップ
- 重要なイベント (ブローカー障害、レプリケーションエラー、コンシューマグループの問題) に備えてアラートを設定します
- 包括的な Kafka 監視のためにKafka メトリクスと組み合わせます
- 特定のユースケース (コントローライベント、パーティション再割り当て) 向けに追加のダッシュボードを作成します