[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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*