[A-00175] ログシンクでログをストレージに出力する
ログシンク機能を使用してCloud Storageにログを出力してみます。
・gcloudコマンドでログシンクを作成する
gcloudコマンドを使用して、cloud storageにログを出力します。
まずは適当なストレージバケットを作成します。
gsutil mb gs://test-log-sink-jp-20240101
次に下記コマンドでbucketをdestinationしてログシンクを作成します。
gcloud logging sinks create test-sink storage.googleapis.com/test-log-sink-jp-20240101 \
--log-filter='logName="projects/<project-id>/logs/matched"' --description="Test sink"
上記を実行すると下記のように、ログシンクのサービスアカウントに権限を付与する内容のメッセージが出力されます。その場合、ロールを付与します。
Created [https://logging.googleapis.com/v2/projects/xxxx/sinks/test-sink].
Please remember to grant `serviceAccount:service-xxxx@gcp-sa-logging.iam.gserviceaccount.com` the Storage Object Creator role on the bucket.
gcloud projects add-iam-policy-binding xxxx --member="serviceAccount:service-xxxx@gcp-sa-logging.iam.gserviceaccount.com" --role=roles/storage.objectCreator
上記が完了すると下記の通り、ログルーター画面にてログシンクが作成されていることが確認できます。
Cloud storageへのシンクは1時間ごとに反映・作成されるようです。内容を確認したい場合、1時間ほど放置してから再度バケットを確認してください。
次のコマンドでシンクを削除します。
gcloud logging sinks delete test-sink
作成したバケットも削除する場合は下記のコマンドを実行します。
gsutil rm -r gs://test-log-sink-jp-20240101
・bigqueryにログシンクを作成する
bigqueryにログシンクを作成してみます。
まずはデータセットを作成します。
bq --location=asia-northeast1 mk \
--dataset \
--description="for log-sink" \
<project-id>:testlogsink
次にログシンクを作成します。
gcloud logging sinks create my-sink bigquery.googleapis.com/projects/project-id/datasets/testlogsink \
--log-filter='logName="projects/project-id/logs/matched"' --description="test sink"
こちらも下記の通り、サービスアカウントにロール付与してとのアラートが実行ログに表示されますので同様にロールを付与します。
Please remember to grant `serviceAccount:service-xxxx@gcp-sa-logging.iam.gserviceaccount.com` the BigQuery Data Editor role on the dataset.
gcloud projects add-iam-policy-binding project-id --member="serviceAccount:service-xxxxx@gcp-sa-logging.iam.gserviceaccount.com" --role=roles/bigquery.dataEditor
上記の作業を完了し、適当にプロジェクト上で何か作成(VM, pubsubなど)してみるとログを格納したテーブルが自動で作成されます。
・Appendix
公式サイトはこちら
https://cloud.google.com/logging/docs/export/configure_export_v2?hl=ja#gcloud_3
コメントを残す