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

在 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. 选择“添加诊断设置”。 Add diagnostic settings button

  3. 为此设置命名。

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

  5. 从类别列表(服务器日志、会话数据、查询存储运行时/等待统计信息等)中选择日志类型 Screenshot of choosing log categories.

  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) 

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

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

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

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 灵活服务器剩余事务和多事务,直到最后一天针对特定服务器中的每个数据库进行紧急 autovacuum 或包装保护。

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

后续步骤