Обзор развертывания Splunk на сервере¶
Предпосылки и предварительные требования¶
Для успешного развертывания приложения необходимо наличие следующих условий: - Операционная система с установленным Docker и Docker Compose. - Права доступа пользователя root для создания директорий и запуска контейнеров. - Свободные порты 80, 443 и 8000 на сервере. - Доступ к интернету для загрузки образов контейнеров и получения SSL-сертификатов.
Структура файлов и каталогов¶
Все файлы конфигурации и данные приложения размещаются в следующей структуре: - /root/splunk — корневая директория развертывания, принадлежащая пользователю root. - /root/splunk/compose.yml — файл конфигурации Docker Compose, описывающий сервисы. - /data/nginx/user_conf.d — директория для пользовательских конфигураций Nginx. - nginx_secrets — внешний том Docker для хранения секретов и сертификатов Let's Encrypt.
Контейнеры Docker и их запуск¶
Приложение развертывается с использованием двух контейнеров, описанных в файле compose.yml:
- Сервис
splunk: - Образ:
splunk/splunk:latest. - Порт:
8000(отображается на порт8000хоста). - Переменные окружения:
SPLUNK_START_ARGS:--accept-license.SPLUNK_PASSWORD: задается динамически при генерации конфигурации.
-
Политика перезапуска:
unless-stopped. -
Сервис
nginx: - Образ:
jonasal/nginx-certbot:latest. - Порты:
80и443(отображаются на соответствующие порты хоста). - Переменные окружения:
CERTBOT_EMAIL:hkadm@hostkey.com.
- Тома:
nginx_secretsмонтируется в/etc/letsencrypt./data/nginx/user_conf.dмонтируется в/etc/nginx/user_conf.d.
- Политика перезапуска:
unless-stopped. - Зависимость: сервис запускается после
splunk.
Прокси серверы¶
В качестве обратного прокси-сервера используется контейнер nginx на базе образа jonasal/nginx-certbot. Он выполняет следующие функции: - Обработка входящего трафика на портах 80 и 443. - Автоматическое получение и обновление SSL-сертификатов через Certbot. - Перенаправление запросов к сервису splunk.
Конфигурация прокси сервера использует внешний том nginx_secrets для хранения сертификатов и монтирует локальную директорию /data/nginx/user_conf.d для пользовательских настроек.
Запуск, остановка и обновление¶
Управление контейнерами осуществляется через команды Docker Compose в директории /root/splunk:
-
Запуск сервисов в фоновом режиме:
Команда выполняется с текущей директорией/root/splunk. -
Остановка сервисов:
-
Перезапуск сервисов с обновлением конфигурации:
Сервисы настроены на автоматический перезапуск при перезагрузке сервера, за исключением случаев явной остановки.