监控
PostgreSQL 内置 & 扩展
统计收集器
PostgreSQL 自行收集大量数据,并通过pg_stat(io)_系统视图提供。
- 关于 统计收集器 的官方文档
- 解释 pg_stat 视图
扩展
以下扩展提供了对 Postgres 内部机制的访问,这些机制可能很有用或收集更多信息。 其中大多数都随 Postgres 一起提供(-contrib包可能需要安装),可以通过 扩展接口 激活。
pg_stat_statements
pg_stat_statements跟踪在服务器上执行的所有查询,并记录每个查询“类”的平均运行时间以及其他参数。
pg_stat_plans
pg_stat_plans扩展了 pg_stat_statements,并记录了所有已执行查询的查询计划。 这在您遇到由于更改的参数或表大小导致的低效查询计划而导致的性能下降时非常有用。
pgstattuple
pgstattuple可以为表和索引生成统计信息,显示每个表和索引中活动元组、已删除元组占用了多少空间,以及每个关系中可用的未使用空间。
pg_buffercache
pg_buffercache让您可以深入了解 Postgres 的 共享缓冲区,显示当前缓存中保存了哪些关系的多少页。
外部项目
CLI 工具
pg_view
pg_view是一个基于 Python 的工具,用于快速获取有关正在运行的数据库和它们使用的资源的信息,以及关联正在运行的查询以及它们为什么可能很慢的原因。
pg_activity
pg_activity是一个用于 PostgreSQL 服务器活动监控的类似 htop 的应用程序,用 Python 编写。
pgmetrics
pgmetrics从运行的 PostgreSQL 服务器收集大量信息和统计信息,并以易于阅读的文本格式显示它们,或者将它们导出为 JSON 用于脚本编写。
pgstats
pgstats是一个用 C 语言编写的命令行工具,可以对各种 PostgreSQL 信息进行采样。 它还提供了一个工具来生成 CSV 文件,以绘制 pgstats 指标图。
pgcenter
pgcenter是一个用于处理 PostgreSQL 统计信息的管理工具,用 Golang 编写。 它提供类似 top 的查看器,并具有一些管理功能、将统计信息记录到文件中的工具以及构建报告的功能。
检查器
check_pgactivity
check_pgactivity旨在从任何类似 Nagios 的软件监控 PostgreSQL 集群。 它提供了许多选项来衡量和监控有用的性能指标。
check_postgres
check_postgres是一个命令行工具,旨在从 Icinga、MRTG 等软件中运行,或者作为独立工具运行。 它可以监控数据库的许多方面,并在阈值被违反时触发警告。
接口 & 收集器
这些工具要么提供对 PostgreSQL 监控相关数据的接口,要么可以聚合和准备这些数据以供其他系统使用。
pgsnmpd
pgsnmpd可以作为独立的 SNMP 服务器运行,并实现 RFC 1697 MIB,它是通用的 RDBMS MIB
这对仅限于 SNMP 协议的网络管理系统很有用。
pganalyze/collector
pganalyze/collector是一个收集pg_stat_plans查询信息以及各种与性能相关的数据库参数的工具,并将它们转换为 JSON 结构,以便其他系统易于获取。
pgexporter
pgexporter是 PostgreSQL 服务器指标的 Prometheus 导出器。
prometheus/postgres_exporter
prometheus/postgres_exporter是 PostgreSQL 服务器指标的 Prometheus 导出器。
weaponry/pgSCV
weaponry/pgSCV是一个多用途监控代理和与 Prometheus 兼容的 PostgreSQL、Pgbouncer 等的导出器。
带插件的通用监控解决方案
Cacti
人们一直在努力为 Cacti 构建 Postgres 模板,详情可以在 Cacti 页面中找到。
Circonus
Circonus 是一个通用的监控、分析和警报 SaaS,它为 postgres 预定义了查询,以监控一些常见的指标和检查,例如连接、事务、WAL、vacuum 和表统计信息。 更多信息可以在 这里 找到。
Severalnines 的 ClusterControl
ClusterControl 是一款全面的开源数据库管理系统,允许您部署、监控、管理和扩展您的数据库环境。 ClusterControl 提供了将 PostgreSQL 运行起来的必要基本功能,使用部署向导。 它提供了高级性能监控 - ClusterControl 监控查询并检测异常,并提供内置警报。 部署和监控是免费的,管理功能是付费版本的一部分。
Datadog
Datadog 是一款专有的 SaaS,它收集有关连接、事务、行 CRUD 操作、锁、临时文件、bgwriter、索引使用情况、复制状态、内存、磁盘、CPU 的 postgres 指标,并允许您将这些指标与其他系统和应用程序指标一起可视化并发出警报。
Foglight for PostgreSQL
Foglight for PostgreSQL 提供了一个全面的监控解决方案,重点是检测、诊断和解决问题。 该产品通过仪表板、规则和报告从服务器级指标到单个查询性能提供实时监控和警报。 监控支持从 PostgreSQL 9.1 版本开始的所有平台,包括 Aurora for PostgreSQL 等直接替换。
该解决方案是行业领先的数据库监控平台的一部分,来自 Quest Software 的 Foglight。
Munin
用 Perl 开发的 PostgreSQL 插件包含在核心 Munin 发行版中。 以下插件默认包含在内postgres_bgwriter、postgres_locks_、postgres_tuples_、postgres_cache_、postgres_querylength_、postgres_users、postgres_checkpoints、postgres_scans_、postgres_xlog、postgres_connections_、postgres_size_、postgres_connections_db、postgres_transactions_
PyMunin 包含一个用 Python 编写的 Multigraph Munin 插件,它实现了以下图形pg_connections、pg_diskspace、pg_blockreads、pg_xact、pg_tup_read、pg_tup_write、pg_blockreads_detail、pg_xact_commit_detail、pg_xact_rollback_detail、pg_tup_return_detail、pg_tup_fetch_detail、pg_tup_delete_detail、pg_tup_update_detail、pg_tup_insert_detail
NewRelic
NewRelic 是一款专有的 SaaS 应用程序监控解决方案,它提供了一个由 EnterpriseDB 维护的 PostgreSQL 插件。
Okmeter
Okmeter.io 是一款专有的 SaaS,它收集大量 PostgreSQL 状态和操作数据:超过 50 种关于连接、事务、表 CRUD 操作、锁、bgwriter、索引使用情况和操作、复制、自动 vacuum 的指标。 此外,还有查询计时、查询的磁盘和 CPU 使用情况(来自 pg_stat_statements)以及系统指标 - 每个进程的 CPU、内存、fd 和磁盘使用情况、每个端口的套接字连接以及 tcp 状态。 收集数据几乎不需要配置,有预构建的 图表仪表板、详细的查询报告和预设警报,如果您的 DB 出了问题,这些警报会通知您。 更多信息请见这里 和 这里有收集内容的详细信息。
Sematext
Sematext 云 是一款监控 SaaS,它收集 PostgreSQL 指标,例如连接、事务、行 CRUD 和索引统计信息、WAL 归档程序、brwriter 等等。指标的完整列表请参见 此处。指标可以通过 Sematext PostgreSQL 日志集成 与日志数据(例如语句时间)相关联。Sematext 云的本地版本作为 Sematext 企业版 提供。
Zabbix
pg_monz 是一款 Zabbix 用于 PostgreSQL 的监控模板。
libzbxpgsql 是一款 Zabbix 用于 PostgreSQL 的监控模板和本地代理模块。
以 PostgreSQL 为中心的监控解决方案
EnterpriseDB Postgres 企业管理器
Postgres 企业管理器 从单个图形控制台监控、提醒、管理和调整本地和远程大规模 Postgres 部署。开箱即用的功能包括:服务器自动发现、数据库对象的点击式管理、225 种以上预配置的数据库警报(通过 SMTP/SNMP)、自定义警报、全局“一目了然”监控仪表板、性能监控仪表板、自定义仪表板、审核管理器、Postgres 专家最佳实践配置建议、日志管理器、日志分析器专家、SQL 分析器和索引顾问。
pganalyze
pganalyze 是一款专有的 SaaS 产品,专注于性能监控和自动调整建议。
pgwatch2
pgwatch2 是一款独立、易于安装且高度可配置的 PostgreSQL 监控工具。它是容器化的,具有仪表板功能,可以发送警报。无需扩展或超级用户权限!
pg_statsinfo 和 pg_stats_reporter
pg_statsinfo 是一款 Postgres 扩展,它在 Postgres 服务器内部收集大量与性能相关的信息,然后可以由 pg_stats_reporter 实例聚合,这些实例为收集的数据提供 Web 界面。两者都是 NTT 维护的 FOSS 软件。
PGObserver
PGObserver 是一款由 Zalando 开发的基于 Python 和 Java 的 Postgres 监控解决方案。它的开发重点是存储过程性能,但已扩展到远远超出该范围。
pgCluu
pgCluu 是一款基于 Perl 的监控解决方案,它使用 psql 和 sar 来收集有关 Postgres 服务器的信息,并呈现全面的性能统计数据。
PoWA
PoWA 是一款 PostgreSQL 工作负载分析器,它收集性能统计数据并提供实时图表和图形,以帮助您监控和调整 PostgreSQL 服务器。它依赖于 pg_stat_statements、pg_qualstats、pg_stat_kcache、pg_track_settings 和 HypoPG 等扩展,可以帮助您轻松优化数据库。它完全是开源且免费的。
在线演示可在 demo-powa.anayrat.info 获得。只需点击“登录”即可开始使用。
OPM:开源 PostgreSQL 监控
开源 PostgreSQL 监控 (OPM) 是一款免费软件套件,旨在帮助您管理 PostgreSQL 服务器。它是一个灵活的工具,可以跟踪每个实例的活动。它可以收集统计数据、显示仪表板并在出现问题时发出警告。该项目的长期目标是提供与 Oracle Grid Control 或 SQL Server Management Studio 类似的功能。
PASH-Viewer:PostgreSQL 活动会话历史记录查看器
PASH-Viewer 是一款免费开源软件,它提供活动会话历史记录的图形视图,并帮助您回答诸如“哪些等待事件占用了最长时间?”、“哪些会话占用了最长时间?”、“哪些查询占用了最长时间,它们在做什么?”之类的问题。它还支持 pgsentinel 的活动会话历史记录扩展。
Datasentinel
Datasentinel 是一款专有的监控和故障排除解决方案(SaaS 或本地部署),它通过其众多功能(会话工作负载、SQL、数据库、实例的完整活动统计信息等等)帮助您快速识别减速现象。
temBoard
temBoard 是一款免费的开源远程控制和监控系统。它使用安装在数据库机器上的代理程序和 PostgreSQL 数据库作为元数据存储库。
Awide
Awide 是一款企业级专有解决方案,可简化 PostgreSQL 集群的管理、监控和故障排除。提供 SaaS 和私有云产品,以及本地安装。功能包括:能够在单个 Web 界面中管理所有企业 PostgreSQL 集群、RDS 数据库管理、配置管理和自动调整、数据库架构审计、实时活动管理(包括会话和锁)、查询分析、完整的监控解决方案(包括警报和与通信渠道的集成)等等。
Redgate Monitor
Redgate Monitor 是 Redgate Software 的专有监控解决方案。它为 PostgreSQL 和 SQL Server 环境提供详细的数据库监控。适用于本地部署、DBaaS 托管和混合环境。它有一个一屏、全方位概述,可以轻松识别当前或即将出现的问题、查询监控和建议、主动警报、数据库运行状况指标、高级集成 API 等等。