共用方式為


適用於 PostgreSQL 的 Azure 資料庫記錄 - 單一伺服器

適用於:適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器

重要

適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器即將淘汰。 強烈建議您升級至 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。 如需移轉至 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器的詳細資訊,請參閱單一伺服器 適用於 PostgreSQL 的 Azure 資料庫 發生什麼事?

適用於 PostgreSQL 的 Azure 資料庫可讓您設定及存取 Postgres 的標準記錄。 這些記錄可用來識別、疑難排解和修復設定錯誤和次佳效能。 您可以設定及存取的記錄資訊包括錯誤、查詢資訊、自動清理記錄、連線與檢查點。 (無法存取交易記錄。)

稽核記錄會透過 PostgreSQL 延伸模組 pgaudit 提供。 若要深入了解,請瀏覽稽核概念一文。

設定記錄

您可以使用記錄伺服器參數來設定伺服器上的 Postgres 標準記錄。 在每個適用於 PostgreSQL 的 Azure 資料庫伺服器上,log_checkpointslog_connections 預設為開啟。 有其他可供您調整來符合您記錄需求的參數:

適用於 PostgreSQL 的 Azure 資料庫 - 記錄參數

若要深入了解 Postgres 記錄參數,請瀏覽 Postgres 文件的記錄時機 (英文) 與 記錄內容 (英文) 章節。 並非大部分 Postgres 記錄參數都可用於在適用於 PostgreSQL 的 Azure 資料庫中進行設定。

若要了解如何設定適用於 PostgreSQL 的 Azure 資料庫中的參數,請參閱入口網站文件CLI 文件

注意

設定大量記錄 (例如:陳述式記錄) 可能會增加大量效能額外負荷。

存取 .log 檔

適用於 PostgreSQL 的 Azure 資料庫預設記錄格式為 .log。 此記錄檔中的範例行看起來如下:

2019-10-14 17:00:03 UTC-5d773cc3.3c-LOG: connection received: host=101.0.0.6 port=34331 pid=16216

適用於 PostgreSQL 的 Azure 資料庫提供 .log 檔案的短期儲存位置。 新的檔案每隔 1 小時或 100 MB 開始一次,依前者開始。 記錄會附加至目前檔案,因為其是從 Postgres 發出。

您可以使用 log_retention_period 參數,來設定此短期記錄檔儲存體的保留期。 預設值為 3 天;最大值為 7 天。 短期儲存位置最多可以保留 1 GB 的記錄檔。 在 1 GB 之後,不論保留期間為何,最舊的檔案都會遭到刪除,以便為新記錄提供空間。

如需長期保留記錄和記錄分析,您可以下載 .log 檔案並將其移至協力廠商服務。 您可以使用 Azure 入口網站Azure CLI 來進行此作業。 或者,您也可以設定 Azure 監視器診斷設定,自動發出記錄 (以 JSON 格式) 到長期位置。 在下列章節中深入了解此選項。

您可以將 logging_collector 參數設定為 OFF,以停止產生 .log 檔案。 如果您使用 Azure 監視器診斷設定,建議您關閉 .log 檔案產生。 此設定會降低其他記錄的效能影響。

注意

重新啟動伺服器以套用此變更。

資源記錄

適用於 PostgreSQL 的 Azure 資料庫會與 Azure 監視器診斷設定整合。 診斷設定可讓您以 JSON 格式將 Postgres 記錄傳送至 Azure 監視器記錄,以進行分析和警示、傳送至事件中樞以進行串流,以及傳送至 Azure 儲存體以進行封存。

重要

此伺服器記錄的診斷功能僅適用於一般用途和記憶體最佳化定價層

設定診斷設定

您可以使用 Azure 入口網站、CLI、REST API 和 PowerShell,來啟用 Postgres 伺服器的診斷設定。 要選取的記錄類別是 PostgreSQLLogs。 (如果您使用查詢存放區,則可以設定其他記錄。)

若要使用 Azure 入口網站啟用資源記錄:

  1. 在入口網站中,移至 Postgres 伺服器導覽功能表中的 [診斷設定]
  2. 選取 [新增診斷設定]
  3. 命名此設定。
  4. 選取您慣用的端點 (儲存體帳戶、事件中樞、記錄分析)。
  5. 選取記錄類型 PostgreSQL Server 記錄
  6. 儲存您的設定。

若要使用 PowerShell、CLI 或 REST API 啟用資源記錄,請造訪診斷設定文章。

存取資源記錄

您存取記錄的方式取決於您選擇的端點。 針對 Azure 儲存體,請參閱記錄儲存體帳戶一文。 針對事件中樞,請參閱串流 Azure 記錄一文。

針對 Azure 監視器記錄,記錄會傳送至您選取的工作區。 Postgres 記錄會使用 AzureDiagnostics 收集模式,以便可從 AzureDiagnostics 資料表加以查詢。 下表中的欄位說明如下。 在 Azure 監視器記錄查詢概觀中深入了解查詢和警示。

以下是您可以嘗試開始使用的查詢。 您可以根據查詢來設定警示。

搜尋過去一天中特定伺服器的所有 Postgres 記錄

AzureDiagnostics
| where LogicalServerName_s == "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d) 

搜尋所有非 localhost 連線嘗試

AzureDiagnostics
| where Message contains "connection received" and Message !contains "host=127.0.0.1"
| where Category == "PostgreSQLLogs" and TimeGenerated > ago(6h)

上述查詢會顯示此工作區中任何 Postgres 伺服器記錄過去 6 小時的結果。

記錄格式

下列資料表描述 PostgreSQLLogs 類型的欄位。 視您選擇的輸出端點而定,所含欄位及其出現順序可能會有所不同。

欄位 說明
TenantId 您的租用戶識別碼
SourceSystem Azure
TimeGenerated [UTC] 以 UTC 記錄記錄時的時間戳記
類型 記錄的類型。 一律為 AzureDiagnostics
SubscriptionId 伺服器所屬訂用帳戶的 GUID
ResourceGroup 伺服器所屬資源群組的名稱
ResourceProvider 資源提供者名稱。 一律為 MICROSOFT.DBFORPOSTGRESQL
ResourceType Servers
ResourceId 資源 URI
資源 伺服器的名稱
類別 PostgreSQLLogs
OperationName LogEvent
errorLevel 記錄層級,範例:LOG、ERROR、NOTICE
訊息 主要記錄訊息
網域 伺服器版本,範例:postgres-10
詳細資料 次要記錄訊息 (如果適用)
ColumnName 資料行的名稱 (如果適用)
SchemaName 結構描述的名稱 (如果適用)
DatatypeName 資料類型的名稱 (如果適用)
LogicalServerName 伺服器的名稱
_ResourceId 資源 URI
Prefix 記錄行的前置詞

下一步