Запуск Docker‑образа на основе Envoy¶
Обзор образа¶
Инструкция описывает шаги для запуска Docker‑образа Вебмониторэкс на основе Envoy 1.18.4. Образ содержит все системы, необходимые для корректной работы продукта:
-
Сервисы прокси-сервера Envoy с встроенным модулем Вебмониторэкс
-
Модули Tarantool для постаналитики
-
Другие сервисы и скрипты
Модуль Вебмониторэкс реализован в виде HTTP‑фильтра Envoy для проксирования запросов.
Поддерживаемые параметры конфигурации
Большинство директив для настройки ноды на основе NGINX не поддерживаются при настройке ноды на основе Envoy. Список параметров для настройки ноды на основе Envoy →
Если вы используете несколько нод Вебмониторэкс
Все ноды Вебмониторэкс, установленные в вашей инфраструктуре, должны иметь одинаковые версии.
Перед установкой дополнительной ноды убедитесь, что ее версия совпадает с версией уже установленных модулей. Если версии модулей устарели или начинают устаревать (3.6
и ниже), рекомендуем обновить все модули до последней версии.
Чтобы получить текущую версию, выполните команду в контейнере:
yum list wallarm-node
Требования¶
-
Доступ к аккаунту с ролью Администратор в Консоли управления Вебмониторэкс
-
Доступ виртуальной машины к Вебмониторэкс API по адресу
api.wallarm.ru
. Убедитесь, что доступ не ограничен файерволом
Варианты запуска контейнера¶
Параметры ноды Вебмониторэкс могут быть переданы в Docker‑контейнер следующими способами:
-
Через переменные окружения. В контейнер передаются базовые настройки ноды, большинство доступных параметров не могут быть переданы через переменные окружения.
-
В примонтированном конфигурационном файле. В контейнер могут быть переданы все доступные параметры ноды.
Запуск контейнера с переменными окружения¶
Для запуска образа:
-
Перейдите в Консоль управления → Ноды и создайте ноду.
-
Скопируйте сгенерированный токен.
-
Запустите контейнер с созданной нодой:
docker run -d -e WALLARM_API_TOKEN='XXXXXXX' -e ENVOY_BACKEND='example.com' -e WALLARM_API_HOST='api.wallarm.ru' -p 80:80 wallarm/envoy:4.4.0-1
Вы можете передать в контейнер следующие базовые настройки Вебмониторэкс через опцию -e
:
Переменная окружения | Описание | Обязательная? |
---|---|---|
WALLARM_API_TOKEN | Токен ноды Вебмониторэкс. Предыдущие переменные для настройки доступа к Вычислительному кластеру Вебмониторэкс Для деплоя ноды версии 3.6 и ниже использовались переменные | Да |
ENVOY_BACKEND | Домен или IP‑адрес ресурса, который необходимо защитить с помощью Вебмониторэкс. | Да |
WALLARM_API_HOST | Адрес Вебмониторэкс API. Должен быть api.wallarm.ru .По умолчанию: api.wallarm.com . | Нет |
WALLARM_MODE | Режим работы ноды Вебмониторэкс:
monitoring .Подробное описание режимов работы | Нет |
TARANTOOL_MEMORY_GB | Размер оперативной памяти для Tarantool в гигабайтах. Значение может быть целым или дробным (разделитель целой и дробной части — точка). По умолчанию: 0.2 гигабайта. | Нет |
Команда выполнит следующие действия:
-
Создаст файл
envoy.yaml
с минимальными настройками Envoy в директории контейнера/etc/envoy
. -
Создаст файлы с параметрами для доступа к Вычислительному кластеру Вебмониторэкс в директории контейнера
/etc/wallarm
:node.yaml
с UUID ноды Вебмониторэкс и секретным ключомprivate.key
с закрытым ключом Вебмониторэкс
-
Защитит ресурс
http://ENVOY_BACKEND:80
Запуск контейнера с примонтированным конфигурационным файлом¶
Вы можете примонтировать в контейнер готовый файл envoy.yaml
через опцию -v
. Файл должен содержать следующие настройки:
-
Тонкую настройку ноды Вебмониторэкс по инструкции
-
Настройку Envoy по инструкции Envoy
Для запуска образа:
-
Перейдите в Консоль управления → Ноды и создайте ноду.
-
Скопируйте сгенерированный токен.
-
Запустите контейнер с созданной нодой:
docker run -d -e WALLARM_API_TOKEN='XXXXXXX' -e WALLARM_API_HOST='api.wallarm.ru' -v /configs/envoy.yaml:/etc/envoy/envoy.yaml -p 80:80 wallarm/envoy:4.4.0-1
- Через опции
-e
необходимо передать обязательные переменные окружения:
Переменная окружения Описание Обязательная? WALLARM_API_TOKEN
Токен ноды Вебмониторэкс. Предыдущие переменные для настройки доступа к Вычислительному кластеру Вебмониторэкс
Для деплоя ноды версии 3.6 и ниже использовались переменные
DEPLOY_USER
иDEPLOY_PASSWORD
. Начиная с версии 4.0, рекомендуется использоватьWALLARM_API_TOKEN
. Подробнее о миграции на новую версиюДа WALLARM_API_HOST
Адрес Вебмониторэкс API. Должен быть api.wallarm.ru
.
По умолчанию:api.wallarm.com
.Нет - Через опцию
-v
директория с файломenvoy.yaml
монтируется в директорию контейнера/etc/envoy
.
- Через опции
Команда выполнит следующие действия:
-
Примонтирует файл
envoy.yaml
в директорию контейнера/etc/envoy
. -
Создаст файлы с параметрами для доступа к Вычислительному кластеру Вебмониторэкс в директории контейнера
/etc/wallarm
:node.yaml
с UUID ноды Вебмониторэкс и секретным ключомprivate.key
с закрытым ключом Вебмониторэкс
-
Защитит ресурс, заданный в примонтированном конфигурационном файле.
Настройка ротации логов (опционально)¶
Ротация лог‑файлов настроена и включена по умолчанию. При необходимости вы можете изменить настройки ротации в директории /etc/logrotate.d
контейнера с нодой Вебмониторэкс.
Тестирование работы Вебмониторэкс¶
-
Отправьте тестовый запрос с атакой Path Traversal на адрес защищенного ресурса:
curl http://localhost/etc/passwd
-
Перейдите в Консоль управления Вебмониторэкс → раздел События и убедитесь, что атака появилась в списке.