• 沒有找到結果。

3.2 PoWA 插件使用

3.2.3 PoWA 工作模式

PoWA的工作模式分为本地模式和远程模式,出于云上环境的安全性考虑,RDS for PostgreSQL不支持PoWA的本地模式,仅支持远程模式部署。

由于云上架构安全性考虑,RDS for PostgreSQL暂不支持本地模式的部署。

3-10 本地模式架构图

远程模式

使用第4版PoWA,可以将一台或多台服务器的数据存储在外部 PostgreSQL 数据库 上,当前RDS for PostgreSQL支持的PoWA版本为4.1.2。

相对于本地模式来说,远程模式主要变化在于设置了一个专门用于存储性能指标数据 的数据库(Powa repository),通过PoWA-collector来完成这项工作。

RDS for PostgreSQL支持远程模式的部署。

远程模式架构如下图所示:

3-11 远程模式架构图

3.2.3.1 远程模式部署

华为云上进行远程模式部署,需要一台ECS,并在ECS上安装PostgreSQL数据库以及 PoWA-archivist、PoWA-collector、PoWA-web。

安装PostgreSQL数据库不在此处赘述,本章节主要讲解PoWA-archivist、PoWA-collector、PoWA-web的安装过程。

架构如下图所示:

3-12 远程模式架构图

准备 ECS

通过华为云购买ECS并配置弹性公网IP,本次演示所购买的ECS系统镜像为:CentOS 8.2 64bit,并提前安装好PostgreSQL12.6。

Python3 的安装部署

安装PoWA-collecotor、PoWA-web依赖Pytho3n环境,且使用pip3安装可以减少很多 依赖环境安装的工作量。当前ECS以默认安装了 Python 3.6.8版本,由于版本偏低,安 装最新版本的PoWA失败,建议安装最新的python版本,详情请参见安装Python 3.9.9。

安装 PoWA-archivis

1. 安装PostgreSQL12.6以后,通过wget命令获取PoWA-archivist源码:

wget https://github.com/powa-team/powa-archivist/archive/refs/tags/

REL_4_1_2.tar.gz

2. 将下载好的REL_4_1_2.tar.gz进行解压。

3. 进入解压后的目录,执行命令完成安装。

make && make install

安装 PoWA-collector、PoWA-web

1. 切换到PostgreSQL数据库安装用户下,本次演示使用的是postgres。

su - postgres

/home/postgres/.local/bin

├── powa-collector.py

├── powa-web

└── __pycache__

常见问题

Q:在执行pip install psycopg2时可能会遇到报错python setup.py build_ext --pg-config /path/to/pg_--pg-config build。

A:配置 PostgreSQL的bin、lib路径到环境变量中,重新执行 pip install psycopg2 即 可完成安装。

3.2.3.2 配置远程模式

性能指标采集目标实例配置

步骤1 使用root用户登录目标实例的powa数据库。(若不存在,请先自行创建powa数据 库)

步骤2 在powa数据库中创建插件powa。

select control_extension('create', 'pg_stat_statements');

select control_extension('create', 'btree_gist');

select control_extension('create', 'powa');

----结束

本地 PostgreSQL 配置

本次演示ECS自建PostgreSQL(powa-repository)信息:

● 版本: PostgreSQL 12.6

● superuser: postgres

● data路径:/home/postgres/data

步骤1 修改配置文件 /home/postgres/data/postgresql.conf,添加 pg_stat_statements 至参 数 shared_preload_libraries,如下图所示:

步骤2 执行命令重启数据库。

pg_ctl restart -D /home/postgres/data/

步骤3 使用超级用户登录数据库,并创建database: powa,以及安装相关插件。

You are now connected to database "powa" as user "postgres".

powa=# create extension pg_stat_statements ; CREATE EXTENSION

powa=# create extension btree_gist ; CREATE EXTENSION

powa=# create extension powa;

CREATE EXTENSION

步骤4 配置需要采集性能指标的实例信息。

1. 执行SQL,添加目标实例信息。

powa=# select powa_register_server(

hostname => 'xxx.xxx.xxx.xxx', alias => 'myInstance', port => xxxx, username => 'xxxx', password => '**********', frequency => 300);

powa_register_server t

(1 row)

2. 通过查看 powa_servers 表来获取当前采集指标信息实例的信息

powa=# select * from powa_servers;

id | hostname | alias | port | username | password | dbname | frequency | powa_coalesce | retention | allow_ui_connection |version

PoWA-collector 配置

PoWA-collector启动时,将按以下顺序搜索配置文件作为其配置:

1. /etc/powa-collector.conf 2. ~/.config/powa-collector.conf 3. ~/.powa-collector.conf

4. ./powa-collector.conf 配置文件中需要包含以下选项:

"dsn": "postgresql://postgres@localhost:5432/powa"

},

"debug": true }

PoWA-collector 的配置中并没有密码的配置,所以powa-repository数据库的 pg_hba.conf中需要配置对应的连接策略为trust免密连接。

启动 powa-collector

cd /home/postgres/.local/bin ./powa-collector.py &

PoWA-web 配置

PoWA-collector启动时,将按以下顺序搜索配置文件作为其配置:

1. /etc/powa-web.conf 2. ~/.config/powa-web.conf 3. ~/.powa-web.conf

4. ./powa-web.conf

本次实例中需要将配置内容写入文件./powa-web.conf中。

# cd /home/postgres/.local/bin

# vim ./powa-web.conf

# 写入配置内容,并保存

}cookie_secret="SECRET_STRING"

本次演示,powa-repository数据库pg_hab.conf中配置为trust,免密连接,因此未配 置password。

启动 powa-web

cd /home/postgres/.local/bin ./powa-web &