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

Обзор развертывания Prometheus и Nginx-Certbot на сервере

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

Для корректной работы системы на сервере должны быть выполнены следующие условия: - Операционная система Ubuntu. - Установленный и работающий демон Docker. - Права доступа пользователя root для управления контейнерами и файловой системой. - Открытые порты для доступа к веб-интерфейсу Prometheus и прокси-серверу. - Наличие доменного имени для настройки SSL-сертификатов через Certbot.

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

Конфигурация и данные приложения распределены по следующим директориям: - /root/nginx — каталог для запуска контейнеров прокси-сервера и управления сертификатами. - /root/nginx/compose.yml — файл конфигурации Docker Compose для Nginx и Certbot. - /data/nginx — хранилище конфигурационных файлов и переменных окружения. - /data/nginx/nginx-certbot.env — файл переменных окружения для сервиса Nginx. - /data/nginx/user_conf.d — директория с пользовательскими конфигурациями Nginx. - /data/nginx/user_conf.d/<prefix><server_id>.hostkey.in.conf — файл конфигурации конкретного хоста с настройками проксирования. - /etc/prometheus (внутри контейнера) — точка монтирования конфигурации Prometheus. - /prometheus (внутри контейнера) — точка монтирования данных временной базы данных Prometheus.

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

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

Установка Docker

На сервере выполняется установка и настройка Docker через роль docker-managed-install.

Настройка Prometheus

  1. Создаются директории для данных и конфигурации Prometheus.
  2. Генерируется файл конфигурации prometheus.yml с настройками сбора метрик.
  3. Запускается контейнер Prometheus с образом prom/prometheus.

Настройка Nginx и Certbot

  1. Создается каталог /root/nginx.
  2. Генерируется файл compose.yml в директории /root/nginx.
  3. Обновляется конфигурация Nginx в файле /data/nginx/user_conf.d/<prefix><server_id>.hostkey.in.conf:
  4. Удаляется существующая строка proxy_pass.
  5. Добавляется новая строка proxy_pass http://127.0.0.1:9090; внутри блока location /.
  6. Запускаются контейнеры Nginx и Certbot через Docker Compose.

Контейнеры Docker и их запуск

Система использует два основных контейнера: Prometheus и связку Nginx-Certbot.

Контейнер Prometheus

Запускается с использованием следующих параметров: - Имя контейнера: prometheus. - Образ: prom/prometheus. - Политика перезапуска: always. - Порт: маппинг локального порта на 9090 внутри контейнера. - Монтирование томов: - Конфигурация: {{ prometheus_config_dir }}/prometheus.yml на /etc/prometheus/prometheus.yml. - Данные: {{ prometheus_data_dir }} на /prometheus. - Команда запуска включает параметры конфигурации файла, пути к хранилищу и включение жизненного цикла веб-интерфейса.

Контейнер Nginx-Certbot

Управляется через файл compose.yml в директории /root/nginx. - Образ: jonasal/nginx-certbot:latest. - Политика перезапуска: unless-stopped. - Режим сети: host. - Переменные окружения: - CERTBOT_EMAIL=hkadm@hostkey.com. - Дополнительные переменные из файла /data/nginx/nginx-certbot.env. - Монтирование томов: - Внешний том nginx_secrets на /etc/letsencrypt для хранения сертификатов. - Директория /data/nginx/user_conf.d на /etc/nginx/user_conf.d для пользовательских конфигов.

Базы данных

Сервис Prometheus использует встроенную временную базу данных (Time Series Database). - Данные хранятся в директории, смонтированной в контейнере по пути /prometheus. - Конфигурация сбора метрик указывает на цель localhost:9090 для сбора собственных метрик Prometheus.

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

Настройка прав доступа к файлам и директориям выполнена следующим образом: - Директория /root/nginx имеет владельца root и группу root с правами 0755. - Файл compose.yml имеет права 0644. - Директории для данных Prometheus имеют владельца и группу с ID 65534 (обычно nobody) и права 0775 с рекурсивным применением. - Конфигурационные файлы Nginx в /data/nginx/user_conf.d модифицируются скриптом развертывания для установки правил проксирования.

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

Управление сервисами осуществляется через команды Docker и Docker Compose.

Запуск Nginx и Certbot

Для запуска контейнеров прокси-сервера используется команда:

docker compose up -d
Команда выполняется из директории /root/nginx.

Управление Prometheus

Контейнер Prometheus управляется стандартными командами Docker: - Запуск: docker start prometheus - Остановка: docker stop prometheus - Перезапуск: docker restart prometheus

Обновление конфигурации требует перезапуска соответствующих контейнеров после изменения файлов в директориях /root/nginx или /data/nginx.

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