Обзор развертывания Splunk Enterprise (free trial) на сервере¶
Предварительные требования и базовые условия¶
Для развертывания Splunk Enterprise на сервере необходимо выполнение следующих условий:
-
Операционная система: Система на базе Linux с установленными Docker и Docker Compose.
-
Привилегии: Для создания директорий, управления контейнерами Docker и настройки прокси требуется доступ root или права
sudo. -
Домен: Сервер должен быть связан с зоной
hostkey.in. -
Порты: Порты 80, 443 и 8000 должны быть доступны для внешнего и внутреннего взаимодействия.
FQDN конечной панели¶
Приложение доступно по следующему полному доменному имени (FQDN) в домене hostkey.in:
splunk<Server ID>.hostkey.in:443
Примечание: Замените <Server ID> на конкретный идентификатор, назначенный экземпляру сервера. Приложение обслуживается через HTTPS на порту 443.
Структура файлов и директорий¶
Развертывание использует следующую структуру директорий на хост-системе:
-
/root/splunk: Основная директория, содержащая конфигурацию Docker Compose и связанные файлы. -
/root/splunk/compose.yml: Файл Docker Compose, определяющий сервисы и их конфигурации. -
/data/nginx/user_conf.d: Директория, содержащая пользовательские файлы конфигурации Nginx для прокси. -
/etc/letsencrypt: Точка монтирования для сертификатов SSL/TLS, управляемых Certbot внутри контейнера Nginx.
Процесс установки приложения¶
Приложение развертывается с использованием Docker Compose. Процесс установки включает следующие шаги:
-
Создается директория
/root/splunkс владельцемrootи правами доступа0644. -
Внутри
/root/splunkгенерируется файлcompose.yml, определяющий сервисы Splunk и Nginx. -
Стек Docker Compose запускается с помощью команды
docker compose up -d, которая запускает контейнеры в отсоединенном режиме (detached mode). -
Контейнер Splunk использует образ
splunk/splunk:latest. -
Контейнер Nginx использует образ
jonasal/nginx-certbot:latestдля обработки завершения SSL и работы в качестве обратного прокси.
Контейнеры Docker и их развертывание¶
Развертывание состоит из двух основных контейнеров Docker, определенных в файле compose.yml:
-
splunk:
-
Образ:
splunk/splunk:latest -
Политика перезапуска:
unless-stopped -
Внутренний порт:
8000 -
Переменные окружения:
-
SPLUNK_START_ARGS: Установлено значение--accept-licenseдля автоматического принятия лицензионного соглашения. -
SPLUNK_PASSWORD: Конфигурируется динамически на основе пароля SSH, используемого для подключения к хосту.
-
-
nginx:
-
Образ:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped -
Порты:
80и443открыты для хоста. -
Переменные окружения:
CERTBOT_EMAIL: Установлено значениеhkadm@hostkey.comдля уведомлений о сертификатах SSL.
-
Тома (Volumes):
-
nginx_secrets: Монтируется в/etc/letsencryptдля хранения сертификатов. -
/data/nginx/user_conf.d: Монтируется в/etc/nginx/user_conf.dдля пользовательских конфигураций.
-
-
Зависимости: Зависит от сервиса
splunk.
Прокси-серверы¶
Развертывание включает обратный прокси Nginx, настроенный с Certbot для управления SSL/TLS:
-
Конфигурация Nginx: Образ
jonasal/nginx-certbotобрабатывает обратную прокси-переадресацию трафика с портов 80 и 443 на внутренний сервис Splunk на порту 8000. -
SSL/TLS: Certbot интегрирован для автоматического получения и продления SSL-сертификатов для домена
splunk<Server ID>.hostkey.in. -
Пользовательский домен: Прокси настроен для обслуживания приложения в зоне
hostkey.inс конкретным префиксомsplunk. -
Конфигурация пути: Внешний путь установлен как
/, а внутренний путь пуст, что маршрутизирует весь трафик напрямую в интерфейс Splunk.
Настройки прав доступа¶
К директориям развертывания применяются следующие настройки прав доступа:
-
/root/splunk: -
Владелец:
root -
Группа:
root -
Режим:
0644 -
/root/splunk/compose.yml: -
Владелец:
root -
Группа:
root -
Режим:
0644
Расположение файлов конфигурации и данных¶
-
Файл Docker Compose:
/root/splunk/compose.yml -
Пользовательские конфигурации Nginx:
/data/nginx/user_conf.d -
SSL-сертификаты: Хранятся внутри тома
nginx_secrets, отображенного в/etc/letsencryptвнутри контейнера Nginx. -
Данные Splunk: Сохраняются во внутреннем хранилище контейнера Docker; в предоставленной конфигурации не определено явное отображение тома хоста для данных Splunk.
Доступные порты для подключения¶
Следующие порты настроены для внешнего и внутреннего доступа:
-
Порт 80: HTTP-трафик для первоначальной валидации SSL-сертификата Certbot.
-
Порт 443: HTTPS-трафик для безопасного доступа к веб-интерфейсу Splunk.
-
Порт 8000: Внутренний порт, используемый контейнером Splunk; не открыт напрямую в публичный интернет, но доступен через прокси Nginx.
Запуск, остановка и обновление¶
Стек Docker Compose управляется с помощью следующих команд, выполняемых из директории /root/splunk:
-
Запуск сервисов:
-
Остановка сервисов:
-
Обновление сервисов: Для обновления контейнеров до последних версий образов, загрузите новые образы и перезапустите стек:
-
Просмотр логов: