ログエクスプローラーからダウンロードする
こちらは、コンソール上からの作業となります。クエリをいれれるので好きなようにログをフィルタリングできます。但し、こちらからのダウンロードは上限が 10,000 件となっています。上限よりもダウンロードしたい場合は次の方法を試してみてください。
ログを転送する
Cloud Loggingのシンクという機能を利用しましょう。シンクはCloud Logging がログをルーティングする方法を制御します。シンクを使用すると、ログの一部またはすべてをサポートされている宛先に転送できます。
「Cloud Logging バケット」「BigQuery データセット」「Cloud Storage バケット」「Pub/Sub」「Splunk」「Google Cloud プロジェクト」「その他のリソース」
などが宛先に上げられます。無難なのはCloud Storage バケットでしょうか?AWSでいうところのS3のようなものです。
シンクの注意点
公式にも書いてありますが、保存されるログの対象はシンクが作成された後に生成されたログだけになります。すなわち、シンクの設定が漏れているであったり、過去のログについてなにかしたいときにはシンクからはどうしようもできません。
過去のログをさかのぼって保存したい場合
こちらの記事が一番わかりやすいのでぜひこちらを参考にしてください。簡単に言えばGCPのコマンドラインツールからログをコピーすることができますというだけです。
本記事ではコマンドの抜粋だけ行いますね。
ログのコピー
$ gcloud logging copy BUCKET_ID storage.googleapis.com/CLOUD_STORAGE_BUCKET_NAME
--location=LOCATION [--log-filter=FILTER] --project=PROJECT_ID
--log-filterにはログエクスプローラーやシンクで指定するクエリをそのまま入れればokです。
ただ、ログエクスプローラーだと日付の指定はクエリで行っていないですよね。これだけ注意です。期間を指定したい場合はクエリに書き足しましょう!
例) timestamp >= "2024-04-01T15:00:00Z" timestamp <= "2024-04-30T16:00:00Z"
ログのコピーの進捗表示
$ gcloud logging operations list --location=LOCATION \
--operation-filter=request_type=CopyLogEntries \
--project=PROJECT_ID
ログのコピーのキャンセル
$ gcloud logging operations cancel OPERATION_ID \
--location=LOCATION --project=PROJECT_ID