Установка и настройка
В этом разделе описано, как произвести изначальную установку и настройку PPEM, и приведены следующие инструкции:
- Установка в средах с усиленными мерами безопасности
- Установка и настройка средств резервного копирования и восстановления
- Установка и настройка средств журналирования и мониторинга
Рекомендуется предварительно ознакомиться с разделом Быстрый старт.
Установка в средах с усиленными мерами безопасности
В среде с усиленными мерами безопасности службы менеджера и агентов запускаются на серверах от имени отдельно созданных пользователей операционной системы, а не от имени суперпользователя. При этом пользователям операционной системы необходимо назначить дополнительные права для правильной работы служб менджера и агентов.
При выполнении команд, приведённых в этом разделе, обратите внимание на следующие особенности:
- Приведены команды для операционной системы Debian Linux. При использовании другой версии операционной системы используйте соответствующие команды.
- В командах указаны стандартные имена для объектов, например
ppem
для базы данных репозитория. При необходимости можно указать другие имена.
Процесс установки состоит из следующих этапов:
- Убедитесь, что выполнены предварительные требования.
- Создайте пользователей операционной системы.
- Настройте менеджер.
- Настройте агенты.
PPEM будет установлен. Вы можете обновить страницу браузера с веб-приложением и начать работу.
Предварительные требования
Перед началом установки прочитайте следующую информацию и выполните необходимые действия:
- Подготовьте серверы, на которых будет установлен PPEM, в соответствии с аппаратными и программными требованиями. Потребуется как минимум один сервер.
- Установите экземпляр СУБД Postgres Pro как минимум на одном из серверов. За подробной информацией по установке обратитесь к официальной документации Postgres Pro.
Создайте пользователей операционной системы
Создайте отдельных пользователей операционной системы на всех серверах:
# 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-ключ для настройки агента, выполнив следующие действия:
- Войдите в веб-приложение.
- Скопируйте 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
рекомендуется настроить. Процесс настройки состоит из следующих этапов:
- Настройте пользователей СУБД.
- Настройте потоковое резервное копирование.
- Настройте непрерывное архивирование WAL.
Настройте пользователей СУБД
Создайте отдельных пользователей СУБД на всех серверах и назначьте им права для резервного копирования с помощью pg_probackup
. За подробной информацией обратитесь к официальной документации Postgres Pro по настройке кластера баз данных для Postgres Pro Standard или Postgres Pro Enterprise.
Настройте потоковое резервное копирование
Настройте потоковое резервное копирование на всех серверах. За подробной информацией обратитесь к официальной документации Postgres Pro по настройке потокового резервного копирования для Postgres Pro Standard или Postgres Pro Enterprise.
Настройте непрерывное архивирование WAL
Настройте непрерывное архивирование WAL на всех серверах для обеспечения восстановления на определённый момент времени (PITR). Это можно сделать одним из следующих способов:
- При настройке экземпляра СУБД на сервере. За подробной информацией обратитесь к официальной документации Postgres Pro по настройке непрерывного архивирования WAL для Postgres Pro Standard или Postgres Pro Enterprise.
- При настройке экземпляра СУБД в веб-приложении.
Пример установки pg_probackup с помощью APT
В этом разделе приведён пример установки 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
необходимо настроить. Процесс настройки состоит из следующих этапов:
- Настройте журналирование экземпляров СУБД.
- Настройте сбор журналов и метрик в pgpro-otel-collector.
- Настройте отправку журналов и метрик в PPEM или внешнее хранилище.
Настройте журналирование экземпляров СУБД
Настройте журналирование экземпляров СУБД. За подробной информацией обратитесь к официальной документации Postgres Pro по конфигурации сервера для Postgres Pro Standard или Postgres Pro Enterprise. Необходимо убедиться, что указаны значения для следующих параметров:
logging_collector
log_destination
log_directory
log_filename
Журналирование экземпляров СУБД должно вестись в формате CSV
или JSON
.
Настройте сбор журналов и метрик в pgpro-otel-collector
Настройте pgpro-otel-collector
на сбор журналов и метрик экземпляров СУБД. За подробной информацией обратитесь к официальной документации Postgres Pro по настройке работы с журналами, а также настройке работы с метриками для pgpro-otel-collector
.
Настройте отправку журналов и метрик в PPEM или внешнее хранилище
Настройте pgpro-otel-collector
на отправку журналов и метрик экземпляров СУБД в PPEM или внешнее хранилище. За подробной информацией обратитесь к официальной документации Postgres Pro по интеграции pgpro-otel-collector c PPEM.
Примечание
Встроенное хранилище предназначено для ознакомления c PPEM. В эксплуатационной среде с большим количеством экземпляров СУБД и производимых метрик рекомендуется использовать отдельные внешние хранилища.