Перейти к содержимому

02 Занятие 02: Установка и сопровождение / Postgres Pro Enterprise Manager

Исходная страница в нативном Markdown: Установка и сопровождение / Postgres Pro Enterprise Manager
Примечание

Эта страница извлечена из официального PDF в нативный Markdown. Текст слайдов, код и комментарии сохранены в порядке чтения; исходные PDF и HTML остаются эталоном макета. HTML source: pgpro_02_ppem.html Archive: PGPRO-handouts-16.zip Страниц PDF: 17

Page 1: Установка и сопровождение / Postgres Pro Enterprise Manager

Авторские права

© Postgres Professional, 2023–2026 Авторы: Алексей Береснев, Илья Баштанов, Павел Толмачев, Игорь Гнатюк Фото: Олег Бартунов (монастырь Пху и пик Бхрикути, Непал)

Использование материалов курса

Некоммерческое использование материалов курса (презентации, демонстрации) разрешается без ограничений. Коммерческое использование возможно только с письменного разрешения компании Postgres Professional. Запрещается внесение изменений в материалы курса.

Обратная связь

Отзывы, замечания и предложения направляйте по адресу: edu@postgrespro.ru

Отказ от ответственности

Компания Postgres Professional не несет никакой ответственности за любые повреждения и убытки, включая потерю дохода, нанесенные прямым или непрямым, специальным или случайным использованием материалов курса. Компания Postgres Professional не предоставляет каких-либо гарантий на материалы курса. Материалы курса предоставляются на основе принципа «как есть» и компания Postgres Professional не обязана предоставлять сопровождение, поддержку, обновления, расширения и изменения.

Page 2: Темы

  • Назначение и особенности
  • Возможности
  • Архитектура
  • Установка и настройка
  • Ролевая модель доступа
  • Интерфейс веб-приложения

Page 3: Назначение и особенности

Единая консоль мониторинга и управления

  • Централизованный доступ к разным экземплярам и базам
  • Работа из окна браузера
  • Навигация по иерархии объектов
  • Ролевая модель управления доступом
  • Поддержка различных редакций PostgreSQL и Postgres Pro

Комментарии преподавателя

Postgres Pro Enterprise Manager (PPEM) — комплексное решение для администрирования инфраструктуры баз данных. PPEM предоставляет удобный интерфейс для управления и мониторинга СУБД PostgreSQL и различных редакций СУБД Postgres Pro.

https://postgrespro.ru/docs/ppem/2/index

PPEM может эксплуатироваться на операционных системах семейства Linux. Информация по совместимости с другим ПО, а также аппаратные и программные требования приведены в документации.

https://postgrespro.ru/docs/ppem/2/ppem-supported-platforms-and-operatin g-systems#PPEM-SUPPORTED-PLATFORMS-AND-OPERATING-SYSTEM S

https://postgrespro.ru/docs/ppem/2/ppem-compatibility

https://postgrespro.ru/docs/ppem/2/ppem-hardware-and-software-requireme nts#PPEM-HARDWARE-AND-SOFTWARE-REQUIREMENTS

Page 4: Возможности

Автообнаружение, настройка и управление экземплярами

  • Управление объектами баз данных
  • Мониторинг активности, производительности и профилирование
  • Регламентные операции по обслуживанию
  • Резервное копирование и восстановление
  • Прямой доступ к SQL-консоли экземпляров

Комментарии преподавателя

PPEM позволяет выполнять полный цикл задач развертывания, эксплуатации и обслуживания баз данных:

● обнаруживает экземпляры СУБД и добавляет их в веб-приложение, позволяет развернуть новые экземпляры — как одиночные, так и кластерные конфигурации;

● содержит средства просмотра и настройки параметров конфигурации без прямого редактирования файлов конфигурации;

● позволяет работать с объектами экземпляров СУБД;

● получает и отображает данные о внутренней активности СУБД от подсистемы статистики, позволяет отменять запросы и завершать процессы;

● интегрируется с pgpro-otel-collector, по предоставляемым им метрикам строятся графики для анализа работы СУБД;

● интегрирован с pg_profile и pgpro_pwr, предоставляет удобный интерфейс для работы со снимками и отчетами;

● может выполнять служебные операции (очистка, анализ, переиндексация и др.) вручную и автоматически по расписанию;

● позволяет осуществлять резервное копирование как вручную, так и по расписанию, а также создавать экземпляры из резервных копий;

● обеспечивает доступ к SQL-консоли экземпляра.

https://postgrespro.ru/docs/ppem/2/ppem-features#PPEM-FEATURES

Page 5: Архитектура

Source slide page 5: Архитектура{#source-figure-005 caption=“Source slide page 5: Архитектура”}

Комментарии преподавателя

Веб-приложение — набор компонентов, которые обеспечивают пользовательский интерфейс, доступный через браузер. Пользователь выполняет различные действия в браузере, а веб-приложение преобразует эти действия в запросы и отправляет их менеджеру.

https://postgrespro.ru/docs/ppem/2/ppem-description-of-components#PPEM -WEB-APPLICATION

Менеджер — служба, которая работает в фоновом режиме. Менеджер принимает запросы на обслуживание инфраструктуры СУБД от веб-приложения и преобразует их в операции согласно заложенной логике. Менеджер имеет собственный планировщик для выполнения регулярных служебных заданий. Веб-приложение устанавливается на сервере вместе с менеджером PPEM.

https://postgrespro.ru/docs/ppem/2/ppem-description-of-components#PPEM -MANAGER

Репозиторий — это база данных в отдельном экземпляре СУБД, в которой менеджер хранит свою служебную информацию. Во время запуска менеджер устанавливает соединение с репозиторием и при выполнении операций читает и записывает в него данные. Доступность репозитория крайне важна, без него менеджер работать не может.

https://postgrespro.ru/docs/ppem/2/ppem-description-of-components#PPEM -REPOSITORY

Page 6: Архитектура

Source slide page 6: Архитектура{#source-figure-006 caption=“Source slide page 6: Архитектура”}

Комментарии преподавателя

Агенты — это службы, которые выполняются на управляемых серверах. Агенты принимают задания от менеджера и выполняют действия как в операционной системе, так и в самом управляемом экземпляре СУБД. Действиями могут быть запуск команд, создание каталогов и файлов, выполнение запросов и т. п.

При синхронном выполнении агенты сразу отправляют менеджеру результаты действий для регистрации в репозитории и последующей обработки. При асинхронном выполнении менеджер периодически опрашивает статус задания. Как и менеджер, агенты имеют собственный планировщик служебных заданий, который регулярно выполняет фоновые задачи.

Выполнив операцию, менеджер сообщает веб-приложению ее результат, а приложение отображает его в браузере.

https://postgrespro.ru/docs/ppem/2/ppem-description-of-components#PPEM -AGENT

Объект управления PPEM — это экземпляр СУБД (PostgreSQL или Postgres Pro в редакциях Standard или Enterprise). На одном сервере достаточно одного агента, который может обслуживать несколько экземпляров СУБД. С точки зрения экземпляра агент является обычным клиентом, который подключается к СУБД под заранее определенной ролью.

https://postgrespro.ru/docs/ppem/2/ppem-description-of-components#PPEM -DBMS-INSTANCE

Page 7: Архитектура

Source slide page 7: Архитектура{#source-figure-007 caption=“Source slide page 7: Архитектура”}

Комментарии преподавателя

Для расширения функций и возможностей PPEM может использовать внешние сервисы:

● LDAP — служба каталогов для внешней аутентификации пользователей.

В базовом сценарии использования PPEM аутентифицирует своих пользователей самостоятельно, нужные для этого данные хранятся в репозитории. Но при необходимости можно настроить взаимодействие с внешним каталогом пользователей и групп — поддерживается работа с сервисами OpenLDAP и Microsoft Active Directory. При использовании внешней службы учетные данные сначала проверяются в ней, а затем, если они не были обнаружены, выполняется проверка в репозитории.

● S3-совместимое объектное хранилище для резервных копий.

Для создания резервных копий экземпляров и восстановления из них PPEM использует утилиту pg_probackup. Копии при этом могут сохраняться не только в локальный каталог, но и в S3-совместимое хранилище объектов. Работа с pg_probackup подробно рассматривается далее в модуле «Резервное копирование».

Page 8: Архитектура

Source slide page 8: Архитектура{#source-figure-008 caption=“Source slide page 8: Архитектура”}

Комментарии преподавателя

Другими внешними сервисами, с которыми может взаимодействовать PPEM, являются системы хранения метрик и журналов, поддерживающие спецификацию OTLP:

● Система хранения метрик с поддержкой работы по push-и/или по pull-модели. Поддерживается работа с Victoriametrics и Prometheus.

● Система хранения журналов. Поддерживается работа с Elasticsearch.

https://opentelemetry.io/docs/specs/otlp

Запись в эти хранилища выполняет служба pgpro-otel-collector. Задача коллектора — извлекать статистические данные об экземпляре из различных источников (системные представления, таблицы, журналы) и передавать их в системы хранения и мониторинга.

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

https://postgrespro.ru/docs/otelcol/current

Page 9: Установка и настройка

Менеджер

  • установка пакета
  • репозиторий
  • настройка
  • Агенты
    • установка
    • настройка
  • Особенности
    • безопасность и разделение доступа
    • работа с системами высокой доступности

Комментарии преподавателя

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

https://postgrespro.ru/docs/ppem/2/ppem-quick-start-installation#PPEM-QUI CK-START-INSTALLING-THE-MANAGER

Агент, будучи установленным из пакета, тоже нуждается в настройке. В служебном экземпляре СУБД нужно создать роль для подключения агента к базе репозитория. Также нужно задать в конфигурационном файле агента его уникальное имя, API-ключ и URL для подключения к менеджеру и учетные данные для доступа к базе репозитория.

https://postgrespro.ru/docs/ppem/2/ppem-quick-start-installation#PPEM-QUI CK-START-INSTALLING-THE-AGENT

В средах с усиленными мерами безопасности службы менеджера и агента могут быть настроены для запуска от имени отдельных, непривилегированных пользователей ОС:

https://postgrespro.ru/docs/ppem/2/ppem-installation-in-secure-environment s

Page 10: Настройки менеджера и агентов PPEM

Для размещения репозитория PPEM в виртуальной машине курса создан экземпляр PostgreSQL:

student$ pg_lsclusters -s 16 ppem
Ver Cluster Port Status      Owner    Data directory              Log file
16  ppem    5435 down,manual postgres /var/lib/postgresql/16/ppem
/var/log/postgresql/postgresql-16-ppem.log

Запустим экземпляр с репозиторием и сервисы PPEM.

student$ sudo pg_ctlcluster 16 ppem start
student$ sudo systemctl start ppem-agent
student$ sudo systemctl start ppem
student$ sudo systemctl start pgpro-otel-collector

В этом экземпляре есть одноименные база данных репозитория и роль:

student$ psql -p 5435 -U postgres -c '\du ppem' -c '\x' -c '\l ppem'
     List of roles
 Role name | Attributes
-----------+------------
 ppem      |
Expanded display is on.
List of databases
-[ RECORD 1 ]-----+------------
Name              | ppem
Owner             | ppem
Encoding          | UTF8
Locale Provider   | libc
Collate           | en_US.UTF-8
Ctype             | en_US.UTF-8
ICU Locale        |
ICU Rules         |
Access privileges |

Настройки менеджера заданы следующим образом (уберем комментарии и пустые строки):

student$ sudo egrep -v '^\s*($|#)' /etc/ppem-manager.yml
log:
  level: error
repo:
  host: localhost
  port: 5435
  name: ppem
  user: ppem
  password: ppem_pwd
http:
  server:
    address: "localhost"
    port: 8180
    static_files_path: "/usr/share/ppem/web-app"
    security:
      enabled: true

А агента — вот таким:

student$ sudo egrep -v '^\s*($|#)' /etc/ppem-agent.yml
agent:
  manager:
    url: "http://localhost:8180/v1"
    api_key: "15a2374b-2c7b-4b52-b576-126b9e0d8b46"
  instance:
    connection_defaults:
      host: localhost
      database: postgres
      user: postgres
  name: local
  collectors:
    host:
      interval: 5s

Page 11: Page 11

    agent:
      interval: 5s
    instances:
      interval: 5s
    instance_objects:
      interval: 5s
    instance_settings:
      interval: 5s
log:
  level: error
http:
  server:
    address: "localhost"
    port: 8181

В качестве роли, под которой агент подключается к экземплярам, мы для простоты выбрали роль суперпользователя postgres. Однако в реальной эксплуатации следует завести для этой цели отдельную роль, которую необходимо наделить полномочиями в соответствии с кругом выполняемых агентом задач.

Page 12: Ролевая модель доступа

Субъекты

  • пользователи и агенты
  • Объекты
    • ресурсы PPEM: сервер, агент, экземпляр, пользователь…
  • Роли
    • набор прав на один класс объектов
    • системные роли
    • объектно-привязанные роли

Комментарии преподавателя

Управление доступом в PPEM реализовано на основе ролевой модели. Субъектами являются пользователи и агенты, объектами — ресурсы самого PPEM и их представления в репозитории. Ресурсы относятся к разным классам, таким как экземпляры или задания.

Аутентификация субъектов может выполняться:

● Встроенными средствами PPEM. Данные о субъектах хранятся в репозитории и управляются администратором PPEM.

● Через внешний каталог LDAP. Данные о субъектах хранятся во внешнем каталоге, а менеджер настроен на работу с ним.

Уровень доступа субъектов к различным ресурсам определяется правами. Права не назначаются пользователям и группам напрямую, а приобретаются через роли.

Роль содержит набор прав на объекты одного класса. Обычно эти права относятся ко всем объектам класса, но можно указать и конкретный объект, тогда права и роли становятся объектно-привязанными.

Существует набор предопределенных («системных») ролей, удаление и изменение которых из веб-приложения невозможно, но можно создавать дополнительные пользовательские роли с нужными правами.

https://postgrespro.ru/docs/ppem/2/ppem-role-based-access-control-rbac-m odel

Отметим, что пользователи и роли PPEM никак не связаны с ролями обслуживаемых экземпляров СУБД.

Page 13: Веб-приложение

Source slide page 13: Веб-приложение{#source-figure-013 caption=“Source slide page 13: Веб-приложение”}

Комментарии преподавателя

Чтобы начать работать с приложением, нужно в адресной строке браузера ввести сетевой адрес или имя сервера и номер порта, на котором сервер прослушивает входящие подключения. Эти параметры задаются при настройке сервера и указаны в файле конфигурации менеджера; в виртуальной машине курса адрес — localhost:8180.

Далее, на странице авторизации, необходимо ввести логин и пароль пользователя. После этого откроется главная страница приложения, на которой представлена сводная информация о приложении и обслуживаемых ей объектах.

Элементами интерфейса также являются навигационная панель, с помощью которой можно быстро переходить с одной страницы приложения на другую (некоторые страницы приложения содержат вложенные страницы) и панель инструментов со строкой поиска компонентов, а также переключатели тем оформления и языка приложения.

Страницы приложения, преимущественно предназначенные для работы с инфраструктурой, и страницы, предназначенные для работы непосредственно с базами данных, сгруппированы на панели навигации в отдельные разделы «Инфраструктура» и «Базы данных».

В панели инструментов также есть пиктограмма в виде колокольчика, нажав на которую можно просмотреть уведомления самого PPEM.

https://postgrespro.ru/docs/ppem/2/ppem-web-application-interface#PPEM-WEB-APPLICATION-INTERFACE

Page 14: Интерфейс веб-приложения PPEM

Подключимся к серверу и выполним заведомо ошибочные действия, информация о которых попадет в журнал сообщений.

student$ psql
=> SET log_mins_duration_statement = 0; -- неправильное название параметра
ERROR:  unrecognized configuration parameter "log_mins_duration_statement"
student$ psql 'host=localhost dbname=postgres user=admin password=admin' # неверные учетные данные
psql: error: connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL:
role "admin" does not exist

Посмотрим на интерфейс веб-приложения. Его главная страница содержит информацию о количестве обслуживаемых экземпляров, кластеров, базах данных и их размере. Тут же представлены ленты журнала сообщений экземпляров и уведомлений самого PPEM. Обратите внимание на наличие навигационной панели слева и панели инструментов наверху окна. В панели «Последние сообщения» можем найти записи журнала с информацией о наших ошибках — они были прочитаны из журнала сообщений экземпляра:

student$ sudo egrep '(ERROR|SIGHUP|FATAL)' /var/lib/pgpro/ent-16/log/postgresql-2026-07-27_233312.log
2026-07-27 23:33:20.478 MSK [789390] ERROR:  unrecognized configuration parameter
"log_mins_duration_statement"
2026-07-27 23:33:20.556 MSK [789449] FATAL:  role "admin" does not exist

Открываем http://localhost:8180…

student$ open http://localhost:8180

Page 15: Итоги

PPEM — комплексное решение для администрирования инфраструктуры баз данных

  • Удобный интерфейс для управления, обслуживания и мониторинга СУБД PostgreSQL и различных редакций Postgres Pro
  • Многокомпонентная архитектура с централизованным репозиторием и агентами на управляемых серверах
  • Собственная система управления доступом на основе ролевой модели

Page 16: Практика

  1. Войдите в PPEM как admin и создайте пользователей access-adm и ent-16-adm, которые будут управлять в PPEM ролями пользователей и экземпляром ent-16. Пользователю access-adm выдайте право Access administrator role. 2. Создайте пользовательскую роль Notifications administrator c правами работы с уведомлениями. 3. Войдите в PPEM как access-adm. Назначьте пользователю ent-16-adm роль Notifications administrator и роль Instance administrator role для экземпляра ent-16. 4. Войдите в PPEM как ent-16-adm и выполните проверку целостности каталога данных экземпляра ent-16, а затем перезапустите экземпляр. Убедитесь, что эти команды отработали успешно.

Комментарии преподавателя

  1. Значок на рабочем столе «PPEM start» запускает необходимые службы и открывает приложение в окне браузера. Для первого входа в PPEM используйте логин admin, пароль admin.

  2. Для проверки откройте «Список заданий» во вкладке «Консоль заданий» навигационной панели.

Page 17: 1. Пользователи PPEM

В навигационной панели выберите вкладку «Пользователи» и нажмите кнопку «Добавить пользователя». В открывшемся окне заполните необходимые поля; для пользователя access-adm в список «Личные роли» дополнительно к «Guest role» добавьте «Access administrator role». Нажмите кнопку «Добавить».

2. Пользовательская роль

Откройте вкладку «Пользователи» в навигационной панели, а затем вкладку «Роли». Нажмите «Добавить роль» и в открывшемся окне введите системное название новой роли (правила его формирования указаны под полем ввода) и имя роли. Пользуясь строкой поиска привилегий, найдите те, что относятся к работе с уведомлениями (notification), и отметьте их. Нажмите «Далее», а затем «Добавить».

3. Выдача прав пользователю. Личные роли

Выйдите из сеанса admin, нажав кнопку с соответствующей пиктограммой в панели инструментов. В новом окне приглашения введите логин access-adm и пароль, затем нажмите «Войти». Поскольку вход с этим логином осуществляется впервые, потребуется сменить пароль. В таблице со списком пользователей выберите ent-16-adm и нажмите на пиктограмму редактирования в столбце «Действия». В открывшемся окне в список «Личные роли» добавьте «Instance administrator role» (с указанием ent-16 в поле «Объект») и «Notifications administrator», после чего нажмите «Сохранить».

4. Управление экземпляром

Выйдите из сеанса access-adm. В окне приглашения введите логин ent-16-adm и пароль, затем нажмите «Войти» и смените пароль согласно требованию. Перейдите на главную страницу: наверху навигационной панели нажмите «Главная» или щелкните по значку с эмблемой PPEM (со слоном) в левом верхнем углу. Откройте список экземпляров, щелкнув по блоку «Экземпляры», и затем нажмите на пиктограмму «Проверить целостность каталога» напротив ent-16. Дождитесь появления уведомления в панели инструментов на пиктограмме с изображением колокольчика (красная точка) и, нажав на нее, убедитесь, что проверка завершена. Перезапустите экземпляр ent-16, нажав на соответствующую пиктограмму. Перейдите на главную страницу, выберите в навигационной панели вкладку «Консоль заданий» и убедитесь, что перезапуск выполнен.