极狐 GitLab

外部数据库的监控和日志设置

外部 PostgreSQL 数据库系统有不同的日志选项用于监控性能和排查问题,但默认情况下未启用。在本节中,我们提供了私有化部署的 PostgreSQL 的建议,以及一些主要 PostgreSQL 托管服务提供商的建议。

您应该启用以下日志设置:

  • log_statement=ddl: 记录数据库模型定义 (DDL) 的更改,例如对象的 CREATEALTERDROP。这有助于跟踪可能导致性能问题的最近模型更改,并识别安全漏洞和人为错误。
  • log_lock_waits=on: 记录长时间持有锁的进程,这是查询性能不佳的常见原因。
  • log_temp_files=0: 记录使用强度高且不常见的临时文件,这可能表明查询性能不佳。
  • log_autovacuum_min_duration=0: 记录所有自动清理执行。自动清理是整体 PostgreSQL 引擎性能的关键组件。如果未从表中删除死元组,进行故障排除和调优是必不可少的。
  • log_min_duration_statement=1000: 记录慢查询(超过 1 秒)。

以上参数设置的完整说明可以在 PostgreSQL 错误报告和日志记录文档中找到。

Amazon RDS#

Amazon 关系数据库服务 (RDS) 提供了大量的监控指标和日志接口。以下是您应该配置的一些内容:

  • 通过 RDS 参数组更改以上所有推荐的 PostgreSQL 日志设置。
    • 由于推荐的日志参数在 RDS 中是动态的,因此更改这些设置后无需重启。
    • 可以通过 RDS 控制台查看 PostgreSQL 日志。
  • 启用 RDS 性能洞察允许您通过许多 PostgreSQL 数据库引擎的重要性能指标可视化数据库负载。
  • 启用 RDS 增强监控以监控操作系统指标。这些指标可以指示对数据库性能产生影响的底层硬件和操作系统的瓶颈。
    • 在生产环境中,将监控间隔设置为 10 秒(或更短)以捕获可能导致许多性能问题的资源使用微突发。在控制台中设置 Granularity=10 或在 CLI 中设置 monitoring-interval=10