Перейти к содержанию

Обзор развертывания Percona Monitoring на сервере

Предварительные требования и базовые условия

Развертывание Percona Monitoring and Management (PMM) требует сервера с совместимым дистрибутивом Linux, в частности Ubuntu. Перед началом установки необходимо выполнить следующие требования:

  • Операционная система: Ubuntu (версия не указана, предполагается поддержка APT).

  • Привилегии: Для установки пакетов, настройки Docker и управления системными службами требуется доступ с правами root или через sudo.

  • Менеджеры пакетов: Система должна иметь доступ к репозиторию APT и установке пакетов Python 3 (pip3).

  • Сетевое подключение: Сервер должен иметь исходящий доступ в интернет для загрузки установщика PMM, компонентов Docker и ресурсов центра сертификации.

  • Настройка домена: Доменное имя в зоне hostkey.in должно быть настроено и разрешено до публичного IP-адреса сервера.

FQDN конечной панели

Приложение доступно через полное доменное имя (FQDN), сформированное с использованием специфичного для сервера идентификатора. Стандартный формат для доступа к интерфейсу Percona Monitoring имеет вид:

percona<Server ID>.hostkey.in:443

Где <Server ID> заменяется на конкретный идентификатор, присвоенный экземпляру сервера. Служба использует протокол HTTPS на порту 443.

Структура файлов и директорий

Развертывание организует файлы и директории в следующих местах на хост-системе и внутри контейнера:

  • Конфигурация хост-системы:

    • Сертификаты SSL: /etc/letsencrypt/live/percona<Server ID>.hostkey.in/

    • DH-параметры: /etc/letsencrypt/ssl-dhparams.pem

  • Внутренние пути контейнера (PMM Server):

    • Сертификат SSL: /srv/nginx/certificate.crt

    • Приватный ключ SSL: /srv/nginx/certificate.key

    • Цепочка доверенных центров (CA Chain): /srv/nginx/ca-certs.pem

    • DH-параметры: /srv/nginx/dhparam.pem

    • Конфигурация Nginx: /srv/nginx/certificate.conf

Процесс установки приложения

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

  1. Обновление системы: Все пакеты APT обновляются и поднимаются до последних доступных версий.

  2. Установка зависимостей: На хосте устанавливаются следующие пакеты:

    • nginx

    • python3-pip

  3. Пакеты Python: Пакеты certbot и certbot-nginx устанавливаются через pip.

  4. Docker Engine: Движок Docker устанавливается и настраивается на хосте.

  5. Установка PMM: Стек Percona Monitoring and Management устанавливается путем выполнения официального скрипта загрузки:

    curl -fsSL https://www.percona.com/get/pmm | /bin/bash
    

Права доступа и безопасность

Меры безопасности, внедренные в процессе развертывания, включают шифрование SSL/TLS и усиление прав доступа к файлам:

  • Сертификаты SSL: Для конкретного домена выдается сертификат TLS через Certbot.

  • Копирование сертификатов: Сертификаты копируются из директории Let's Encrypt хоста в контейнер pmm-server.

  • Владение файлами: Внутри контейнера владение файлами сертификатов и конфигурации передается пользователю pmm и группе pmm для ограничения доступа:

    • /srv/nginx/certificate.crt

    • /srv/nginx/certificate.key

    • /srv/nginx/ca-certs.pem

    • /srv/nginx/dhparam.pem

    • /srv/nginx/certificate.conf

Docker-контейнеры и их развертывание

Приложение Percona Monitoring работает внутри Docker-контейнера, управляемого как единый экземпляр с именем pmm-server. Развертывание включает:

  • Имя контейнера: pmm-server

  • Внутреннее управление службами: Контейнер использует Supervisor для управления внутренними службами, включая Nginx.

  • Интеграция сертификатов: Сертификаты копируются в запущенный контейнер с помощью команды docker cp, а служба Nginx внутри контейнера перезапускается для применения новой SSL-конфигурации.

Прокси-серверы

Nginx развернут как на хост-системе (в качестве зависимости для Certbot), так и внутри контейнера pmm-server для обработки обратного проксирования (reverse proxy) и терминации SSL.

  • Поставщик SSL: Для выдачи и управления сертификатами Let's Encrypt используется Certbot.

  • Конфигурация: Nginx внутри контейнера настроен на использование скопированных файлов сертификатов, расположенных в /srv/nginx/.

  • Перезапуск службы: После обновления сертификатов внутренняя служба Nginx перезапускается через интерфейс управления Supervisor с помощью команды supervisorctl restart nginx.

Настройки прав доступа

Для обеспечения безопасности криптографических ключей и сертификатов внутри контейнера применяются специфические права доступа к файлам и владение ими:

  • Пользователь/Группа: pmm:pmm

  • Файлы:

    • certificate.crt

    • certificate.key

    • ca-certs.pem

    • dhparam.pem

    • certificate.conf

Эти права применяются путем выполнения команд chown внутри Docker-контейнера сразу после копирования файлов.

Расположение файлов конфигурации и данных

Файлы конфигурации и SSL-данные находятся в следующих местах:

  • Директория SSL хоста: /etc/letsencrypt/live/percona<Server ID>.hostkey.in/

  • DH-параметры хоста: /etc/letsencrypt/ssl-dhparams.pem

  • Директория Nginx контейнера: /srv/nginx/

    • Содержит активные сертификаты, приватные ключи и файлы конфигурации Nginx.

Доступные порты для подключения

Приложение предоставляет веб-интерфейс через стандартный порт HTTPS:

  • Порт 443: HTTPS (защищенный HTTP) для доступа к панели Percona Monitoring.

Запуск, остановка и обновление

Основное управление внутренней компонентой Nginx осуществляется через утилиту Supervisor внутри Docker-контейнера.

  • Перезапуск Nginx: Для применения изменений конфигурации или перезагрузки сертификатов служба Nginx перезапускается с помощью команды:

    docker exec -i pmm-server supervisorctl restart nginx
    

  • Управление контейнером: Контейнером pmm-server можно управлять с помощью стандартных команд Docker (например, docker start, docker stop, docker restart) на хост-системе.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×