В этом разделе описано, как произвести изначальную установку и настройку PPEM, и приведены следующие инструкции:
Рекомендуется предварительно ознакомиться с разделом Быстрый старт.
В среде с усиленными мерами безопасности службы менеджера и агентов запускаются на серверах от имени отдельно созданных пользователей операционной системы, а не от имени суперпользователя. При этом пользователям операционной системы необходимо назначить дополнительные права для правильной работы служб менджера и агентов.
При выполнении команд, приведённых в этом разделе, обратите внимание на следующие особенности:
ppem для базы данных репозитория. При необходимости можно
указать другие имена.Процесс установки состоит из следующих этапов:
PPEM будет установлен. Вы можете обновить страницу браузера с веб-приложением и начать работу.
Перед началом установки прочитайте следующую информацию и выполните необходимые действия:
Создайте отдельных пользователей операционной системы на всех серверах:
# useradd ppem
От имени созданных пользователей операционной системы будут запускаться службы менеджера и агентов.
Чтобы настроить менеджер, выполните следующие действия на сервере с СУБД Postgres Pro:
Установите репозиторий:
# wget https://repo.postgrespro.ru/ppem/ppem/keys/pgpro-repo-add.sh
# sh pgpro-repo-add.sh
# apt updateУстановите менеджер:
# apt install ppem ppem-gui
На ваше локальное устройство скачается конфигурационный файл
менеджера /etc/ppem-manager.yml.
Создайте базу данных репозитория:
# sudo -u postgres createdb -O ppem ppemСоздайте пользователя СУБД, от имени которого менеджер будет подключаться к базе данных репозитория:
# sudo -u postgres createuser --pwprompt ppem
При выполнении команды укажите пароль для пользователя СУБД.
Убедитесь, что пользователь СУБД может подключиться к базе данных:
# psql -h localhost -U ppem -d ppem
При возникновении проблем с подключением убедитесь, что в
конфигурационный файл pg_hba.conf добавлено HBA-правило,
разрешающее пользователю СУБД подключаться к базе данных, а также указан
метод авторизации. За более подробной информацией обратитесь к
официальной документации Postgres Pro по конфигурационному файлу pg_hba.conf.
В конфигурационном файле менеджера
/etc/ppem-manager.yml выполните следующие действия:
Укажите имя базы данных репозитория с помощью параметра
repo.name:
repo:
name: "ppem"Укажите имя и пароль пользователя СУБД с помощью параметров
repo.user и repo.password:
repo:
user: "ppem"
password: "<пароль_пользователя_СУБД>"Укажите URL для подключения менеджера к базе данных репозитория с
помощью параметра repo.url:
repo:
url: "postgres://ppem:<пароль_пользователя_СУБД>@localhost/ppem"За подробной информацией о формате URL обратитесь к официальной документации Postgres Pro по строкам параметров подключения.
Настройте запуск службы менеджера от имени созданного пользователя операционной системы, выполнив следующие действия:
Начните редактирование юнита systemd:
# systemctd edit ppemВ разделе [Service] укажите имя пользователя
операционной системы:
[Service]
User=ppemУбедитесь, что пользователь операционной системы имеет право
чтения конфигурационного файла менеджера
/etc/ppem-manager.yml. Если право отсутствует, выполните
следующие команды:
# chown ppem:ppem /etc/ppem-manager.yml
# chmod 400 /etc/ppem-manager.ymlСохраните параметры юнита systemd, после чего
перезагрузите его:
# systemctl daemon-reloadЗапустите службу менеджера и добавьте её в автозагрузку:
# systemctl start ppem
# systemctl enable ppemНа сервере будет развёрнуто веб-приложение.
Чтобы настроить агенты, выполните следующие действия на всех серверах:
Установите агент:
# apt install ppem-agent
На ваше локальное устройство скачается конфигурационный файл агента
/etc/ppem-agent.yml.
Создайте пользователя СУБД, от имени которого агент будет подключаться к базе данных репозитория:
# sudo -u postgres createuser --pwprompt ppem_agent
При выполнении команды укажите пароль для пользователя СУБД.
Назначьте пользователю СУБД права на чтение системного каталога и запуск функций. Рекомендуется назначить следующие права:
GRANT pg_monitor, pg_maintain, pg_signal_backend, pg_read_all_settings TO ppem_agent;
Для каждой базы данных в экземпляре СУБД необходимо назначить следующие права:
GRANT EXECUTE ON FUNCTION pg_catalog.pg_stat_file(TEXT) TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.pg_stat_file(TEXT, BOOLEAN) TO ppem_agent;
GRANT SELECT ON pg_catalog.pg_statistic TO ppem_agent;
GRANT SELECT ON pg_catalog.pg_config TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.pg_config() TO ppem_agent;
GRANT SELECT ON pg_catalog.pg_file_settings TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.pg_show_all_file_settings() TO ppem_agent;
GRANT SELECT ON pg_catalog.pg_authid TO ppem_agent;
Для резервного копирования с помощью pg_probackup
необходимо назначить право REPLICATION и другие права:
ALTER ROLE ppem_agent WITH REPLICATION;
GRANT USAGE ON SCHEMA pg_catalog TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.current_setting(text) TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.set_config(text, text, boolean) TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.pg_is_in_recovery() TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.pg_backup_start(text, boolean) TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.pg_backup_stop(boolean) TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.pg_create_restore_point(text) TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_wal() TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_wal_replay_lsn() TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.txid_current() TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO ppem_agent;
GRANT EXECUTE ON FUNCTION pg_catalog.pg_control_checkpoint() TO ppem_agent;
Права достаточно назначить для базы данных, которая будет использоваться при подключении пользователя к экземпляру СУБД. За подробной информацией о правах обратитесь к официальной документации Postgres Pro по pg_probackup.
Убедитесь, что пользователь СУБД может подключиться к базе данных репозитория:
# psql -h localhost -U ppem_agent -d ppem
При возникновении проблем с подключением убедитесь, что в
конфигурационный файл pg_hba.conf добавлено HBA-правило,
разрешающее пользователю СУБД подключаться к базе данных, а также указан
метод авторизации. За более подробной информацией обратитесь к
официальной документации Postgres Pro по конфигурационному файлу pg_hba.conf.
Получите API-ключ для настройки агента, выполнив следующие действия:
Укажите параметры агента в конфигурационном файле
/etc/ppem-agent.yml:
agent.name: уникальное имя агента.agent.manager.url: URL для подключения агента к
менеджеру в формате
<схема>://<веб-адрес_менеджера>/<путь_к_версии_API>.agent.manager.api_key: ранее полученный API-ключ для
подключения агента к менеджеру.agent.instance.connection_defaults.user и
agent.instance.connection_defaults.password: имя и пароль
пользователя СУБД.http.server.address и http.server.port:
IP-адрес сервера и номер порта для входящих сетевых подключений. Чтобы
включить прослушивание всех IP-адресов и портов, не указывайте значения
для этих параметров.Пример конфигурационного файла /etc/ppem-agent.yml:
agent:
name: "local"
manager:
url: "https://ppem.example.org/v1"
api_key: "741c5c39-3ac9-402f-aeba-e2fa05bd3037"
instance:
connection_defaults:
user: "ppem_agent"
password: "<пароль пользователя СУБД>"
http:
server:
address: "192.0.2.1"
port: "80"Назначьте созданному
пользователю операционной системы права суперпользователя на работу
с целевыми каталогами с помощью команд chown и
chmod. Для запуска, остановки и перезапуска экземпляров
СУБД пользователю операционной системы также рекомендуется назначить
следующие права:
Cmnd_Alias PG_SYS = \
/usr/bin/systemctl status postgresql*.service, \
/usr/bin/systemctl stop postgresql*.service, \
/usr/bin/systemctl start postgresql*.service, \
/usr/bin/systemctl restart postgresql*.service, \
/usr/bin/systemctl reload postgresql*.service
Cmnd_Alias PG_CTL = \
/usr/lib/postgresql/17/bin/pg_ctl, \
/usr/lib/postgresql/16/bin/pg_ctl
ppem ALL = (root) NOPASSWD: PG_SYS
ppem ALL = (postgres) NOPASSWD: PG_CTLНастройте запуск службы агента от имени пользователя операционной системы, выполнив следующие действия:
Начните редактирование юнита systemd:
# systemctd edit ppem-agentВ разделе Service укажите пользователя операционной
системы:
[Service]
User=ppemУбедитесь, что пользователь операционной системы имеет право
чтения конфигурационного файла агента /etc/ppem-agent.yml.
Если право отсутствует, выполните следующие команды:
# chown ppem:ppem /etc/ppem-agent.yml
# chmod 400 /etc/ppem-agent.ymlСохраните параметры юнита systemd, после чего
перезагрузите его:
# systemctl daemon-reloadЗапустите службу агента и добавьте её в автозагрузку:
# systemctl start ppem-agent
# systemctl enable ppem-agentРезервное
копирование осуществляется в PPEM посредством
pg_probackup. Вам нужно установить
pg_probackup вручную на всех серверах. Версия
pg_probackup должна соответствовать версии экземпляров
СУБД.
Существуют две редакции pg_probackup — для Postgres Pro
Standard, а также для Postgres Pro Enterprise. Доступные в PPEM
возможности резервного копирования зависят от установленной редакции
pg_probackup.
За подробной информацией об установке обратитесь к официальной
документации Postgres Pro по pg_probackup для Postgres
Pro Standard или Postgres
Pro Enterprise.
Также рекомендуется ознакомиться с примером
установки pg_probackup с помощью пакетного менеджера APT
(для Debian-совместимых операционных систем).
После установки pg_probackup агент автоматически найдёт
его и сообщит об этом менеджеру. Затем на сервере станет доступно
резервное копирование.
Установленный pg_probackup рекомендуется настроить.
Процесс настройки состоит из следующих этапов:
Создайте отдельных пользователей СУБД на всех серверах и назначьте им
права для резервного копирования с помощью pg_probackup. За
подробной информацией обратитесь к официальной документации Postgres Pro
по настройке кластера баз данных для Postgres
Pro Standard или Postgres
Pro Enterprise.
Настройте потоковое резервное копирование на всех серверах. За подробной информацией обратитесь к официальной документации Postgres Pro по настройке потокового резервного копирования для Postgres Pro Standard или Postgres Pro Enterprise.
Настройте непрерывное архивирование WAL на всех серверах для обеспечения восстановления на определённый момент времени (PITR). Это можно сделать одним из следующих способов:
В этом разделе приведён пример установки pg_probackup на
сервере с экземпляром СУБД и PPEM. Рекомендуется предварительно
ознакомиться с разделом Установка и настройка
средств резервного копирования и восстановления.
Процесс установки состоит из следующих этапов:
Запустите новый сеанс от имени суперпользователя:
$ sudo -sДобавьте ключ GPG для репозитория pg_probackup. Для
этого может потребоваться установка дополнительных утилит:
# apt install gpg wget
# wget -qO - https://repo.postgrespro.ru/pg_probackup/keys/GPG-KEY-PG-PROBACKUP | \
# tee /etc/apt/trusted.gpg.d/pg_probackup.ascНастройте репозиторий пакетов:
# . /etc/os-release
# echo "deb [arch=amd64] https://repo.postgrespro.ru/pg_probackup/deb $VERSION_CODENAME main-$VERSION_CODENAME " | tee /etc/apt/sources.list.d/pg_probackup.listОбновите метаданные менеджера пакетов, чтобы пакеты
pg_probackup были доступны для просмотра и установки:
# apt update
# apt search pg_probackupУстановите pg_probackup:
# apt install pg-probackup-16
Версия pg_probackup должна соответствовать версии
экземпляра СУБД. В этом примере используется версия 16.
После установки pg_probackup агент автоматически найдёт
его и сообщит об этом менеджеру. Затем на сервере станет доступно
резервное копирование.
Журналирование экземпляров СУБД и работа с их метриками
осуществляется в PPEM посредством pgpro-otel-collector. Вам
нужно установить pgpro-otel-collector вручную на всех
серверах. За подробной информацией обратитесь к официальной документации
Postgres Pro по установке
pgpro-otel-collector.
Установленный pgpro-otel-collector необходимо настроить.
Процесс настройки состоит из следующих этапов:
Настройте журналирование экземпляров СУБД. За подробной информацией обратитесь к официальной документации Postgres Pro по конфигурации сервера для Postgres Pro Standard или Postgres Pro Enterprise. Необходимо убедиться, что указаны значения для следующих параметров:
logging_collectorlog_destinationlog_directorylog_filenameЖурналирование экземпляров СУБД должно вестись в формате
CSV или JSON.
pgpro-otel-collectorНастройте pgpro-otel-collector на сбор журналов и метрик
экземпляров СУБД. За подробной информацией обратитесь к официальной
документации Postgres Pro по настройке
работы с журналами, а также настройке
работы с метриками для pgpro-otel-collector.
Настройте pgpro-otel-collector на отправку журналов и
метрик экземпляров СУБД в PPEM или внешнее хранилище. За подробной
информацией обратитесь к официальной документации Postgres Pro по интеграции
pgpro-otel-collector c PPEM.
Примечание
Встроенное хранилище предназначено для ознакомления c PPEM. В эксплуатационной среде с большим количеством экземпляров СУБД и производимых метрик рекомендуется использовать отдельные внешние хранилища.