log_fdw
访问PostgreSQL日志文件的FDW
仓库
aws/postgresql-logfdw
https://github.com/aws/postgresql-logfdw
源码
log_fdw-1.4.tar.gz
log_fdw-1.4.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
log_fdw | 1.4 | FDW | Apache-2.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 8810 | log_fdw | 否 | 是 | 否 | 是 | 否 | 否 | - |
PG18 fixed by vonng
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.4 | 1817161514 | log_fdw | - |
| RPM | PIGSTY | 1.4 | 1817161514 | log_fdw_$v | - |
| DEB | PIGSTY | 1.4 | 1817161514 | postgresql-$v-log-fdw | - |
构建
您可以使用 pig build 命令构建 log_fdw 扩展的 DEB 包:
BASH
安装
您可以直接安装 log_fdw 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
创建扩展:
SQL
用法
log_fdw 是一个用于通过 SQL 读取 PostgreSQL 日志文件的外部数据包装器。它提供辅助函数,用于列出服务器日志目录中的文件,以及为单个日志文件创建外部表。
核心函数
上游 README 定义了两个 SQL 入口:
SQL
list_postgres_log_files() 是对 PostgreSQL 核心函数 pg_ls_logdir() 的兼容包装。
基本流程
先创建扩展和外部服务器:
SQL
列出 PostgreSQL 日志目录中的文件:
SQL
为 CSV 日志或普通 .log 文件创建外部表:
SQL
查询
由普通日志文件创建的外部表通常只暴露单个日志行样式的列;CSV 日志文件则会暴露结构化列,例如 log_time、error_severity、message 以及会话元数据。
典型用法如下:
SQL
权限
只有超级用户可以创建该扩展。上游还说明,超级用户可以通过最小权限授予把访问能力委托给非超级用户,例如:
SQL
当使用 list_postgres_log_files() 时,需要 pg_monitor,因为底层 pg_ls_logdir() 函数需要这个权限。
构建说明
该项目可以使用 PGXS 独立构建:
BASH
也可以把源码复制到 PostgreSQL 的 contrib 目录中,作为更大发行版的一部分进行构建。