適用於 PostgreSQL 的 Azure 資料庫可讓您設定和存取 Postgres 的標準記錄。 這些記錄可用於識別及修復設定錯誤與次佳效能,並對其進行疑難排解。 您可以設定及存取的記錄資訊包括錯誤、查詢資訊、自動清理記錄、連線與檢查點。 (無法存取交易記錄)。
稽核記錄會透過 Postgres 延伸模組 pgaudit 提供。 若要深入了解,請瀏覽稽核概念一文。
設定記錄
您可以使用記錄伺服器參數來設定伺服器上的 Postgres 標準記錄。 若要深入了解 Postgres 記錄參數,請瀏覽 Postgres 文件的記錄時機 (英文) 與 記錄內容 (英文) 章節。 大部分 (但不是全部) Postgres 記錄參數都可用於在適用於 PostgreSQL 的 Azure 資料庫中設定。
若要瞭解如何在適用於 PostgreSQL 的 Azure 資料庫中設定參數,請參閱 入口網站檔 或 CLI 檔。
附註
若要設定大量日誌,您可以增加大量的效能額外負荷。 例如,指令日志可能會影響效能。
存取記錄
適用於 PostgreSQL 的 Azure 資料庫已與 Azure 監視器診斷設定整合。 診斷設定可讓您將 JSON 格式的 PostgreSQL 記錄傳送至 Azure 監視器記錄,以進行分析和警示。 您也可以將它們串流至事件中樞,或封存在 Azure 儲存體中。
日誌的存取控制
伺服器記錄的存取是透過 Azure Role-Based 存取控制 (RBAC) 來控制。 任何提供伺服器讀取存取權的角色也允許下載日誌。 這包括內建角色,例如:
- 讀者
- 監視讀取器
- Log Analytics 讀取器
- 或對等的自訂角色
警告
記錄可能包含敏感資訊,例如認證,視您的記錄組態而定。
資料保留原則和定價
對於傳送至事件中樞或儲存體帳戶的記錄,您可以設定保留原則以在特定期間後自動刪除資料。 Log Analytics 成本取決於兩個因素:
- 資料擷取:費用是依據擷取到工作區中的資料量而定。
- 資料保留:儲存在 Log Analytics 工作區的記錄在前 31 天內免費保存。 在此免費保留期之後,將收取儲存資料的費用,根據每月保留的資料量(以 GB 為單位)按每日比例計算。
如需與資料擷取和保留相關聯的成本明細,請流覽 Azure 監視器定價頁面。
記錄格式
下列資料表描述 PostgreSQLLogs 類型的欄位。 根據您選擇的輸出端點,包含的欄位及其顯示順序可能會有所不同。
| 欄位 | 說明 |
|---|---|
| TenantId | 您的租用戶識別碼 |
| SourceSystem | Azure |
| 生成時間 [UTC] | 以 UTC 記錄記錄時的時間戳記 |
| 類型 | 記錄的類型。 一律為 AzureDiagnostics |
| SubscriptionId | 伺服器所屬訂用帳戶的 GUID |
| ResourceGroup | 伺服器所屬資源群組的名稱 |
| ResourceProvider | 資源提供者名稱。 一律為 MICROSOFT.DBFORPOSTGRESQL |
| ResourceType | FlexibleServers |
| ResourceId | 資源 URI |
| 資源 | 伺服器的名稱 |
| 類別 | PostgreSQLLogs |
| OperationName | LogEvent |
| errorLevel_s | 記錄層級,範例:LOG、ERROR、NOTICE |
| processId_d | PostgreSQL 後端的流程識別碼 |
| sqlerrcode_s | 遵循 SQL 標準 SQLSTATE 程式碼慣例的 PostgreSQL 錯誤碼 |
| 訊息 | 主要記錄訊息 |
| 詳細資料 | 次要記錄訊息 (如果適用) |
| ColumnName | 資料行的名稱 (如果適用) |
| SchemaName | 結構描述的名稱 (如果適用) |
| DatatypeName | 資料類型的名稱 (如果適用) |
| _ResourceId | 資源 URI |
已知的限制
- 記錄事件大小:Azure 監視器記錄中不會擷取大於 65 KB 的查詢計劃或記錄訊息。 這是平台範圍的 Azure 監視器限制。 因此,複雜的查詢 (例如,涉及巢狀檢視的查詢) 可能會在伺服器日誌中產生不完整或遺漏的查詢計劃輸出。
- 其他條件約束:其他全平臺限制適用於 Azure 監視器記錄,例如警示規則配額和查詢結果大小。 如需完整清單,請參閱 Azure 監視器服務限制文件以取得詳細資料。