配置和访问 Azure Database for PostgreSQL 灵活服务器中的日志

适用于: Azure Database for PostgreSQL 灵活服务器

Azure Database for PostgreSQL 灵活服务器日志在灵活服务器的每个节点上都可用。 可以将日志发送到存储服务器或分析服务。 这些日志可用于识别、排除和修复配置错误和性能不佳问题。

配置诊断设置

可以使用 Azure 门户、CLI、REST API 和 PowerShell 为 Azure Database for PostgreSQL 灵活服务器实例启用诊断设置。 要选择的日志类别为“PostgreSQLLogs”。

若要使用 Azure 门户启用资源日志:

  1. 在门户上 Azure Database for PostgreSQL 灵活服务器实例的导航菜单中,转到“诊断设置”。

  2. 选择“添加诊断设置”。 “添加诊断设置”按钮

  3. 为此设置命名。

  4. 选择你偏好的终结点(Log Analytics 工作区、存储帐户、事件中心)。

  5. 从类别列表(服务器日志、会话数据、查询存储运行时/等待统计信息等)中选择日志类型 选择日志类别的屏幕截图。

  6. 保存设置。

若要使用 PowerShell、CLI 或 REST API 启用资源日志,请访问诊断设置一文。

访问资源日志

访问日志的方式取决于所选的终结点。 有关 Azure 存储,请参阅日志存储帐户一文。 有关事件中心,请参阅流式传输 Azure 日志一文。

Azure Monitor 日志将发送到所选的工作区。 Azure Database for PostgreSQL 灵活服务器日志使用 AzureDiagnostics 收集模式,因此可以从 AzureDiagnostics 表查询它们。 下面描述了该表中的字段。 在 Azure Monitor 日志查询概述中详细了解查询和警报。

下面是可帮助你入门的查询。 可以基于查询配置警报。

搜索特定服务器在过去一天内的所有 Azure Database for PostgreSQL 灵活服务器日志。

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

搜索所有非 localhost 连接尝试。 以下查询将显示此工作区中记录的任何 Azure Database for PostgreSQL 灵活服务器在过去 6 小时内的结果。

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

搜索特定服务器在过去一天内从 pg_stat_activity 系统视图收集的 Azure Database for PostgreSQL 灵活服务器会话。

AzureDiagnostics
| where Resource == "myservername"
| where Category =='PostgreSQLFlexSessions'
| where TimeGenerated > ago(1d) 

搜索特定服务器在过去一天内从 query_store.qs_view 收集的 Azure Database for PostgreSQL 灵活服务器查询存储运行时统计信息。 它需要启用查询存储。

AzureDiagnostics
| where Resource == "myservername"
| where Category =='PostgreSQLFlexQueryStoreRuntime'
| where TimeGenerated > ago(1d) 

搜索特定服务器在过去一天内从 query_store.pgms_wait_sampling_view 收集的 Azure Database for PostgreSQL 灵活服务器查询存储等待统计信息。 它需要启用查询存储等待采样。

AzureDiagnostics
| where Resource == "myservername"
| where Category =='PostgreSQLFlexQueryStoreWaitStats'
| where TimeGenerated > ago(1d) 

搜索特定服务器在过去一天内的每个数据库的 Azure Database for PostgreSQL 灵活服务器自动清理和架构统计信息。

AzureDiagnostics
| where Resource == "myservername"
| where Category =='PostgreSQLFlexTableStats'
| where TimeGenerated > ago(1d) 

搜索特定服务器在过去一天内的每个数据库的 Azure Database for PostgreSQL 灵活服务器剩余事务和多事务紧急自动清理或包装保护。

AzureDiagnostics
| where Resource == "myservername"
| where Category =='PostgreSQLFlexDatabaseXacts'
| where TimeGenerated > ago(1d) 

后续步骤