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

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

---

Индекс LLMS: [llms.txt](/ru/llms.txt)

---

<!-- Generated by scripts/generate_skeleton.py. -->

> [!NOTE]
> Эта страница извлечена из официального PDF в нативный Markdown. Текст слайдов, код и комментарии сохранены в порядке чтения; исходные PDF и HTML остаются эталоном макета.
> **HTML source:** [pgpro_02_ppem.html](https://edu.postgrespro.ru/16/pgpro-16/pgpro_02_ppem.html)
> **Archive:** [PGPRO-handouts-16.zip](https://edu.postgrespro.ru/16/PGPRO-handouts-16.zip)
> **Страниц PDF:** 17

## Page 1: Установка и сопровождение / Postgres Pro Enterprise Manager {#source-page-001}

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

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

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

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

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

## Page 2: Темы {#source-page-002}

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

## Page 3: Назначение и особенности {#source-page-003}

**Единая консоль мониторинга и управления**
- Централизованный доступ к разным экземплярам и базам
- Работа из окна браузера
- Навигация по иерархии объектов
- Ролевая модель управления доступом
- Поддержка различных редакций 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: Возможности {#source-page-004}

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

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

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

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

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

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

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

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

● интегрирован с pg\_profile и pgpro\_pwr, предоставляет удобный интерфейс для работы со снимками и отчетами;

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

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

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

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

## Page 5: Архитектура {#source-page-005}

![Source slide page 5: Архитектура](images/page-005.png){#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-page-006}

![Source slide page 6: Архитектура](images/page-006.png){#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-page-007}

![Source slide page 7: Архитектура](images/page-007.png){#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-page-008}

![Source slide page 8: Архитектура](images/page-008.png){#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: Установка и настройка {#source-page-009}

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

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

После установки менеджера 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 {#source-page-010}

Для размещения репозитория PPEM в виртуальной машине курса создан экземпляр PostgreSQL:
```sh
student$ pg_lsclusters -s 16 ppem
```
```text
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.
```sh
student$ sudo pg_ctlcluster 16 ppem start
```
```sh
student$ sudo systemctl start ppem-agent
```
```sh
student$ sudo systemctl start ppem
```
```sh
student$ sudo systemctl start pgpro-otel-collector
```
В этом экземпляре есть одноименные база данных репозитория и роль:
```sh
student$ psql -p 5435 -U postgres -c '\du ppem' -c '\x' -c '\l ppem'
```
```text
     List of roles
 Role name | Attributes
-----------+------------
 ppem      |
```
```text
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 |
```
Настройки менеджера заданы следующим образом (уберем комментарии и пустые строки):
```sh
student$ sudo egrep -v '^\s*($|#)' /etc/ppem-manager.yml
```
```text
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
```
А агента — вот таким:
```sh
student$ sudo egrep -v '^\s*($|#)' /etc/ppem-agent.yml
```
```text
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 {#source-page-011}

```text
    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: Ролевая модель доступа {#source-page-012}

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

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

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

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

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

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

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

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

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

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

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

## Page 13: Веб-приложение {#source-page-013}

![Source slide page 13: Веб-приложение](images/page-013.png){#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 {#source-page-014}

Подключимся к серверу и выполним заведомо ошибочные действия, информация о которых попадет в журнал сообщений.
```sh
student$ psql
```
```text
=> SET log_mins_duration_statement = 0; -- неправильное название параметра
```
```text
ERROR:  unrecognized configuration parameter "log_mins_duration_statement"
```
```sh
student$ psql 'host=localhost dbname=postgres user=admin password=admin' # неверные учетные данные
```
```text
psql: error: connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL:
role "admin" does not exist
```
Посмотрим на интерфейс веб-приложения. Его главная страница содержит информацию о количестве обслуживаемых экземпляров, кластеров, базах данных и их размере. Тут же представлены ленты журнала сообщений экземпляров и уведомлений самого PPEM. Обратите внимание на наличие навигационной панели слева и панели инструментов наверху окна.
В панели «Последние сообщения» можем найти записи журнала с информацией о наших ошибках — они были прочитаны из журнала сообщений экземпляра:
```sh
student$ sudo egrep '(ERROR|SIGHUP|FATAL)' /var/lib/pgpro/ent-16/log/postgresql-2026-07-27_233312.log
```
```text
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>...
```sh
student$ open http://localhost:8180
```

## Page 15: Итоги {#source-page-015}

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

## Page 16: Практика {#source-page-016}

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.

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

## Page 17: 1. Пользователи PPEM {#source-page-017}

В навигационной панели выберите вкладку «Пользователи» и нажмите кнопку «Добавить пользователя». В открывшемся окне заполните необходимые поля; для пользователя 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, нажав на соответствующую пиктограмму. Перейдите на главную страницу, выберите в навигационной панели вкладку «Консоль заданий» и убедитесь, что перезапуск выполнен.
