本頁說明如何手動將已儲存在 Cloud Logging 記錄值區中的記錄項目,複製到 Cloud Storage 值區。複製作業不需要記錄值區和 Cloud Storage 值區位於同一個 Google Cloud 專案。
您可能基於下列原因,需要將記錄檔項目從記錄檔 bucket 複製到 Cloud Storage bucket:
- 如果您忘記在記錄項目儲存至 Cloud Logging 前,將其路徑設定為 Cloud Storage。
- 與 Logging 外部的稽核人員共用記錄項目。
- 使用 Cloud Storage 中的指令碼分析記錄檔項目。
將記錄項目複製到 Cloud Storage 後,這些項目仍會保留在複製來源的記錄檔值區中。
複製作業不會取代接收器,接收器會自動將符合納入和排除篩選條件的所有傳入記錄項目,傳送至預先選取的支援儲存空間目的地,包括 Cloud Storage 值區。您無法使用接收器回溯傳送記錄。如果您事先知道要將記錄項目儲存在 Cloud Storage bucket 中,請使用接收器。
如要複製記錄檔,然後管理及監控作業,請使用 Google Cloud CLI。
限制
複製記錄項目時,請注意下列限制:
您只能將記錄檔複製到 Cloud Storage 值區,無法複製到其他目的地。
您無法從已設定 CMEK 的記錄檔 bucket 複製記錄。
事前準備
開始複製記錄前,請先完成下列步驟:
- 確認您使用的是最新版 gcloud CLI。如要瞭解如何安裝或更新 gcloud CLI,請參閱「管理 Google Cloud CLI 元件」。
-
如要取得複製記錄項目所需的權限,請要求管理員在包含要複製記錄值區的專案中,授予您下列 IAM 角色:
-
如要執行複製作業:
Logging 管理員 (
roles/logging.admin
) -
如要查看及管理複製作業的狀態:
「記錄設定寫入者」 (
roles/logging.configWriter
)
-
如要執行複製作業:
Logging 管理員 (
-
如要取得將記錄項目寫入 Cloud Storage 所需的權限,請要求管理員為您授予包含 Cloud Storage 值區的專案的儲存空間物件建立者 (
roles/storage.objectCreator
) IAM 角色。
複製記錄項目
記錄功能只會複製複製作業開始時儲存在記錄檔 bucket 中的記錄項目。如果記錄項目是在複製作業開始後儲存到記錄 bucket,就不會複製到 Cloud Storage。
如要將記錄檔項目複製到 Cloud Storage,您必須知道下列資訊:
- 要複製的記錄值區 ID 和位置。
如要擷取記錄 bucket ID 和位置,請使用 gcloud CLI 指令
gcloud logging buckets list
。 - 要複製到的 Cloud Storage bucket 名稱。如要瞭解如何擷取 Cloud Storage bucket 名稱,請參閱「取得 Cloud Storage bucket 資訊」。
- 您要複製的記錄項目篩選器。
如要複製記錄項目,請執行 gcloud logging copy
指令:
gcloud logging copy BUCKET_ID storage.googleapis.com/CLOUD_STORAGE_BUCKET_NAME \
--location=LOCATION --log-filter='FILTER' --project=PROJECT_ID
執行上一個指令前,請先完成下列步驟:
- 請將 BUCKET_ID 替換為記錄 bucket 的名稱。
- 請將 CLOUD_STORAGE_BUCKET_NAME 改成您的 Cloud Storage 值區名稱。
- 將 LOCATION 替換為記錄 bucket 的位置。
(選用):將 FILTER 替換為篩選器,定義要複製哪些記錄。
如果省略
--log-filter
標記,系統會將記錄 bucket 中的所有記錄項目複製到 Cloud Storage bucket。將 PROJECT_ID 替換為專案 ID。 Google Cloud 如果有效 gcloud CLI 設定已設為正確的 Google Cloud 專案,可以省略這個標記。
範例指令:
gcloud logging copy my-log-bucket storage.googleapis.com/my-gcs-bucket \
--location=global --log-filter='timestamp > "2024-07-18T10:00:00.0Z"' \
--project=my-project
這個指令會建立長期執行作業,在背景執行,並傳回複製作業的名稱和記錄 bucket 的位置:
name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
複製作業的位置與您要複製的記錄值區位置相同。
查看及管理複製作業
您可以使用 gcloud logging operations
指令查看及管理複製作業,包括列出、查看及取消作業。
執行下列指令時,您必須指定作業位置。 使用記錄檔 bucket 的位置。如要瞭解如何找出記錄值區的位置,請參閱「查看值區詳細資料」。
列出複製作業
您可以列出近期複製作業,包括已排定、執行中、已完成、失敗和已取消的作業。結果中會顯示近期複製作業,最多可保留 30 天。
如要列出複製作業,請執行下列指令:
gcloud logging operations list --location=LOCATION \
--operation-filter=request_type=CopyLogEntries \
--project=PROJECT_ID
執行上一個指令前,請先完成下列步驟:
- 將 LOCATION 替換為要複製的記錄 bucket 位置。
- 將 PROJECT_ID 替換為您的 Google Cloud 專案 ID。
這項指令會傳回長期執行作業的相關資訊,包括作業 ID:
projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
查看複製作業的狀態
您可以擷取複製作業的狀態和其他中繼資料, 包括:
startTime
:表示作業建立時間的時間戳記。endTime
:表示作業完成的時間戳記。state
:作業狀態 (已排定、執行中、已取消、失敗或成功)。cancellation
:使用者是否要求取消作業。progress
:作業的預估進度 (0 到 100%)。destination
:作業要將記錄複製到其中的 Cloud Storage bucket 名稱。filter
:指定要複製哪些記錄項目的篩選器。name
:作業複製記錄時所用的記錄值區名稱。logEntriesCopiedCount
:作業成功複製到 Cloud Storage 值區的記錄項目數。
請注意,並非所有列出的中繼資料欄位都適用於每個複製作業。
舉例來說,如果複製作業仍在執行中,endtime
中繼資料就不會套用至該作業。舉例來說,如果執行 gcloud logging copy
指令時未使用 --log-filter=FILTER
旗標,則 filter
中繼資料不會套用至作業。
如要擷取複製作業的相關資訊,請執行下列指令:
gcloud logging operations describe OPERATION_ID \
--location=LOCATION --project=PROJECT_ID
執行上一個指令前,請先完成下列步驟:
- 將 OPERATION_ID 替換為作業 ID。
- 將 LOCATION 替換為要複製的記錄 bucket 位置。
- 將 PROJECT_ID 替換為您的 Google Cloud 專案 ID。
這項指令會傳回複製作業的中繼資料。舉例來說,以下是進行中作業的輸出內容:
done: false
metadata:
`@type`: type.googleapis.com/google.logging.v2.CopyLogEntriesMetadata
progress: 75
destination: storage.googleapis.com/my-storage-bucket-1
source: projects/my-test-project/locations/us-central1/buckets/my-logging-bucket-2
verb: copy
startTime: `2024-05-23T10:52:40.039751Z`
state: OPERATION_STATE_RUNNING
name: projects/my-test-project/locations/us-central1/buckets/my-logging-bucket-2
</pre>
取消複製作業
您可以取消進行中的複製作業。如果您取消複製作業,作業取消前複製的所有記錄檔項目仍會保留在 Cloud Storage 值區中。
取消複製作業後,記錄服務會先完成所有進行中的程序,再完成取消作業。因此取消作業後,系統可能仍會將部分記錄項目複製到 Cloud Storage。
如要取消複製作業,請執行下列指令:
gcloud logging operations cancel OPERATION_ID \
--location=LOCATION --project=PROJECT_ID
執行上一個指令前,請先完成下列步驟:
- 將 OPERATION_ID 替換為作業 ID。
- 將 LOCATION 替換為要複製的記錄 bucket 位置。
- 將 PROJECT_ID 替換為您的 Google Cloud 專案 ID。
在 Cloud Storage 中查看記錄
如要查看及瞭解複製到 Cloud Storage 的記錄,請參閱「查看已路由至 Cloud Storage 的記錄」。
配額與限制
無論複製的資料量多寡,所有複製作業至少都需要一小時才能完成。
如要複製大量資料 (例如數 PB),請使用 --filter
旗標中的 timestamp
欄位,將複製作業分割成多個作業。
如果記錄項目的保留期限已過,複製指令就無法複製。
定價
Cloud Logging 不會收取將記錄檔轉送至支援目的地的費用,但目的地可能會收取費用。除了 _Required
記錄檔值區外,如果將記錄檔串流至記錄檔值區,或儲存時間超過記錄檔值區的預設保留期限,Cloud Logging 就會收取費用。
Cloud Logging 不會收取複製記錄、建立記錄範圍或分析檢視區的費用,也不會收取透過「記錄檔探索器」或「記錄檔分析」頁面發出查詢的費用。
如需詳細資訊,請參閱下列文件:
- Google Cloud Observability 定價頁面的 Cloud Logging 專區。
將記錄檔資料轉送至其他 Google Cloud 服務的費用:
- 如果您將虛擬私人雲端流程記錄傳送至 Cloud Logging 後又將其排除,系統就會向您收取虛擬私人雲端流程記錄產生費用。