如要監控資料庫活動,並協助符合政府、金融和 ISO 法規遵循要求,您可以在 Cloud Logging 中,查看及查詢 AlloyDB for PostgreSQL 的 pgAudit 產生的資料存取稽核記錄。您也可以檢查 pgAudit 記錄項目格式,並在 Cloud Monitoring 中監控稽核記錄管道狀態。如要進一步瞭解 pgAudit,請參閱「關於 pgAudit」。
事前準備
如要查看稽核記錄,請務必完成下列操作:
為 AlloyDB 專案啟用資料存取稽核記錄。
請要求管理員授予您私人記錄檢視器 (
roles/logging.privateLogViewer) 角色。
查看稽核記錄
系統會將特定執行個體產生的 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 的稽核記錄項目總數。 |
詳情請參閱「系統洞察指標參考資料」。