如果您使用活動記錄查看 Compute Engine 管理員活動和系統事件,請參閱這份指南,瞭解如何改用稽核記錄尋找類似的記錄項目。
Compute Engine 活動記錄已淘汰。您可以根據記錄名稱識別活動記錄項目:
logName: "projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
Compute Engine 稽核記錄包含活動記錄提供的相同資訊,另外還有更多其他資訊。但稽核記錄顯示資訊的方式與活動記錄不同。因此您需要調整查詢。
如何從活動記錄遷移至稽核記錄
如要使用稽核記錄而非活動記錄,請調整查詢。請按照下列步驟操作。
- 尋找舊查詢。舉例來說,您可能已將這些記錄儲存在 Logs Explorer 的已儲存搜尋中,或是使用 API 或 SDK 建立指令碼。如要進一步瞭解如何監控資源,請參閱「記錄」說明文件。 
- 將活動記錄欄位換成適當的稽核記錄欄位。請參閱表格,瞭解欄位如何相互對應。 - 舉例來說,如果您的舊版活動記錄查詢尋找名為 - jsonPayload.resource.name的欄位,則新的稽核記錄查詢應改為尋找- protoPayload.resourceName。
- 儲存並使用新的稽核記錄查詢。舉例來說,您可以在 Cloud Logging 中建立已儲存的搜尋,或是更新指令碼。 
範例
以下列舉幾個轉換後的查詢範例:
查詢與特定資源相關的活動
| 查詢示例 | |
|---|---|
| 舊版活動記錄 | gcloud logging read jsonPayload.resource.name="VM_NAME"
 | 
| 稽核記錄 | 請使用下列其中一種方式: 
 使用選項 1 時,「has」運算子 ( | 
查詢最近的管理員活動記錄項目
| 查詢示例 | |
|---|---|
| 舊版活動記錄 | gcloud logging read logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
 | 
| 稽核記錄 | gcloud logging read logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" | 
查詢最近建立執行個體的記錄項目
| 查詢示例 | |
|---|---|
| 舊版活動記錄 | gcloud logging read 'logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log" AND jsonPayload.event_subtype="compute.instances.insert"' | 
| 稽核記錄 | gcloud logging read 'logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND protoPayload.methodName:"compute.instances.insert"' | 
查詢所有執行個體建立作業的開始時間
| 查詢示例 | |
|---|---|
| 舊版活動記錄 | gcloud logging read 'jsonPayload.event_type="GCE_API_CALL" AND jsonPayload.event_subtype="compute.instances.insert"' | 
| 稽核記錄 | gcloud logging read 'operation.first="true" AND protoPayload.methodName:"compute.instances.insert"' | 
查詢任何作業的完成情況
| 查詢示例 | |
|---|---|
| 舊版活動記錄 | gcloud logging read jsonPayload.event_type="GCE_OPERATION_DONE" | 
| 稽核記錄 | gcloud logging read operation.last="true" | 
活動記錄和稽核記錄的差異
請參閱本節,瞭解稽核記錄的結構與活動記錄有何不同。將舊版活動記錄查詢轉換為稽核記錄查詢時,請注意這些差異。舉例來說,請在查詢中將所有舊版活動記錄欄位名稱,替換成對應的稽核記錄欄位名稱。
稽核記錄和活動記錄都會傳回記錄項目物件,但兩者有以下差異:
- 欄位名稱不同。詳情請參閱欄位名稱對應表。
- 不同欄位值,包括:
以下範例顯示記錄名稱和酬載的差異:
| 記錄項目範例 | |
|---|---|
| 舊版活動記錄 | {
  insertId:  "1x3bbhjg2wwvz1x"
  jsonPayload: {
    event_subtype: "compute.instances.stop"
    ...
    resource: {
      id: "12345678900123456789"
      name: "my-instance-name"
      type: "instance"
      zone: "us-east1-b"
    }
    ...
  }
  labels: {…}
  logName:  "projects/my-project/logs/compute.googleapis.com%2Factivity_log"
  receiveTimestamp:  "2019-08-26T12:22:44.602794616Z"
  ...
} | 
| 稽核記錄 | {
  insertId:  "-w6o499e22fwk"
  logName:  "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity"
  protoPayload: {
    ...
    methodName: "beta.compute.instances.stop"
    ...
    resourceName: "projects/my-project/zones/us-east1-b/instances/my-instance-name"
  }
  receiveTimestamp:  "2019-08-26T12:22:46.881198276Z"
  ...
} | 
將活動記錄中的欄位對應至稽核記錄
請使用下表,在查詢中將活動記錄欄位對應至相應的稽核記錄欄位。
欄位
請使用下表,在更新的查詢中將舊版活動記錄欄位替換為稽核記錄欄位。
例如,如果您的舊版活動記錄查詢包含以 jsonPayload.resource.type 為基礎的篩選器,則新的稽核記錄查詢會改以 resource.type 為基礎進行篩選。
| 舊版活動記錄欄位 | 稽核記錄欄位 | 
|---|---|
| insertId | insertId | 
| jsonPayload.actor.user | protoPayload.authenticationInfo.principalEmail | 
| jsonPayload.event_subtype | protoPayload.methodName | 
| jsonPayload.event_timestamp_us | timestamp | 
| jsonPayload.event_type="GCE_API_CALL" | operation.first="true" | 
| jsonPayload.event_type="GCE_OPERATION_DONE" | operation.last="true" | 
| jsonPayload.request | protoPayload.request | 
| jsonPayload.operation | operation | 
| jsonPayload.resource.id | resource.labels.instance_id | 
| jsonPayload.resource.name | protoPayload.resourceName | 
| jsonPayload.resource.type | resource.type | 
| jsonPayload.resource.zone | resource.labels.zone | 
| jsonPayload.trace_id | operation.id | 
| jsonPayload.user_agent | protoPayload.requestMetadata.callerSuppliedUserAgent | 
| labels.compute.googleapis.com/resource_id | resource.labels.[RESOURCE_TYPE]_id | 
| labels.compute.googleapis.com/resource_name | protoPayload.resourceName | 
| labels.compute.googleapis.com/resource_type | resource.type | 
| labels.compute.googleapis.com/resource_zone | 以下其中一個欄位名稱: 
 | 
| logName | logName | 
| receiveTimestamp | receiveTimestamp | 
| resource.labels | resource.labels | 
| severity | severity | 
| timestamp | timestamp | 
欄位值
請使用下表將舊版活動記錄欄位值對應到稽核記錄欄位值。與活動記錄相比,稽核記錄有多個記錄檔名稱值和不同的酬載值。稽核記錄項目也會傳回完整資源名稱和經果版本管理的方法名稱。
記錄檔名稱
如要尋找稽核記錄項目,請找出包含 cloudaudit.googleapis.com 的 logName。
| 記錄檔名稱 | 記錄檔內容 | |
|---|---|---|
| 舊版活動記錄 | projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log | 管理員活動和系統事件 | 
| 稽核記錄 | projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity | 管理員活動 | 
| projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event | 系統事件 | |
| projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access | 資料存取權 | 
酬載
在每個稽核記錄項目中,尋找 protoPayload 而不是 jsonPayload。
| 酬載類型 | 酬載範例 | |
|---|---|---|
| 舊版活動記錄 | jsonPayload |     jsonPayload: {
      actor: {…}
      event_subtype:  "compute.instances.start"
      event_timestamp_us:  "1566404493487248"
      event_type:  "GCE_API_CALL"
      ip_address:  ""
      operation: {…}
      request: {…}
      resource: {…}
      trace_id:  "operation-1566404491560-590a2f74b4705-a1ae0686-d896d772"
      user_agent:  "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"
      version:  "1.2"
    } | 
| 稽核記錄 | protoPayload |     protoPayload: {
      @type:  "type.googleapis.com/google.cloud.audit.AuditLog"
      authenticationInfo: {…}
      methodName:  "v1.compute.instances.start"
      request: {…}
      requestMetadata: {…}
      resourceName:  "projects/my-project/zones/us-central1-a/instances/alert"
      serviceName:  "compute.googleapis.com"
    } | 
如要瞭解這些酬載彼此的關係,以及如何將舊版活動記錄欄位對應到稽核記錄欄位,請參閱記錄項目欄位對應。
資源名稱
在稽核記錄中,API 資源名稱 (位於 protoPayload.resourceName 欄位中) 是完整名稱,例如:
resourceName: "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
您仍可使用部分名稱,但必須修正查詢,改用「has」運算子 (:),而非「equals」運算子。
在稽核記錄查詢中,使用下列其中一個選項,依特定資源進行篩選:
- gcloud logging read protoPayload.resourceName:"VM_NAME" 
- gcloud logging read protoPayload.resourceName="projects/PROJECT_ID/zones/ZONE/instances/VM_NAME" 
方法名稱
在稽核記錄中,API 方法名稱 (位於 protoPayload.methodName 欄位中) 的開頭是其版本,例如:v1.compute.instances.delete。
| 欄位 | 值 | 查詢示例 | |
|---|---|---|---|
| 舊版活動記錄 | jsonPayload.event_subtype | RESOURCE.METHOD | jsonPayload.event_subtype=compute.instances.delete | 
| 稽核記錄 | protoPayload.methodName | API_VERSION.RESOURCE.METHOD | protoPayload.methodName=v1.compute.instances.delete或 protoPayload.methodName=beta.compute.instances.delete或 protoPayload.methodName:compute.instances.delete | 
您仍可在稽核記錄查詢中使用未指定版本的方法名稱,但必須修正查詢,改用「has」運算子 (:) 而非「equals」運算子 (=)。舉例來說:protoPayload.methodName:compute.instances.delete 會傳回所有執行個體刪除 API 呼叫,不論版本為何。如要進一步瞭解運算子,請參閱比較。
後續步驟
- 請參閱快速入門導覽課程,瞭解如何使用記錄工具。
- 進一步瞭解如何查看記錄項目。
- 瞭解如何使用進階記錄篩選器查看記錄。
- 進一步瞭解 Compute Engine Cloud 稽核記錄。