02 Занятие 02: Установка и сопровождение / 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-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-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-figure-007 caption=“Source slide page 7: Архитектура”}
Комментарии преподавателя
Для расширения функций и возможностей PPEM может использовать внешние сервисы:
● LDAP — служба каталогов для внешней аутентификации пользователей.
В базовом сценарии использования PPEM аутентифицирует своих пользователей самостоятельно, нужные для этого данные хранятся в репозитории. Но при необходимости можно настроить взаимодействие с внешним каталогом пользователей и групп — поддерживается работа с сервисами OpenLDAP и Microsoft Active Directory. При использовании внешней службы учетные данные сначала проверяются в ней, а затем, если они не были обнаружены, выполняется проверка в репозитории.
● S3-совместимое объектное хранилище для резервных копий.
Для создания резервных копий экземпляров и восстановления из них PPEM использует утилиту pg_probackup. Копии при этом могут сохраняться не только в локальный каталог, но и в S3-совместимое хранилище объектов. Работа с pg_probackup подробно рассматривается далее в модуле «Резервное копирование».
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:
Запустим экземпляр с репозиторием и сервисы PPEM.
В этом экземпляре есть одноименные база данных репозитория и роль:
Настройки менеджера заданы следующим образом (уберем комментарии и пустые строки):
А агента — вот таким:
Page 11: Page 11
В качестве роли, под которой агент подключается к экземплярам, мы для простоты выбрали роль суперпользователя 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-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
Подключимся к серверу и выполним заведомо ошибочные действия, информация о которых попадет в журнал сообщений.
Посмотрим на интерфейс веб-приложения. Его главная страница содержит информацию о количестве обслуживаемых экземпляров, кластеров, базах данных и их размере. Тут же представлены ленты журнала сообщений экземпляров и уведомлений самого PPEM. Обратите внимание на наличие навигационной панели слева и панели инструментов наверху окна. В панели «Последние сообщения» можем найти записи журнала с информацией о наших ошибках — они были прочитаны из журнала сообщений экземпляра:
Открываем http://localhost:8180…
Page 15: Итоги
PPEM — комплексное решение для администрирования инфраструктуры баз данных
- Удобный интерфейс для управления, обслуживания и мониторинга СУБД PostgreSQL и различных редакций Postgres Pro
- Многокомпонентная архитектура с централизованным репозиторием и агентами на управляемых серверах
- Собственная система управления доступом на основе ролевой модели
Page 16: Практика
- Войдите в 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, а затем перезапустите экземпляр. Убедитесь, что эти команды отработали успешно.
Комментарии преподавателя
Значок на рабочем столе «PPEM start» запускает необходимые службы и открывает приложение в окне браузера. Для первого входа в PPEM используйте логин admin, пароль admin.
Для проверки откройте «Список заданий» во вкладке «Консоль заданий» навигационной панели.
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, нажав на соответствующую пиктограмму. Перейдите на главную страницу, выберите в навигационной панели вкладку «Консоль заданий» и убедитесь, что перезапуск выполнен.