configuring-log-export について
configuring-log-exportは、CockroachDB Cloudのログとメトリクスのエクスポートを設定するスキルです。クラウドクラスターの運用担当者向けに、AWS CloudWatch、GCP Cloud Logging、Datadog、Terraform、出力確認を扱います。
主な機能
- 01AWS CloudWatchへのログ出力設定
- 02GCP Cloud Loggingへのログ出力設定
- 03CloudWatchまたはDatadogへのメトリクス出力
- 04ログとメトリクスの出力状態確認
- 05Terraformによるログ出力設定
活用シーン
- 01クラスターのログを外部サービスへ送信
- 02SQL監査ログの出力を確認
- 03ログ欠落や出力エラーの調査
- 04ログ量の見積もりとクラウド費用の計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cockroachlabs/ cockroachdb-skills --skill configuring-log-exportインストール後、Claude Code で/configuring-log-exportを入力して読み込まれたか確認します。
同梱ファイルreferences/cloud-provider-setup.md
詳細
ログエクスポートの設定
CockroachDB Cloud クラスターのログとメトリクスのエクスポートを設定し、クラスターのログ、監査ログ、パフォーマンスメトリクスを外部の監視サービスに配信します。AWS CloudWatch、GCP Cloud Logging、および Datadog などのサードパーティーとの連携をサポートしています。
このスキルを使用するタイミング
- AWS CloudWatch または GCP Cloud Logging へのログエクスポートを設定するとき
- CloudWatch または Datadog へのメトリクスエクスポートを設定するとき
- SQL 監査ログが外部のシンクにエクスポートされていることを確認するとき
- ログエクスポートのエラーやログの欠落をトラブルシューティングするとき
- CockroachDB のログ量に基づいて、CloudWatch またはログサービスのコストを見積もるとき
- Terraform を使用してログエクスポートを設定するとき
前提条件
- CockroachDB Cloud Advanced プラン — ログエクスポートは Basic プランまたは Standard プランでは利用できません
- ccloud CLI が Cluster Admin ロールで認証されていること
- クラウドプロバイダーの設定:
- AWS: CloudWatch Logs グループが作成済みで、CockroachDB Cloud にクロスアカウントアクセスを許可する IAM ロールがあること
- GCP: Cloud Logging API が有効で、Logs Writer ロールを持つサービスアカウントがあること
- クラスター ID:
ccloud cluster listで確認できます
アクセスを確認します:
ccloud auth whoami
ccloud cluster info <cluster-name> -o json
# Look for "plan": "ADVANCED"
設定の選択
続行する前に、ユーザーの環境に該当するエクスポート先を確認してください。該当するオプションを尋ね、以下のうち該当するセクションだけに従います。
選択 1 — ログのエクスポート先:
- AWS CloudWatch: クラスターが AWS 上で実行されており、ログを CloudWatch Logs に送信する場合に使用します。IAM のクロスアカウントロールを設定する必要があります。
- GCP Cloud Logging: クラスターが GCP 上で実行されている場合に使用します。Logs Writer ロールを持つサービスアカウントが必要です。
選択 2 — メトリクスのエクスポート先:
- CloudWatch: メトリクスを AWS CloudWatch に送信する場合に使用します。
cloudwatch:PutMetricData権限を持つ IAM ロールが必要です。 - Datadog: メトリクスを Datadog に送信する場合に使用します。Datadog API キーとサイトが必要です。
- スキップ: 現時点ではメトリクスをエクスポートする必要はありません。
手順
1. 現在のログエクスポート設定を確認する
# Check if log export is currently configured
ccloud cluster info <cluster-name> -o json
# Look for "log_export_config" in the output
2. AWS CloudWatch へのログエクスポートを設定する
このセクションは、選択 1 でユーザーが AWS CloudWatch を選んだ場合にのみ実行します。GCP Cloud Logging を使用する場合は、手順 3 に進みます。
2.1 CloudWatch ロググループを作成する
# Create a log group in AWS (if it doesn't exist)
aws logs create-log-group \
--log-group-name cockroachdb-<cluster-name> \
--region <aws-region>
# Set retention policy (recommended)
aws logs put-retention-policy \
--log-group-name cockroachdb-<cluster-name> \
--retention-in-days 90 \
--region <aws-region>
2.2 CockroachDB Cloud 用の IAM ロールを作成する
完全な IAM ロールポリシーについては、クラウドプロバイダー設定のリファレンスを参照してください。
IAM ロールには、次の要件があります。
- CockroachDB Cloud の AWS アカウントを許可されたプリンシパルとして信頼する
logs:CreateLogStream、logs:PutLogEvents、logs:DescribeLogGroups、logs:DescribeLogStreamsの権限を付与する- 特定のロググループにスコープを限定する
2.3 ログエクスポートを有効にする
# Enable log export to CloudWatch
ccloud cluster log-export create <cluster-id> \
--log-group-name cockroachdb-<cluster-name> \
--auth-principal <iam-role-arn> \
--type AWS_CLOUDWATCH \
--region <aws-region>
3. GCP Cloud Logging へのログエクスポートを設定する
このセクションは、選択 1 でユーザーが GCP Cloud Logging を選んだ場合にのみ実行します。AWS CloudWatch を使用する場合はスキップします。
3.1 Cloud Logging API を有効にする
gcloud services enable logging.googleapis.com
3.2 CockroachDB Cloud のサービスアカウントにアクセス権を付与する
# Get the CockroachDB Cloud service account from ccloud cluster info
# Grant Logs Writer role
gcloud projects add-iam-policy-binding <gcp-project-id> \
--member="serviceAccount:<cockroachdb-service-account>" \
--role="roles/logging.logWriter"
3.3 ログエクスポートを有効にする
ccloud cluster log-export create <cluster-id> \
--auth-principal <gcp-project-id> \
--type GCP_CLOUD_LOGGING
4. メトリクスエクスポートを設定する
選択 2 でユーザーが「スキップ」を選んだ場合は、このセクションをスキップします。選択したメトリクスのエクスポート先に応じて、該当するサブセクション(4.1 または 4.2)のみを実行します。
メトリクスエクスポートでは、CockroachDB のパフォーマンスメトリクスを CloudWatch または Datadog に送信します。
4.1 CloudWatch へのメトリクスエクスポート
ccloud cluster metric-export create cloudwatch <cluster-id> \
--role-arn <iam-role-arn> \
--target-region <aws-region>
メトリクスエクスポート用の IAM ロールには、cloudwatch:PutMetricData 権限が必要です。
4.2 Datadog へのメトリクスエクスポート
ccloud cluster metric-export create datadog <cluster-id> \
--api-key <datadog-api-key> \
--site <datadog-site>
Datadog のサイト値: datadoghq.com(US)、datadoghq.eu(EU)、us3.datadoghq.com(US3)、us5.datadoghq.com(US5)
5. ログとメトリクスのエクスポートを確認する
# Check log export status
ccloud cluster log-export list <cluster-id> -o json
# Status should be ENABLED
# Check metric export status
ccloud cluster metric-export list <cluster-id> -o json
CloudWatch でログの配信を確認する:
# Check for recent log streams
aws logs describe-log-streams \
--log-group-name cockroachdb-<cluster-name> \
--order-by LastEventTime \
--descending \
--limit 5 \
--region <aws-region>
# Tail recent log events
aws logs tail cockroachdb-<cluster-name> \
--since 1h \
--region <aws-region>
監査ログがエクスポートされていることを確認する:
クラスターで SQL 監査ログが有効になっている場合、監査ログはログエクスポートに含まれます。確認するには:
-- Check audit logging is enabled
SHOW CLUSTER SETTING sql.log.admin_audit.enabled;
SHOW CLUSTER SETTING sql.log.user_audit;
監査ログが有効になっているにもかかわらず、監査イベントが CloudWatch に表示されない場合は、次の点を確認してください:
- ログエクスポートのステータスが ENABLED である
- IAM ロールに適切な権限がある
- ロググループ名が設定済みのエクスポート先と一致している
- 初回のログ配信まで 5~10 分待つ
6. Terraform でログエクスポートを設定する
resource "cockroach_log_export_config" "main" {
id = cockroach_cluster.main.id
auth_principal = "<iam-role-arn>"
log_name = "cockroachdb-${cockroach_cluster.main.name}"
type = "AWS_CLOUDWATCH"
region = "<aws-region>"
}
resource "cockroach_metric_export_cloudwatch_config" "main" {
id = cockroach_cluster.main.id
role_arn = "<iam-role-arn>"
target_region = "<aws-region>"
}
既知の Terraform の問題: ログエクスポートと CMEK を同じ terraform apply でクラスターと同時に作成すると、競合状態が発生することがあります。まずクラスターを適用し、その後の適用でログエクスポートと CMEK の設定を追加してください。
安全性に関する考慮事項
| 影響の種類 | 重大度 | 推奨事項 |
|---|---|---|
| ログエクスポートの有効化 | 低 | クラスターの動作への影響はありません |
| ログエクスポートの無効化 | 低 | ログ配信は停止しますが、クラスターには影響しません |
| IAM の設定ミス | 中 | ログエクスポートはエラーを通知せずに失敗します。配信の途切れがないか監視してください |
| コストへの影響 | 中 | 大量のログを生成するクラスターでは、CloudWatch/ログ記録のコストが大きくなる可能性があります |
| Terraform の競合状態 | 中 | ログ/CMEK の設定より先にクラスターを作成してください |
コスト計画:
- CockroachDB Cloud では、クエリ量と監査設定に応じて、ノードあたり 1 日に 1~10 GB のログが生成されることがあります
- CloudWatch Logs の料金:取り込みは約 $0.50/GB、ストレージは約 $0.03/GB/月(リージョンによって異なります)
- ストレージコストを抑えるため、ログ保持ポリシーを有効にしてください
- 監査ログを有効にするとログ量が大幅に増加するため、それを考慮して計画してください
次のことは行わないでください:
- ログエクスポートが有効な状態で CloudWatch のロググループを削除する(配信エラーが発生します)
- 先にログエクスポートを無効にせず、IAM 権限を取り消す
- ログ量の増加を考慮せずに、クラスター全体の SQL 監査ログを有効にする
ロールバック
# Disable log export
ccloud cluster log-export delete <cluster-id>
# Disable metric export
ccloud cluster metric-export delete cloudwatch <cluster-id>
ccloud cluster metric-export delete datadog <cluster-id>
ログエクスポートは、いつでも同じ設定または異なる設定で再度有効にできます。過去のログは再送信されません。再度有効にした後に新しく生成されたログのみがエクスポートされます。
参考資料
スキルの参考資料:
関連スキル:
- 監査ログの設定 — SQL 監査ログを有効にします(監査ログをエクスポートに表示するには有効化が必要です)
- クラウドクラスターのセキュリティ監査 — セキュリティ態勢の包括的な監査を実行します
CockroachDB 公式ドキュメント: