Azure Database for PostgreSQL 灵活服务器中的日志

Azure Database for PostgreSQL使你能够配置和访问 Postgres 的标准日志。 使用日志来识别、排查和修复配置错误和性能欠佳。 可以配置和访问有关错误、查询信息、autovacuum 记录、连接和检查点的日志信息。 (无法访问事务日志)。

审核日志记录可通过 Postgres 扩展 pgaudit获取。 若要了解详细信息,请参阅 审核概念 文章。

配置日志记录

使用日志记录参数在服务器上配置 Postgres 标准日志记录。 若要了解有关 Postgres 日志参数的详细信息,请参阅 Postgres 文档的 “记录时间” 和“记录 内容” 部分。 可以在Azure Database for PostgreSQL中配置大多数(但不是全部)的 Postgres 日志记录参数。

若要了解如何在 Azure Database for PostgreSQL 中配置参数,请参阅 门户文档CLI 文档

注释

配置大量日志可能会带来显著的性能开销。 例如,语句日志记录可能会影响性能。

访问日志

Azure Database for PostgreSQL 灵活服务器集成了 Azure Monitor 诊断设置。 诊断设置允许将 JSON 格式的 PostgreSQL 日志发送到 Azure Monitor 日志进行分析和警报。 还可以将它们流式传输到事件中心,或在 Azure 存储中存档它们。

日志的访问控制

通过 Azure Role-Based 访问控制 (RBAC) 控制对服务器日志的访问。 提供对服务器读取访问权限的任何角色也授予下载日志的权限。 此访问权限包括内置角色,例如:

  • 读取者
  • 监视读取者
  • Log Analytics 读者
  • 或等效的自定义角色

警告

根据日志记录配置,日志可能包含敏感信息,例如凭据。

数据保留策略和定价

对于发送到事件中心或存储帐户的日志,请设置保留策略以在特定时间段后自动删除数据。 Log Analytics 成本取决于两个因素:

  • 数据引入: 费用基于引入到工作区中的数据量。
  • 数据保留:Log Analytics工作区中存储的日志在前 31 天内免费保存。 除了此免费保留期之外,存储数据的费用取决于每月保留的数据量(以 GB 为单位)。

有关与数据引入和保留相关的成本明细,请访问 Azure Monitor 定价页

日志格式

下表描述了 PostgreSQLLogs 类型的字段。 根据所选的输出终结点,包括的字段及其显示顺序可能会有所不同。

领域 说明
租户ID 你的租户标识
SourceSystem Azure
生成时间 (TimeGenerated) [UTC] 记录日志时的时间戳 (UTC)
类型 日志的类型。 始终为 AzureDiagnostics
SubscriptionId(订阅ID) 服务器所属的订阅的 GUID
ResourceGroup 服务器所属的资源组的名称
资源提供者 资源提供程序的名称。 始终为 MICROSOFT.DBFORPOSTGRESQL
资源类型 FlexibleServers
ResourceId 资源 URI
Resource 服务器名称
类别 PostgreSQLLogs
操作名称 LogEvent
errorLevel_s 日志记录级别,示例:LOG、ERROR、NOTICE
processId_d PostgreSQL 后端的进程 ID
sqlerrcode_s PostgreSQL 错误代码,遵循 SQL 标准版针对 SQLSTATE 代码的约定
Message 主要日志消息
详细信息 辅助日志消息(如果适用)
ColumnName 列名称(如果适用)
SchemaName 架构名称(如果适用)
DatatypeName 数据类型名称(如果适用)
_资源ID 资源 URI

已知的限制

  • 日志事件大小:Azure Monitor日志不会捕获大于 65 KB 的查询计划或日志消息。 此限制适用于整个 Azure Monitor。 因此,复杂的查询(例如,涉及嵌套视图的查询)可能会在服务器日志中生成不完整或缺失的查询计划输出。
  • 其他约束:其他平台范围限制适用于 Azure Monitor 日志,例如警报规则配额和查询结果大小。 有关完整列表,请参阅Azure Monitor服务限制文档。