Stackdriver LoggingのBigQuery関連ログをBigQueryへエクスポートする方法
BigQueryのクエリ履歴を保存しておき、後々調査できるようにするために、Stackdriver LoggingのBigQuery関連ログをBigQueryにエクスポートする方法をまとめました。
BigQueryのデータセットを作成
Stackdriver Loggingからエクスポートしたログテーブルを格納するためのデータセットを作成しておきます。
シンクの作成
以下コマンドで、エクスポートするログエントリのフィルタとエクスポート先を設定するシンクを作成します。
下記コマンドではログのresource-typeをbigquery_resourceで絞っています。
gcloud logging sinks create <sink名> bigquery.googleapis.com/projects/<project-id>/datasets/<dataset> --log-filter='resource.type="bigquery_resource"'
シンクの確認
コンソール画面のオペレーションロギング → ログルーターからシンクが作成されたことを確認します。
また、シンクの詳細を表示し、writerIdentifyからサービスアカウントを表示し、コピーしておきます。
以下コマンドでも同様の確認ができます。
gcloud logging sinks list
gcloud logging sinks describe <sink名>
BigQueryのデータセットの権限設定
先ほど作成したデータセットへサービスアカウントが書込みをできるように権限設定を行います。
BigQueryのデータセットの権限設定画面で、先ほどコピーしたサービスアカウントを貼り付け、BigQueryデータ編集者とし、追加を行います。
テーブルにデータが書き込まれていることを確認
テーブルにデータが書き込まれるまで少し時間がかかります。
データが書き込まれたら、例として以下のSQLで、どのアカウントがどのクエリを発行したかを確認できます。
SELECT
protopayload_auditlog.authenticationInfo.principalEmail AS email,
protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobConfiguration.query AS query
FROM `<project-id>.<dataset>.cloudaudit_googleapis_com_data_access_20201012` LIMIT 1000
参考
BigQuery audit logs overview
ログビューアによるエクスポート
BigQueryでクソクエリを検知する
Stackdriver Loggingのログを失う前にエクスポートしておく方法
Author And Source
この問題について(Stackdriver LoggingのBigQuery関連ログをBigQueryへエクスポートする方法), 我々は、より多くの情報をここで見つけました https://qiita.com/toshi772/items/f7d481427e3bcda9d2b9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .