查看 pgAudit 為 PostgreSQL 適用的 AlloyDB 產生的稽核記錄

如要監控資料庫活動,並協助符合政府、金融和 ISO 法規遵循要求,您可以在 Cloud Logging 中,查看及查詢 AlloyDB for PostgreSQL 的 pgAudit 產生的資料存取稽核記錄。您也可以檢查 pgAudit 記錄項目格式,並在 Cloud Monitoring 中監控稽核記錄管道狀態。如要進一步瞭解 pgAudit,請參閱「關於 pgAudit」。

事前準備

如要查看稽核記錄,請務必完成下列操作:

查看稽核記錄

系統會將特定執行個體產生的 pgAudit 記錄,以資料存取稽核記錄的形式傳送至 Cloud Logging。

您可以使用Logs Explorer應用程式,查看產生的 pgAudit 記錄。

如要查看 pgAudit 記錄,請在Logs Explorer應用程式中選取 cloudaudit.googleapis.com/data_access 記錄篩選器。

如要查看 AlloyDB 專案的所有 pgAudit 記錄,請使用進階篩選器介面執行下列查詢:

resource.type="alloydb.googleapis.com/Instance"
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access"
protoPayload.request.@type="type.googleapis.com/google.cloud.alloydb.audit.v1.PgAuditEntry"

將 PROJECT_ID 替換為 AlloyDB 專案 ID。

pgAudit 的記錄格式

資料存取稽核記錄中的每個 pgAudit 記錄項目,都包含代表查詢所收集資訊的欄位。如要進一步瞭解這些記錄項目欄位,請參閱 pgAudit 說明文件。

pgAudit 記錄項目範例:

{
  protoPayload: {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    methodName: "alloydb.instances.query"
    request: {
      @type: "type.googleapis.com/google.cloud.alloydb.audit.v1.PgAuditEntry"
      auditClass: "READ"
      auditType: "SESSION"
      chunkCount: "1"
      chunkIndex: "1"
      command: "SELECT"
      database: "finance"
      databaseSessionId: 2209692
      parameter: "[not logged]"
      statement: "SELECT * FROM revenue"
      statementId: 2
      substatementId: 1
      user: "alice"
    }
  }
}

以下是資料存取稽核記錄中的欄位說明:

  • auditClass. 記錄的陳述式類型。可能的值包括 READ、WRITE、FUNCTION、ROLE、DDL、MISC 和 MISC_SET。
  • auditType. SESSION 或 OBJECT。
  • chunkCount。系統可能會對 parameter 和 statement 欄位中提供的資料進行分塊。chunkCount 欄位會指出區塊總數。另請參閱 chunkIndex 欄位的說明。
  • chunkIndex. 指定目前 request 容器中 parameter 和 statement 欄位中資料區塊的索引編號。初始數字為 1。 另請參閱 chunkCount 欄位的說明。
  • 指令。例如 ALTER TABLE 或 SELECT。
  • 參數。chunkIndex 欄位可決定這個欄位的內容,詳情請參閱 chunkIndex 欄位的說明。如果已設定 pgaudit.log_parameter 旗標的值,parameter 欄位可以包含陳述式參數,做為引號 CSV 資料。如果沒有參數,這個欄位會包含 [none]。 否則,這個欄位會包含 [not logged]。
  • 陳述式。在後端執行的陳述式。chunkIndex 欄位可決定 statement 欄位的內容,詳情請參閱 chunkIndex 欄位的說明。
  • statementId. 這個工作階段的專屬陳述式 ID。每個陳述式 ID 都代表一個後端呼叫。陳述式 ID 會依序排列,即使部分陳述式未記錄也一樣。
  • substatementId。主要陳述式中每個子陳述式的依序 ID。

監控稽核記錄管道狀態

AlloyDB 會以非同步方式處理使用者產生的稽核記錄,再安全地轉送至 Cloud Logging。您可以使用 Cloud Monitoring,監控執行個體和節點的稽核記錄管道狀態、處理量和待處理項目。

Metrics Explorer 中的 alloydb.googleapis.com/InstanceNode 受監控資源提供下列指標:

指標名稱 顯示名稱 指標種類 / 值類型 單位 說明
alloydb.googleapis.com/node/database/logging/audit/backlog_bytes_count 稽核記錄待處理項目大小 GAUGE / INT64 位元組 (By) 節點上待處理並上傳至 Cloud Logging 的稽核記錄待處理項目大小 (以位元組為單位)。如果這個值持續偏高或不斷增加,表示稽核記錄轉送管道出現背壓。
alloydb.googleapis.com/node/database/logging/audit/processed_bytes_count 已處理的稽核記錄位元組 DELTA / INT64 位元組 (By) 從節點成功處理並轉送至 Cloud Logging 的稽核記錄資料位元組總數。
alloydb.googleapis.com/node/database/logging/audit/processed_entries_count 已處理的稽核記錄項目 DELTA / INT64 數量 (1) 成功處理並從節點轉送至 Cloud Logging 的稽核記錄項目總數。

詳情請參閱「系統洞察指標參考資料」。

後續步驟