こんにちは、SREグループの萩原です。
「Chatwork」のサービスにはメッセージデータの永続化を担う Falcon というサブシステムがあります。
今年に入って、その中のコンポーネントである Kafka をマネージドサービスにリプレースする機運が高まってきたことから、Confluent 社が提供している Confluent Cloud Kafka について調査をすすめています。
その中のひとコマを紹介します。
今回は、Confluent Cloud の audit log を Datadog Logs に流し込むことができるようにしてみます。
ドキュメントによると、audit log は自身のアカウントではなく、Confluent 社が提供する専用アカウントにアクセスして取得する必要があるようです。
そして、Confluent 社が提供する専用アカウントに関する情報は CLI 経由で確認する必要があるということなので、順を追って確認していきます。
ドキュメントによると、CLI での操作が必要なため、自アカウントにログインします。
$ confluent login
ログイン手続きが完了した状態で以下のコマンドを実行することで、自アカウントの audit log を提供している kafka クラスタの情報を確認することができます。
$ confluent audit-log describe +-----------------+----------------------------+ | Cluster | lkc-test25 | | Environment | env-abc123 | | Service Account | sa-exampl | | Topic Name | confluent-audit-log-events | +-----------------+----------------------------+
audit log 自体が kafka クラスタのトピックとして提供されているようです。 実際にトピックにアクセスするためのサービスアカウントも合わせて確認できます。
ただし、これだけではトピックデータにアクセスすることができません。
トピックデータに収容されているログを取得するためはサービスアカウントの API key を作成する必要があります。
まず、デフォルトの環境とクラスタを audit log 用の設定に切り替えます。
$ confluent environment use env-abc123 Using environment env-abc123
$ confluent kafka cluster use lkc-test25 Set Kafka cluster lkc-test25 as the active cluster for environment env-abc123
以下のコマンドを実行することで、サービスアカウント sa-exampl のための API key を作成することができます。
$ confluent api-key create --service-account sa-exampl --resource lkc-test25
コンソールに API key の Id と Secret が表示されるので、安全な場所にメモしておきます。
あらためて、以下のコマンドを実行することでクラスタ lkc-test25 に関連付けられている API key の一覧を確認することができます。
$ confluent api-key list --resource lkc-test25 Current | Key | Description | Owner | Owner Email | Resource Type | Resource | Created ----------+------------------+-------------+-----------+----------------------------+---------------+------------+----------------------- | ABCD1EXAMPLE2XYZ | | sa-exampl | <auditlog service="" account=""> | kafka | lkc-test25 | 2025-06-11T00:14:51Z
Datadog のインテグレーション設定画面で audit log を提供するクラスタのエンドポイント情報を求められるので、それも確認しておきます。
以下のコマンドを実行することで audit log を提供するクラスタの情報を取得することができます。
$ confluent kafka cluster describe +----------------------+----------------------------------------------------------+ | Current | true | | ID | lkc-test25 | | Name | _confluent_audit_log_cluster | | Type | STANDARD | | Ingress Limit (MB/s) | 250 | | Egress Limit (MB/s) | 750 | | Storage | Infinite | | Cloud | aws | | Region | us-west-2 | | Availability | multi-zone | | Status | UP | | Endpoint | SASL_SSL://pkc-h2smpl.us-west-2.aws.confluent.cloud:9092 | | REST Endpoint | https://pkc-h2smpl.us-west-2.aws.confluent.cloud:443 | | Topic Count | 2 | +----------------------+----------------------------------------------------------+
コマンドの実行結果より、audit log を提供するクラスタのエンドポイントが pkc-h2smpl.us-west-2.aws.confluent.cloud:9092 であることを確認できました。
必要な情報が揃い Datadog 側のインテグレーション設定を行う準備が整いました。
- ① サービスアカウントの AKI-key Id
- ② サービスアカウントの AKI-key Secret
- ③ audit log を提供するクラスタのエンドポイント
Datadog 側のインテグレーション設定は簡単です。
https://app.datadoghq.com/integrations?search=confluent%20cloud%20audit%20log
インテグレーション設定画面であらかじめ準備しておいた項目を埋めて、✔マークをクリックすれば設定完了です。
Datadog logs 画面のフィルタ条件で source:confluent-cloud-audit-logs を指定するすることで Confluent Cloud の audit log を確認できます。
実際に Datadog Logs の画面でフィルタ条件を指定して表示させた結果
いい感じにログを取得できているようですね。
これで、Datadog で Confluent Cloud の audit log をモニタリングして、異常を検知したり通知したりするための準備が整いました。
その辺りの設定については、またの機会に・・・
最後までお読みいただきありがとうございました。
お知らせ
最後にお知らせです。
7月11日、12日に開催される「SRE NEXT 2025」にプラチナムスポンサーとしてブース出展します🎉
二日目の12日には13:30〜13:50にTrack Cにて、「『Chatwork』のEKS環境を支えるhelmfileを使用したマニフェスト管理術」というタイトルでスポンサーセッションも行いますのでぜひご参加ください!
SRE NEXT 2025 詳細
- 公式サイト:https://sre-next.dev/2025/
- 会場:TOC有明
- 日時:2025年7月11日(金)、12(土)