Инструкция по установке Postgres Pro Enterprise Manager

1. Установка РРЕМ через пакеты

 

*пример run-файла ПО РРЕМ для Astra Linux:

ppem-astra-smolensk-1.7-1.2.0-amd64.run

 

Выдать права на run файл и выполнить его:

chmod +x ppem-astra-smolensk-1.7-1.2.0-amd64.run
sudo ./ppem-astra-smolensk-1.7-1.2.0-amd64.run

 

1.2       Обновить пакеты:

apt-get update

1.3       Установить СУБД Postgres Pro Enterprise или Standard для базы данных репозитория РРЕМ                    (* пропустить этот шаг, если уже установлено)

Например:

apt-get install postgrespro-ent-15

1.4       Отредактировать файл аутентификации pg_hba.conf:

Изменить METHOD на trust в строках local и IPv4

1.5       Перезапустить экземпляр репозитория:

systemctl restart postgrespro-ent-15.service

1.6       Установить пакет Enterprise Manager, который устанавливает зависимые python-библиотеки и пакет с js приложением:

* Примечание: для работы ПО РРЕМ и Агента необходим Python не ниже версии 3.7, убедитесь, что в системе установлена нужная версия

apt-get install pgpro-manager

( *для RedHat и Oracle Linux: yum install pgpro-manager --nogpgcheck)

1.7       В конфигурационном файле /etc/pgpro-manager.conf отредактировать значение параметра «port=…» если порт экземпляра БД репозитория отличается от стандартного, также, в разделе [plugins] в строке «enabled=…»  убедиться, что добавлены плагины pg_stat_statements и pg_query_state, а также conf_preset для работы с пресетами конфигураций (если не добавлено по умолчанию)

1.8       Инициализировать базу данных репозитория:

init-pgpro-manager-repo --conf /etc/pgpro-manager.conf

( *для RedHat и Oracle Linux предварительно добавить символическую ссылку: ln -s /usr/share/pgpro-manager /usr/local/pgpro-manager)

1.9       Перезапустить сервис pgpro-manager:

systemctl restart pgpro-manager

systemctl status pgpro-manager

 

1.10     Проверить доступ к Enterprise Manager UI через браузер: URL http://{IP-адрес сервера}:8877 (admin/admin)

2. Агент Postgres Pro Enterprise Manager

Конфигурационный файл агента: /etc/pgpro-manager-agent.conf

Порт по умолчанию: 8899

Сервис systemd: pgpro-manager-agent

Лог агента: /var/log/pgpro-manager-agent.log

2.1. Настройка целевого экземпляра БД

Для подключения агента, в pg_hba.conf целевого экземпляра БД должна использоваться локальная авторизация trust !

Например:

# "local" is for Unix domain socket connections only
local   all             all                                     trust

2.2. Регистрация будущего агента в PPEM

В веб-интерфейсе раздел "Настройки" - "Настройки агентов", выбираем "Добавить агент"

Название - название сервера СУБД куда будет установлен агент
Хост - IP адрес или имя хоста
Порт - порт агента, по умолчанию 8899
Протокол - http
Период опроса доступности, сек. - 10
Статус - Ок

Выбираем "Сохранить"

В списке агентов появляется новая запись, в которой присутствует ключ аутентификации (auth), например:

Z8RF0J4xmmcHTnZfYBka1ngDYgcvLlgQ

2.3. Установка агента PPEM на сервер экземпляра(-ов) БД

* Примечание: на сервере РРЕМ дополнительно устанавливать агента не нужно, там используется локальный агент

 

Агент упакован в общий run-файл вместе с PPEM, его можно загрузить с сервера https://pubgit.postgrespro.ru/ppem/ppem/-/packages ,

2.3.1. Установка агента на примере Astra Linux

 

chmod +x ppem-astra-smolensk-1.7-1.2.0-amd64.run
sudo ./ppem-astra-smolensk-1.7-1.2.0-amd64.run

sudo apt update
sudo apt install pgpro-manager-agent

 

2.3.2. В файле конфигурации агента /etc/pgpro-manager-agent.conf изменить значения параметров:

  • manager_host - IP адрес или хост сервера PPEM
  • manager_key - ключ аутентификации агента, полученный в интерфейсе PPEM

Например:

sudo vi /etc/pgpro-manager-agent.conf

; DNS name or IP address of manager UI host
manager_host = 192.168.1.10

; Key if kept here
manager_key = Z8RF0J4xmmcHTnZfYBka1ngDYgcvLlgQ

2.3.3. Запустить агент

sudo systemctl start pgpro-manager-agent

2.3.4. Проверка статуса агента

systemctl status pgpro-manager-agent

На сервер ставится один агент PPEM, который может обслуживать любое количество экземпляров БД, работающих на разных портах.

PPEM и агент должны иметь одну и ту же версию.

2.4. Задание нового ключа аутентификации для агента

2.4.1. Остановить агент

sudo systemctl stop pgpro-manager-agent

2.4.2. Изменить в файле конфигурации /etc/pgpro-manager-agent.conf параметр manager_key, например:

; Key if kept here
manager_key = Z8RF0J4xmmcHTnZfYBka1ngDYgcvLlgQ

2.4.3. Запустить агент

sudo systemctl start pgpro-manager-agent

systemctl status pgpro-manager-agent

2.5. Удаление агента PPEM

sudo systemctl stop pgpro-manager-agent

sudo dpkg --purge pgpro-manager-agent

sudo rm -rf ppem-agent

 

3. Регистрация экземпляра БД в Postgres Pro Enterprise Manager

* Примечание: если целевой экземпляр БД работает на сервере РРЕМ, то в поле "Агент" выбираем "Локальный агент"

В веб-интерфейсе раздел "Экземпляры", выбираем "Добавить экземпляр"

3.1. Для добавления существующего экземпляра БД в полуавтоматическом режиме:

  • Выбираем в "Поиск экземпляра" пункт "Добавление экземпляра с обнаружением", а в "Тип инициализации" выбираем "Добавить существующий".
  • В следующем окне выбираем добавленный ранее агент и начинаем поиск
  • Выделяем появившуюся СУБД, потом "Далее"
  • В параметрах экземпляра проверяем правильность данных и заполняем следующие настройки:
    • Название - название сервера СУБД, где установлен агент PPEM
    • Пароль супер-пользователя БД
    • Период опроса экземпляра, сек. - 3
  • Выбираем "Выполнить", после чего в списке экземпляров добавится новый экземпляр БД.

3.2. Для добавления существующего экземпляра БД вручную:

  • Выбираем в "Поиск экземпляра" пункт "Добавление экземпляра вручную", а в "Тип инициализации" выбираем "Добавить существующий".
  • В следующем окне заполняем следующие данные:
    • Название - название сервера СУБД, где установлен агент PPEM
    • Порт - порт СУБД, по умолчанию 5432
    • Хост / Unix socket - каталог Unix-сокета. Его значение можно посмотреть в СУБД, параметр unix_socket_directories. Обычно это /tmp или /var/run/postgresql
    • pgdata - путь к каталогу СУБД (PGDATA). Например: /var/lib/pgpro/ent-15/data
    • Агент - выбирается ранее созданный агент (или «Локальный агент»)
    • BINDIR - путь к исполняемым файлам СУБД. Например: /opt/pgpro/ent-15/bin
    • Системный пользователь - пользователь ОС, от имени которого работает СУБД. По умолчанию: postgres
    • Супер-пользователь БД - по умолчанию: postgres
    • Пароль супер-пользователя БД
    • Конфигурационный файл - путь к конфигурационному файлу СУБД. Например: /var/lib/pgpro/ent-15/data/postgresql.conf
    • Период опроса экземпляра, сек. - 3
    • systemd unit - название сервиса СУБД, запускаемого systemd. Например: postgrespro-ent-15
  • Выбираем "Сохранить", после чего в списке экземпляров добавится новый экземпляр БД.

 

 

4. Настройка РРЕМ для работы по протоколу HTTPS

 

4.1. Доступ к web-консоли РРЕМ по https

 

 Чтобы настроить HTTPS нужно в конфигурацию добавить два параметра, при этом надо иметь файл ключа (private key) и сертификат. Эти файлы должны быть расположены на файловой системе РРЕМ, обычно в /etc/ssl/certs.

В /etc/pgpro-manager.conf нужно прописать в секции [web] два параметра:

  • ssl_key - Путь к ключу сертификата
  • ssl_cert - Путь к сертификату

Например, если сертификат и ключ лежат в директории /etc/ssl/certs/pgpro-manager и называются pgpro-manager-web.crt и pgpro-manager-web.key соответственно, то секция web может выглядеть так: 

 

[web]

host = 0.0.0.0

port = 443

access_control_allow_origin = *

web_app = on

web_app_path = /usr/share/pgpro-manager/web-app

ssl_cert = /etc/ssl/certs/pgpro-manager/pgpro-manager-web.crt

ssl_key = /etc/ssl/certs/pgpro-manager/pgpro-manager-web.key

Если сертификат и ключ упакованы в PEM файл, то в обоих параметрах надо указать этот файл.

Например, ключ и сертификат в pgpro-manager-web.pem:

 

[web]

host = 0.0.0.0

port = 443

access_control_allow_origin = *

web_app = on

web_app_path = /usr/share/pgpro-manager/web-app

ssl_cert = /etc/ssl/certs/pgpro-manager/pgpro-manager-web.pem

ssl_key = /etc/ssl/certs/pgpro-manager/pgpro-manager-web.pem

 

4.2. Настройка обмена данными между агентом и РРЕМ по https

 

Конфигурация:

Для того, чтобы агент принимал запросы только по протоколу HTTPS необходимо в конфигурационном файле агента в секции [networking] прописать два параметра:

  • ssl_key - путь к ключу сертификата.
  • ssl_cert - путь к сертификату.

В настройках агента в РРЕМ необходимо указать, что данный агент использует протокол HTTPS.

Использование локального корневого сертификата:

 

Если используются сертификаты, которые подписаны центрами авторизации, корневые сертификаты которых не установлены в системе, то путь к корневому сертификату можно указать в секции [agent] в параметре ca_cert конфигурационного файла РРЕМ.

На данный момент РРЕМ может использовать только один нестандартный корневой сертификат для общения со всеми агентами.

 

 

 

 

5. Обновление РРЕМ

 Для обновления основной или минорной версии РРЕМ необходимо заменить бинарные файлы и обновить схему репозитория при помощи утилиты ppem-migration.

Обновить РРЕМ сервер:

1) остановить РРЕМ: systemctl stop pgpro-manager                                                                                                  2) скачать/установить пакеты новой версии согласно инструкции по установке                                                 3) выполнить обновление схемы репозитория: ppem-migration -c /etc/pgpro-manager.conf upgrade                 4) стартовать РРЕМ: systemctl start pgpro-manager

Обновить PPEM агент:

1) остановить агент: systemctl stop pgpro-manager-agent                                                                                         2) скачать/установить пакеты новой версии согласно инструкции по установке                                                    3) стартовать агент: systemctl start pgpro-manager-agent

 

 

6. Удаление РРЕМ

  1. systemctl stop pgpro-manager
  2. (psql) drop database pgpro_manager_repo;
  3. (psql) drop tablespace compressed_tbs;
  4. (psql) drop user pgpro_manager;
  5. rm -Rf /var/lib/pgpro/ent-15/cfs_compressed
  6. yum erase pgpro-manager