你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 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 Autovacuum 和架构统计信息。

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)