Установка и настройка pgAdmin4 на Rocky Linux 8

Изображение: Панель управления pgAdmin4 с подключённой базой данных PostgreSQL
Введение
pgAdmin — бесплатный и открытый графический инструмент администрирования для PostgreSQL, одного из наиболее развитых open-source СУБД. pgAdmin предоставляет богатый набор функций и удобный интерфейс. Он поддерживает PostgreSQL 9.6 и выше и работает в нескольких режимах: настольный, серверный и контейнерный.
В этом руководстве подробно описано, как установить pgAdmin4 на Rocky Linux 8, настроить его через веб-сервер Apache (httpd), подключить к локальной установке PostgreSQL и выполнить базовые административные задачи.
Кому полезно: администраторы баз данных, системные администраторы, DevOps-инженеры и разработчики, которым нужно централизованно управлять PostgreSQL через веб-интерфейс.
Определение терминов в одну строку:
- pgAdmin4 — веб/десктоп интерфейс для управления PostgreSQL.
- PostgreSQL — объектно-реляционная СУБД с открытым исходным кодом.
Что вы получите после выполнения инструкции
- Рабочий pgAdmin4, доступный по URL http://<адрес_сервера>/pgadmin4
- Настроенный Apache для обслуживания pgAdmin4
- Локальный PostgreSQL с аутентификацией scram-sha-256
- Примеры создания пользователя и базы данных через pgAdmin4
- Контрольный список, рекомендации по безопасности и план отката
Важно: перед началом убедитесь, что у вас есть доступ root или привилегии sudo на сервере Rocky Linux 8 и что вы понимаете базовые команды systemd и dnf.
Содержание
- Предварительные требования
- Установка PostgreSQL на Rocky Linux 8
- Установка pgAdmin4 и настройка Apache
- Доступ и проверка установки
- Подключение к PostgreSQL через pgAdmin4
- Базовые операции в pgAdmin4: создание пользователя и базы данных
- Тестирование и критерии приёмки
- Безопасность и рекомендации для продакшена
- План отката и инцидентный runbook
- Роли и контрольные списки
- Часто задаваемые вопросы
- Краткое резюме
Предварительные требования
- Сервер Rocky Linux 8 с подключением к интернету.
- Учётная запись с правами root или sudo.
- Рекомендуется обновить систему перед началом:
sudo dnf update -y- Рекомендуемый минимум: 2 CPU, 2 ГБ ОЗУ для лёгкой рабочей нагрузки. В продакшене используйте больше ресурсов.
Примечание: если вы планируете обслуживать pgAdmin4 публично, подготовьте DNS-запись и сертификат TLS (Let’s Encrypt или другой CA).
Установка PostgreSQL на Rocky Linux
Если PostgreSQL уже установлен — переходите к разделу установки pgAdmin4. В противном случае используйте пакетный модуль, доступный в репозиториях Rocky Linux.
- Просмотрите доступные модули PostgreSQL:
sudo dnf module list postgresql- Включите модуль PostgreSQL 13 (пример). Вы можете выбрать другую поддерживаемую версию:
sudo dnf module enable postgresql:13Подтвердите ввод, нажав y.
- Установите пакеты сервера PostgreSQL:
sudo dnf install postgresql postgresql-server -y- Инициализируйте базу данных:
sudo postgresql-setup --initdb- Настройте шифрование паролей и метод аутентификации:
Откройте файл конфигурации:
cd /var/lib/pgsql/data/
sudo nano postgresql.confНайдите и разкомментируйте параметр password_encryption, установите значение scram-sha-256:
password_encryption = scram-sha-256Сохраните файл и перейдите к редактированию pg_hba.conf:
sudo nano pg_hba.confУбедитесь, что локальные подключения используют scram-sha-256 для хостов 127.0.0.1/32 и ::1/128. Пример фрагмента:
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256Примечание: для socket-подключений (local) вы можете оставить peer, если планируете использовать системных пользователей ОС для аутентификации. Если требуется парольная аутентификация, замените local на “md5” или другое подходящее значение.
- Включите и запустите службу PostgreSQL:
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo systemctl status postgresql- Установите пароль для суперапользователя postgres:
sudo -u postgres psql
ALTER USER postgres WITH PASSWORD 'strongpostgrespassword';
\qЗамените strongpostgrespassword на надёжный пароль. Храните его в менеджере паролей.
Проверка: подключитесь локально с помощью psql, чтобы убедиться, что аутентификация работает.
psql -U postgres -h 127.0.0.1 -WУстановка pgAdmin4 и настройка Apache
pgAdmin4 предоставляет собственный репозиторий для RHEL-подобных дистрибутивов.
- Импорт ключа и установите репозиторий:
rpm --import https://www.pgadmin.org/static/packages_pgadmin_org.pub
sudo rpm -i https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-2-1.noarch.rpm- Установите пакет web-интерфейса pgAdmin4:
sudo dnf install pgadmin4-web -yПакет автоматически подтянет Apache (httpd) и зависимости.
- Запустите скрипт настройки веб-интерфейса:
/usr/pgadmin4/bin/setup-web.shСкрипт попросит указать email и пароль администратора pgAdmin4. Этот аккаунт используется для входа в веб-интерфейс. После ввода учётных данных скрипт предложит сгенерировать конфигурацию Apache и включить её — подтвердите.
Проверьте, что сгенерирован конфигурационный файл Apache для pgAdmin4. Обычно он располагается в /etc/httpd/conf.d/pgadmin4.conf. Пример содержимого может включать alias /pgadmin4/ к каталогу установки.
Запустите и включите Apache:
sudo systemctl enable httpd
sudo systemctl start httpd
sudo systemctl status httpd- Базовый доступ: откройте браузер и перейдите по адресу http://
/pgadmin4. Вы увидите страницу входа pgAdmin4.
Заметки про SELinux и firewall:
- Если SELinux включён (Enforcing), разрешите доступ Apache к сокетам и сетевым соединениям:
sudo setsebool -P httpd_can_network_connect on- Откройте HTTP/HTTPS в firewalld, если используется:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reloadАльтернативы развёртывания
Вы можете запускать pgAdmin в трёх режимах. Выбор зависит от сценария:
- Настольный режим — установка на локальную машину разработчика.
- Серверный режим — установка, описанная в этом руководстве, подходит для нескольких пользователей по сети.
- Контейнерный режим — использование официального docker-образа pgAdmin4, удобно для тестовых и изолированных окружений.
Пример быстрой команды для контейнера:
docker run -p 80:80 --name pgadmin -e 'PGADMIN_DEFAULT_EMAIL=admin@example.com' -e 'PGADMIN_DEFAULT_PASSWORD=secret' dpage/pgadmin4Контейнеры дают удобство изоляции, но в продакшене потребуется аккуратно настраивать хранилище и доступ к сертификатам.
Проверка установки pgAdmin4
Откройте браузер и перейдите по адресу:
http:///pgadmin4 Войдите, используя email и пароль, указанные при запуске setup-web.sh. После успешного входа вы увидите рабочий стол pgAdmin4.
Если страница не открывается:
- Проверьте статус Apache: sudo systemctl status httpd
- Проверьте логи Apache: sudo journalctl -u httpd –no-pager
- Проверьте права доступа к каталогу установки pgAdmin4 и файл конфигурации в /etc/httpd/conf.d/
- Убедитесь в отсутствии блокирующих правил SELinux или firewall
Подключение к PostgreSQL через pgAdmin4
- На рабочем столе pgAdmin4 нажмите Add New Server.
- На вкладке General укажите имя подключения, например local или bob-connection.
- Перейдите на вкладку Connection и укажите параметры:
- Host name/address: 127.0.0.1 или IP сервера
- Port: 5432 (по умолчанию)
- Maintenance database: postgres
- Username: postgres или другой пользователь
- Password: пароль пользователя
- Нажмите Save.
Если подключение прошло успешно, вы увидите объект сервера в дереве слева с пометкой Active.
Совет: для локального сервера используйте 127.0.0.1 вместо имени хоста, чтобы избежать проблем с DNS.
Базовые операции в pgAdmin4
Ниже приведены шаги по созданию нового пользователя и базы данных через интерфейс pgAdmin4.
Создание пользователя (роли):
- В дереве базы данных щёлкните правой кнопкой по серверу или по пункту Login/Group Roles и выберите Create -> Login/Group Role.
- На вкладке General укажите имя роли, например bob.
- На вкладке Definition укажите пароль.
- На вкладке Privileges отметьте требуемые права (CREATEDB, CREATEROLE и т.д.)
- Нажмите Save.
Создание базы данных:
- Правый клик по пункту Databases -> Create -> Database.
- На вкладке General укажите имя базы bobdb и выберите владельца (Owner) bob.
- Нажмите Save.
Проверка подключения новым пользователем:
- Добавьте новое подключение в pgAdmin4 с пользователем bob и хостом 127.0.0.1.
- Укажите в поле Maintenance database или Database имя bobdb, чтобы сразу подключаться к ней.
- Сохраните и проверьте статус Active.
Примеры команд для администрирования вне pgAdmin4
Иногда удобно выполнить действия из командной строки:
- Создать пользователя:
sudo -u postgres psql -c "CREATE ROLE bob WITH LOGIN PASSWORD 'bobpassword';"- Создать базу, назначив владельца:
sudo -u postgres psql -c "CREATE DATABASE bobdb OWNER bob;"- Назначить привилегии:
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE bobdb TO bob;"Критерии приёмки
- Веб-интерфейс pgAdmin4 доступен по URL http://
/pgadmin4 и отображает страницу входа. - Успешный вход под админ-аккаунтом, созданным setup-web.sh.
- Успешное подключение к локальной базе PostgreSQL под пользователем postgres.
- Создание роли и базы данных через pgAdmin4 и подключение к базе пользователем bob.
- Apache и PostgreSQL запускаются и включены на старте системы.
Если хотя бы одно из условий не выполнено — установка считается неполной.
Безопасность и рекомендации для продакшена
Рекомендации для безопасной и стабильной эксплуатации:
- Обязательно включите HTTPS. Установите сертификат от Let’s Encrypt или другого CA и настройте редирект с HTTP на HTTPS.
- Ограничьте доступ к URL /pgadmin4 через firewall или обратный прокси (nginx) только с доверенных IP или через VPN.
- Создайте отдельного административного пользователя для pgAdmin4 и не используйте системный postgres для повседневной работы.
- Регулярно обновляйте пакеты (pgAdmin4, PostgreSQL, Apache) и следите за CVE.
- Используйте scram-sha-256 для хеширования паролей в PostgreSQL.
- Храните пароли в менеджере секретов и не передавайте их по незащищённым каналам.
- Настройте резервное копирование баз данных (pg_dump, pg_basebackup) и проверьте восстановление.
Пример настройки HTTPS для Apache (общая схема, настройте по вашему окружению):
- Установите certbot и получите сертификат:
sudo dnf install certbot python3-certbot-apache -y
sudo certbot --apache -d your.domain.tld- Убедитесь, что в конфигурации Apache включён редирект на HTTPS и что сертификаты обновляются автоматически.
План отката и инцидентный runbook
Если что-то пошло не так при развёртывании — используйте следующий упрощённый план отката:
- Отключите доступ из внешней сети в firewall: sudo firewall-cmd –permanent –remove-service=http; –remove-service=https; sudo firewall-cmd –reload
- Остановите Apache: sudo systemctl stop httpd
- Откатите изменения в /etc/httpd/conf.d/pgadmin4.conf на резервную копию или удалите файл конфигурации pgAdmin4.
- Если вы вносили изменения в postgresql.conf или pg_hba.conf — восстановите прежние версии из резервной копии и перезапустите PostgreSQL:
sudo systemctl restart postgresql- Восстановите ранее рабочую конфигурацию и уведомите заинтересованных сторон о восстановлении сервиса.
Инцидентный runbook — кратко:
- Сбор информации: логи httpd и PostgreSQL, status systemd.
- Определение масштаба: влияет ли проблема на всех пользователей или на отдельные подключения.
- Минимизация ущерба: отключение внешнего доступа, переключение на резервную ноду при наличии HA.
- Откат и восстановление из резервной копии.
Рольные контрольные списки
Контрольный список для DBA:
- Проверить настройки pg_hba.conf и password_encryption.
- Настроить бэкапы и тестировать восстановление.
- Назначить роли и привилегии по принципу наименьших прав.
Контрольный список для системного администратора:
- Настроить firewall и SELinux разрешения для Apache.
- Обновить систему и обеспечить мониторинг служб.
- Настроить HTTPS и автоматическое обновление сертификатов.
Контрольный список для DevOps:
- Автоматизировать развёртывание конфигурации (Ansible, Terraform).
- Рассмотреть контейнеризацию pgAdmin и оркестрацию для тестовых окружений.
- Настроить логи и оповещения.
Контрольный список для разработчика:
- Проверить доступы к тестовой базе bobdb.
- Использовать отдельные учётные записи для разработки и тестирования.
Диагностика распространённых ошибок
Ошибка: «Не удаётся подключиться к серверу»
- Проверьте, запущен ли PostgreSQL: sudo systemctl status postgresql
- Проверьте настройки pg_hba.conf и не блокирует ли firewall порт 5432.
Ошибка: «403 Forbidden» на странице /pgadmin4
- Проверьте права на каталоги и конфигурацию Apache.
- Если SELinux в режиме Enforcing, примените setsebool httpd_can_network_connect on.
Ошибка HTTP 500 при входе
- Посмотрите логи Python/pgAdmin в /var/log/httpd/ или в логах приложения.
- Проверьте, корректно ли создан sqlite-файл конфигурации pgAdmin (если используется).
Миграция и совместимость
- pgAdmin4 поддерживает управление PostgreSQL 9.6 и выше.
- При миграции между версиями PostgreSQL проверяйте совместимость SQL и расширений.
- Если используете реплики или кластерные решения (Patroni, repmgr), убедитесь, что pgAdmin подключается к правильному узлу.
Мини-методология развёртывания на продакшен
- Подготовьте тестовую среду, идентичную продакшену.
- Автоматизируйте установку и конфигурацию через Ansible/Playbook.
- Проведите нагрузочное тестирование и тесты на отказ.
- Настройте мониторинг и логирование (Prometheus, Grafana, ELK).
- Пилотное включение для небольшой группы пользователей.
- Пошаговое расширение доступа и финальное ревью безопасности.
Примеры тестов и критериев приёмки
- Тест: вход в pgAdmin4 под админом -> ожидаемый результат: успешный вход и доступ к интерфейсу.
- Тест: создание роли bob -> ожидаемый результат: роль видна в Login/Group Roles.
- Тест: создание базы bobdb и подключение под bob -> ожидаемый результат: успешное подключение и возможность выполнять SQL-запросы.
Безопасность данных и соответствие
pgAdmin4 — это инструмент управления, а не место для хранения чувствительных паролей. Рекомендации по защите данных:
- Храните пароли в системах секретов (Vault, AWS Secrets Manager).
- Ограничьте доступ к интерфейсу pgAdmin4 по сети и через аутентификацию.
- Для обработки персональных данных (GDPR) настройте контроль доступа и аудит изменений в базе.
Важно: если вы храните или обрабатываете персональные данные, согласуйте политику доступа и процедуру удаления данных с вашей юридической службой.
Решение: когда не стоит использовать pgAdmin4
- Если вы нуждаетесь в мелкозернистом аудите и автоматизации на уровне API для большого количества операций — рассмотрите инструменты автоматизации или написание собственных скриптов.
- Для высоконагруженных сценариев с большим числом соединений GUI-инструмент может быть узким местом.
Визуальный выбор режима установки (диаграмма)
flowchart TD
A[Нужен GUI для DBA] --> B{Доступность сервера}
B -->|Локально на рабочей станции| C[Установить настольный pgAdmin]
B -->|Общий доступ в сети| D[Установить серверный pgAdmin с Apache]
B -->|Изолированная среда/CI| E[Запустить в контейнере Docker]
D --> F{Нужен HTTPS}
F -->|Да| G[Настроить Let's Encrypt и proxy]
F -->|Нет| H[Только HTTP - не рекомендовано]Часто задаваемые вопросы
Как сменить пароль администратора pgAdmin4?
Откройте веб-интерфейс под админом, перейдите в профиль пользователя и измените пароль. При необходимости можно обновить запись в конфигурации сервера pgAdmin.
Можно ли запустить pgAdmin4 за обратным прокси nginx?
Да. Многие используют nginx перед Apache или вместо него. В этом случае настройте проксирование и SSL в nginx.
Поддерживает ли pgAdmin4 подключение через SSH туннель?
Да. При создании подключения укажите параметр SSH Tunnel и настройки SSH-хоста и ключа.
Как защитить pgAdmin4 от внешнего доступа?
- Ограничьте доступ через firewall по IP.
- Разместите интерфейс за VPN или в DMZ с аутентификацией.
- Используйте двухфакторную аутентификацию на уровне прокси (если возможно).
Примеры команд для резервного копирования
- Логический дамп базы:
pg_dump -U bob -h 127.0.0.1 -F c -b -v -f /var/backups/bobdb.dump bobdb- Восстановление из дампа:
pg_restore -U postgres -d bobdb -v /var/backups/bobdb.dumpШаблон контрольного списка перед вводом в продакшен
- Система обновлена и патчи применены
- PostgreSQL настроен с scram-sha-256
- Установлен и протестирован бэкап
- HTTPS настроен для Apache
- SELinux и firewall настроены корректно
- Мониторинг и логирование включены
- План отката согласован и протестирован
Заключение
Вы успешно узнали, как установить и настроить pgAdmin4 на Rocky Linux 8, подключить его к локальной установке PostgreSQL, создать пользователя и базу данных, а также обеспечить базовую безопасность и мониторинг. Для продакшена обязательно включите HTTPS, ограничьте доступ и настройте резервное копирование.
Краткие рекомендации на будущее:
- Автоматизируйте развёртывание через Ansible или другой инструмент.
- Внедрите мониторинг и оповещения.
- Регулярно обновляйте компоненты и проверяйте бэкапы.
Спасибо за внимание!
Дополнительные материалы и ссылки будут полезны при масштабировании и поддержке: официальная документация PostgreSQL и pgAdmin.
Похожие материалы
Как объединить видео на iPhone — iMovie и альтернативы
Перевёрнутый экран в Windows 10 — как исправить
Ложное срабатывание Behavior:Win32/Hive.ZY — что делать
Отключить повторную установку iOS‑приложений
Перенос чатов: WhatsApp → Telegram