Azure Database for PostgreSQL灵活服务器的日志可在服务器的每个节点上使用。 可以将这些日志寄送到自己的Log Analytics工作区。 这些日志可用于识别、排除和修复配置错误和性能不佳问题。
配置诊断设置的步骤
使用Azure portal:
在资源菜单中的 “监视 ”部分下,选择“ 诊断设置”。 选择“添加诊断设置”。
在 诊断设置名称中,编写要标识此设置的名称。
在目标详细信息下,选择发送到Log Analytics工作区。 在“订阅”中,选择你的 Log Analytics 工作区已存在于其中的订阅。 在Log Analytics工作区中,选择要将日志或指标流式传输到的工作区。 对于目标表,建议选择资源专用,而不是Azure 诊断。 若要详细了解两者之间的差异,请参阅Azure Monitor中的资源日志。 如果您想将所选类别发送到其他目标类型,以替代当前目标类型或在当前目标类型之外另行发送,请在 目标详细信息 下选择所需选项,并进行相应配置。
如果希望流式传输到所选工作区的任何日志,请选择其各个类别(PostgreSQL 服务器日志、PostgreSQL 会话数据、PostgreSQL 查询存储 运行时、PostgreSQL 查询存储等待统计信息、PostgreSQL Autovacuum 和架构统计信息或 PostgreSQL 剩余事务),或从类别组(审核或 allLogs)中选择这两个复选框中的任何一个。 选择任一类别组或两个类别组等效于选择所有单个类别。 若要详细了解每个单独的日志类别,请参阅 日志。 此外,如果希望将指标流式传输到所选工作区,请在 “指标”下选择 “AllMetrics”。
选择 “保存” 以应用更改。 保存更改后,关闭包含所有配置详细信息的页面,以返回到“诊断设置”页。
重要
如果两者的目标相同,则不能对同一灵活服务器的多个诊断设置选择一个类别。 但是,只要目标不同,就可以在同一灵活服务器的不同诊断设置上完美地选择同一类别。
可以为任何给定资源创建最多五个诊断设置。 达到该限制后,添加诊断设置的选项将替换为指示你达到限制的消息。
访问资源日志
访问日志的方式取决于所选的终结点。 有关 Azure 存储,请参阅日志存储帐户一文。 有关事件中心,请参阅流式传输 Azure 日志一文。
对于Log Analytics工作区,日志将发送到所选工作区。 如果将诊断设置配置为使用特定于资源的表(这是建议的方法),请参阅[Azure Database for PostgreSQL资源日志],以查看日志的类别名称与其相应的资源特定表之间的映射。 相反,如果将诊断设置配置为使用Azure诊断作为目标表,则来自所有类别的所有事件都位于同一 AzureDiagnostics 表中。
在Azure Monitor 中的 Log Analytics概述中了解有关查询和警报的详细信息。
以下是一些可供您开始使用时尝试的示例查询。 还可以根据查询配置警报。
过去一天中一台服务器的服务器日志中的所有事件
如果你用于流式传输 PostgreSQLLogs 类别的诊断设置的目标位置是资源特定表,请使用以下查询:
PGSQLServerLogs
| where LogicalServerName == "example-flexible-server"
| where TimeGenerated > ago(1d)
如果是 Azure 诊断,请使用以下查询:
AzureDiagnostics
| where LogicalServerName_s == "example-flexible-server"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
过去 6 小时内,对任何将日志流式传输到此工作区的服务器的所有远程连接尝试
如果你用于流式传输 PostgreSQLLogs 类别的诊断设置的目标位置是资源特定表,请使用以下查询:
PGSQLServerLogs
| where Message contains "connection received" and Message !contains "host=127.0.0.1"
| where TimeGenerated > ago(6h)
如果是 Azure 诊断,请使用以下查询:
AzureDiagnostics
| where Message contains "connection received" and Message !contains "host=127.0.0.1"
| where Category == "PostgreSQLLogs" and TimeGenerated > ago(6h)
过去 30 分钟内从 pg_stat_activity 系统视图为某台服务器采集的会话
如果用于流式传输 PostgreSQLFlexSessions 类别的诊断设置的目标是资源专用表,请使用以下查询:
PGSQLPgStatActivitySessions
| where LogicalServerName == "example-flexible-server"
| where TimeGenerated > ago(30m)
如果是 Azure 诊断,请使用以下查询:
AzureDiagnostics
| where LogicalServerName_s == "example-flexible-server"
| where Category =='PostgreSQLFlexSessions'
| where TimeGenerated > ago(30m)
过去 2 天内一台服务器的查询存储运行时统计信息
如果正在从某个诊断设置中流式传输 PostgreSQLFlexQueryStoreRuntime 类别,且该诊断设置的目标为资源特定表,请使用以下查询:
PGSQLQueryStoreRuntime
| where LogicalServerName == "example-flexible-server"
| where TimeGenerated > ago(2d)
如果是 Azure 诊断,请使用以下查询:
AzureDiagnostics
| where LogicalServerName_s == "example-flexible-server"
| where Category =='PostgreSQLFlexQueryStoreRuntime'
| where TimeGenerated > ago(2d)
过去 3 天内单个服务器的 Query Store 等待统计信息
如果将 PostgreSQLFlexQueryStoreWaitStats 类别流式传输到诊断设置的目标资源特定表中,请使用以下查询:
PGSQLQueryStoreWaits
| where LogicalServerName == "example-flexible-server"
| where TimeGenerated > ago(3d)
If it's Azure diagnostics, use the following query:
```kusto
AzureDiagnostics
| where LogicalServerName_s == "example-flexible-server"
| where Category =='PostgreSQLFlexQueryStoreWaitStats'
| where TimeGenerated > ago(3d)
过去 5 小时内单台服务器的 Autovacuum 和模式统计信息
如果正在从某个诊断设置流式传输 PostgreSQLFlexTableStats 类别,且其目标是资源特定表,请使用以下查询:
PGSQLAutovacuumStats
| where LogicalServerName == "example-flexible-server"
| where TimeGenerated > ago(5h)
如果是 Azure 诊断,请使用以下查询:
AzureDiagnostics
| where LogicalServerName_s == "example-flexible-server"
| where Category =='PostgreSQLFlexTableStats'
| where TimeGenerated > ago(1d)
过去一天内,同一服务器上各数据库距离触发紧急 autovacuum 或回卷保护前的剩余事务数
如果从中流式传输 PostgreSQLFlexDatabaseXacts 类别的诊断设置的目标位置是资源专用表,请使用以下查询:
PGSQLDbTransactionsStats
| where LogicalServerName == "example-flexible-server"
| where TimeGenerated > ago(1d)
如果是 Azure 诊断,请使用以下查询:
AzureDiagnostics
| where LogicalServerName_s == "example-flexible-server"
| where Category =='PostgreSQLFlexDatabaseXacts'
| where TimeGenerated > ago(1d)
有关更高级的查询示例,请访问 Log Analytics 工作区的查询中心,并按资源类型等于Azure Database for PostgreSQL Flexible Servers进行筛选。