更新时间:2024-09-05 GMT+08:00

配置远程模式

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

  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,以及安装相关插件。

    创建的database必须命名为powa,否则PoWA运行过程中会报错,部分功能失效。

    [postgres@ecs-ad4d ~]$ psql -U postgres -d postgres
    psql (12.6)
    Type "help" for help.
    postgres=# create database powa;
    CREATE DATABASE
    postgres=# \c 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 => '192.168.0.1',
      	alias => 'myInstance',
      	port => 5432,
      	username => 'user1',
      	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
      ----+---------------+------------+------+----------+------------+--------+-----------+---------------+-----------+------------------
      0 |           | <local>|  0 |          |            |        |        -1 |   100         | 00:00:00  | t           |
      1 | 192.168.0.1 | myInstance | user1 | 5432     | ********** | powa   |       300 |           100 | 1 day       | t             |
      (2 rows)

      在录入目标实例信息、查询目标实例都会涉及到目标实例的IP、root用户账户、明文口令等重要隐私信息,可能会面临信安全风险。

      请谨慎评估该插件带来的安全风险后决定是否使用该插件。

PoWA-collector 配置

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

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

配置文件中需要包含以下选项:

  • repository.dsn : URL,用于通知 powa-collector 如何连接专用存储数据库(powa-repository)。
  • debug : Boolean类型,用于指定是否在调试模式下启动 powa-collector。

本次演示中将配置写入文件./powa-collector.conf

{
    "repository": {
	"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
# 写入配置内容,并保存
servers={
	  'main': {
	    'host': 'localhost',
	    'port': '5432',
	    'database': 'powa',
	    'username': 'postgres',
	    'query': {'client_encoding': 'utf8'}
	  }
}
cookie_secret="SECRET_STRING"

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

启动 powa-web

cd /home/postgres/.local/bin

./powa-web &