跳转到主要内容

pg_stat_log

按后端类型、数据库、用户、日志级别与 SQLSTATE 统计 PostgreSQL 日志消息。

概览

扩展包名版本分类许可证语言
pg_stat_log0.3STATPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
6040pg_stat_log否是是是否是-

PostgreSQL 18+; shared preload and restart required. Upgrading 0.1/0.2 to 0.3 resets all cumulative statistics; SQL upgrade recreates the view/function, requiring dependent views and custom grants to be restored.

版本

类型仓库版本PG 大版本包名依赖
EXTPGDG0.31817161514pg_stat_log-
RPMPGDG0.31817161514pg_stat_log_$v-
DEBPGDG0.31817161514postgresql-$v-stat-log-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64N/AN/AN/AN/A
el8.aarch64N/AN/AN/AN/A
el9.x86_64N/AN/AN/AN/A
el9.aarch64N/AN/AN/AN/A
el10.x86_64N/AN/AN/AN/A
el10.aarch64N/AN/AN/AN/A
d12.x86_64N/AN/AN/AN/A
d12.aarch64N/AN/AN/AN/A
d13.x86_64N/AN/AN/AN/A
d13.aarch64N/AN/AN/AN/A
u22.x86_64N/AN/AN/AN/A
u22.aarch64N/AN/AN/AN/A
u24.x86_64N/AN/AN/AN/A
u24.aarch64N/AN/AN/AN/A
u26.x86_64N/AN/AN/AN/A
u26.aarch64N/AN/AN/AN/A

安装

您可以直接安装 pg_stat_log 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:

pig repo add pgdg -u          # 添加 PGDG 仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

安装
pig install pg_stat_log;          # 当前活跃 PG 版本安装
pig
pig ext install -y pg_stat_log -v 18  # PG 18
dnf
dnf install -y pg_stat_log_18       # PG 18
apt
apt install -y postgresql-18-stat-log   # PG 18

预加载配置:

shared_preload_libraries = '$libdir/pg_stat_log';

创建扩展:

CREATE EXTENSION pg_stat_log;

用法

来源:

pg_stat_log 0.3 按后端进程、数据库、角色、严重程度和 SQLSTATE 汇总 PostgreSQL 18+ 日志消息,并可按查询标识符分组。将共享库加入既有预加载列表,重启后再创建 SQL 扩展。默认 SQL 授权允许 pg_read_all_stats 查看计数。

核心用法

shared_preload_libraries = 'pg_stat_log'
CREATE EXTENSION pg_stat_log;
SELECT database_name, user_name, query_id, elevel, sqlerrcode_name, count
FROM pg_stat_log
ORDER BY count DESC;
SELECT * FROM pg_stat_log_info();

运行边界

视图 pg_stat_log 在 pg_stat_log_data() 的基础上解析名称。pg_stat_log_info() 返回 max_entries、num_entries、n_dropped 和 stats_reset;pg_stat_log_reset() 清空计数并释放容量,其执行权限默认受限。pg_stat_log.enabled 和 pg_stat_log.min_error_level 控制收集,默认值分别为 true 和 warning。只有进入服务器日志的消息才会计数:log_min_messages 可以提前过滤消息,被捕获的异常也不会计入。并行工作进程的消息可能让同一次逻辑故障被多次统计。

pg_stat_log.compute_query_id 默认关闭,修改需要重启;PostgreSQL 的 compute_query_id 不能设为 off。没有查询标识符时显示 NULL。pg_stat_log.max_entries 默认 1024,修改需要重启,容量用尽后会丢弃新的组合,可通过 n_dropped 监测。修改容量会在下次启动时重置 PostgreSQL 的全部累积统计。计数可跨正常重启保留,丢弃遥测信息不会保留;崩溃恢复会丢弃累积统计。

0.3 将连接认证、授权和断开分别映射到 PSL01、PSL02、PSL03。收集需要开启对应的服务器日志,并设置 pg_stat_log.min_error_level = 'log' 或更低阈值;角色归属于登录角色。

上游 0.1 和 0.2 发布均安装 SQL 版本 0.1。升级到 0.3 需要替换匹配的共享库并重启,首次启动会重置 PostgreSQL 的全部累积统计。随后在每个已安装的数据库中执行 ALTER EXTENSION pg_stat_log UPDATE TO '0.3'。升级会重建统计视图和函数:需先删除再重建依赖视图,并重新授予自定义权限;默认的 pg_read_all_stats 授权会恢复。

这个页面对您有帮助吗?