点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!
1
2
PoWA-archivist是PostgreSQL的插件,收集其他插件获取到的性能统计数据。
PoWA-collector是在专用存储库服务器上,用于收集远程PostgreSQL实例性能指标的守护进程。
PoWA-web是PoWA-collector收集到的性能指标的用户展示界面。
安装于目标PostgreSQL数据库实例上的其他插件,其是性能指标数据的实际来源。
pg_qualstats:用于保存在WHERE语句和JOIN子句中发现的谓词的统计信息,powa 利用它来提供索引建议。 pg_stat_kcache:收集有关文件系统层的实际读取和写入的统计信息,可以用于观察SQL花费多少cpu等。 pg_wait_sampling:用于收集等待事件的采样统计信息,启用后它会收集如下两种统计信息: --历史等待事件。它被实现为内存中的环形缓冲区,其中每个进程等待事件的样本都以给定的(可配置的)周期写入。因此,对于每个正在运行的进程,用户可以根据历史大小(可配置)查看一些最近的样本。假设有一个客户端定期读取此历史记录并将其转储到某个地方,则用户可以拥有连续的历史记录。 --等待分析,以内存hash表形式存在,表中存放每个进程和每个等待事件累积的样本,该表可以根据用户请求进行reset。假设有一个客户端定期转储并reset,用户可以统计一段时间内等待事件的详细。 pg_track_settings:该插件提供了一个可定期调用的函数(pg_tracksettingssnapshot())。 在每次调用时,它将存储自上次调用以来更改的设置。 Hypopg:类似MySQL虚拟索引。 pg_stat_statements:用于SQL语句监控。
3
PoWA 会对PostgreSQL服务器性能产生很小的负面影响。且很难准确评估这种影响。 如果不使用远程模式,数据将定期存储在本地,所以必须考虑磁盘使用情况,避免影响备份。 在使用远程模式时,powa-repository中配置采集性能指标实例信息需要输入目标实例的IP、帐号及口令,并且可以通过powa_servers表查询到相关信息,其中连接口令以明文形式呈现,存在安全风险。 在PoWA-collector配置文件中,powa-repository的连接信息中无连接口令配置,表示powa-repository对于PoWA-collector的连接配置项必须为trust,存在安全风险。 在PoWA-web配置文件中,可选配置username、password对应powa-repository(远程模式)或者数据库实例(本地模式)的root用户及连接口令,且以明文形式存储,存在安全风险。
4
检查pg_hba.conf文件,设置只容许相关网段的连接。
不允许用户从外网直接访问PoWA。
不允许用户从外网直接访问PostgreSQL。
在HTTPS服务器上运行PoWA并禁用HTTP访问。
使用SSL保护GUI和PostgreSQL之间的连接,拒绝GUI和PostgreSQL之间不受保护的连接。
建议手动授权专用角色查看powa数据库中的数据。
建议使用依赖其他libpq身份验证方法,杜绝纯文本密码存储,其身份验证方法详见官档https://www.postgresql.org/docs/current/auth-methods.html。
5

名为“powa”的管理功能扩展。
名称为“powa”的模块,可以选择作为后台工作程序运行,用以收集本地实例上的性能数据。
PostgreSQL版本为9.4或更新版本。
需安装pg_stat_statements和btree_gist模块。
su - postgres
unzip powa-archivist-REL_4_1_2.zip
cd powa-archivist-REL_4_1_2
make
make install

create database powa;
create extension pg_stat_statements;
create extension btree_gist;
create extension powa;

track_io_timing = on
shared_preload_libraries = 'pg_stat_statements,powa'


END
本文作者:魏 斌
本文来源:IT那活儿(上海新炬王翦团队)

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




