概述
pg_netstat监控您的 PostgreSQL 数据库网络流量。
此扩展运行一个后台工作程序来捕获 Postgres 端口上的网络数据包,并通过视图提供实时网络统计数据pg_netstat。它使用libpcap以用户指定的时间间隔捕获数据包和聚合。
该pg_netstat视图最多可包含60 个历史记录行,并在已满时丢弃最旧的行,因此请明智地选择您的时间间隔。
用法
pg_netstat您可以通过视图查询实时网络统计信息。
select * from pg_netstat;
查询结果如下:
安装
先决条件
在安装此扩展之前,您需要为 Postgres 二进制文件授予网络数据包捕获权限。例如,
sudo setcap cap_net_raw,cap_net_admin=eip /usr/local/pgsql/bin/postgreslibpcap库也应该安装,例如,sudo apt-get install libpcap-dev
之后,我们就可以开始安装了。下载这个 repo 并设置pgx:
cargo install cargo-pgx
设置好 pgx 后,使用以下命令构建扩展包:
cargo pgx package --pg-config ~/.pgx/14.5/pgx-install/bin/pg_config
扩展位于 path ./target/release/pg_netstat-pg14。
更改postgresql.conf以启用以下行:
shared_preload_libraries = 'pg_netstat' # (change requires restart)
重新启动服务器并在数据库中安装扩展:
create extension pg_netstat;
-- check everything is working
select * from pg_netstat; 配置
以下是您可以放入postgresql.conf文件的配置:
pg_netstat.device- 用于捕获数据包的网络设备名称,默认为自动检测pg_netstat.interval- 收集网络数据包的频率(以秒为单位),默认为10pg_netstat.packet_wait_time- 等待网络数据包传送到收集器的时间(以秒为单位),默认为5pg_netstat.pcap_buffer_size- 缓冲区大小的 pcap 设置(以字节为单位),默认为1000000pg_netstat.pcap_snaplen- 快照长度的 pcap 设置(以字节为单位),默认为96pg_netstat.pcap_timeout- 数据包缓冲区超时的 pcap 设置(以毫秒为单位),默认为1000
您可以通过运行ifconfig命令列出网络设备名称。例如,“localhost”的设备名称是lo. 默认情况下,它使用第一个不是loopback网络接口的设备。
最有用的配置是pg_netstat.interval,它定义了统计数据收集频率。可以使用pg_ctl以下命令从配置文件重新加载其更改:
pg_ctl reload -D /path/to/pg-data
所有其他设置都处于低级别,您可能不想更改它们。有关所有pcap_*设置,请参阅https://www.tcpdump.org/manpages/pcap.3pcap.html中的详细信息。
警告和限制
- 不支持 Windows,该限制继承自
pgx. - 目前仅支持 PostgreSQL v14。
- 只能指定一个网络设备来捕获数据包。
- 复制尚未测试,使用风险自负。
pg_netstat源代码:https://github.com/supabase/pg_netstat
最后修改时间:2022-09-14 10:07:52
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





