Инструкция по установке Postgres Pro Enterprise Manager
1. Установка РРЕМ через пакеты
- PPEM распространяется в виде единого .run файла с необходимыми пакетами внутри, файл можно загрузить с сервера https://pubgit.postgrespro.ru/ppem/ppem/-/packages
*пример 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. Удаление РРЕМ
- systemctl stop pgpro-manager
- (psql) drop database pgpro_manager_repo;
- (psql) drop tablespace compressed_tbs;
- (psql) drop user pgpro_manager;
- rm -Rf /var/lib/pgpro/ent-15/cfs_compressed
- yum erase pgpro-manager