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 | 否 | 是 | 否 | 是 | 否 | 否 | - |
| 相关扩展 | pg_sqlog pgaudit file_fdw auto_explain pgauditlogtofile logerrors wrappers multicorn |
|---|
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 包:
pig build pkg log_fdw # 构建 DEB 包
安装
您可以直接安装 log_fdw 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install log_fdw; # 当前活跃 PG 版本安装
pig ext install -y log_fdw -v 18 # PG 18
pig ext install -y log_fdw -v 17 # PG 17
pig ext install -y log_fdw -v 16 # PG 16
pig ext install -y log_fdw -v 15 # PG 15
pig ext install -y log_fdw -v 14 # PG 14
dnf install -y log_fdw_18 # PG 18
dnf install -y log_fdw_17 # PG 17
dnf install -y log_fdw_16 # PG 16
dnf install -y log_fdw_15 # PG 15
dnf install -y log_fdw_14 # PG 14
apt install -y postgresql-18-log-fdw # PG 18
apt install -y postgresql-17-log-fdw # PG 17
apt install -y postgresql-16-log-fdw # PG 16
apt install -y postgresql-15-log-fdw # PG 15
apt install -y postgresql-14-log-fdw # PG 14
创建扩展:
CREATE EXTENSION log_fdw;
用法
创建服务器
CREATE EXTENSION log_fdw;
CREATE SERVER log_fdw_server FOREIGN DATA WRAPPER log_fdw;
列出可用日志文件
SELECT * FROM list_postgres_log_files();
返回 PostgreSQL 日志目录中每个日志文件的文件名和大小。
为 CSV 日志创建外部表
SELECT * FROM create_foreign_table_for_log_file(
'postgresql_2024_01_15_csv', -- 外部表名
'log_fdw_server', -- 服务器名
'postgresql-2024-01-15.csv' -- 日志文件名
);
为纯文本日志创建外部表
SELECT * FROM create_foreign_table_for_log_file(
'postgresql_2024_01_15_log',
'log_fdw_server',
'postgresql-2024-01-15.log'
);
查询日志数据
-- 查询 CSV 格式日志(结构化列)
SELECT log_time, error_severity, message
FROM postgresql_2024_01_15_csv
WHERE error_severity = 'ERROR'
ORDER BY log_time DESC
LIMIT 20;
-- 查询纯文本日志
SELECT * FROM postgresql_2024_01_15_log LIMIT 10;
授权非超级用户访问
只有超级用户可以创建该扩展,但可以授予访问权限:
GRANT pg_monitor TO monitoring_user;
GRANT CREATE ON SCHEMA public TO monitoring_user;
GRANT USAGE ON FOREIGN SERVER log_fdw_server TO monitoring_user;
函数参考
| 函数 | 描述 |
|---|---|
list_postgres_log_files() | 列出可用日志文件及其大小 |
create_foreign_table_for_log_file(table_name, server_name, file_name) | 从日志文件创建外部表 |