Дальнейшие шаги предполагают, что экземпляр MITIGATOR уже установлен. В противном случае предварительно выполните установку одним из следующих способов.
Перед настройкой кластера необходимо настроить виртуальную сеть (VPN). Для ее работы нужна сетевая связность между экземплярами. Подробные сведения по настройке и необходимым доступам описаны по ссылке.
Данная схема внедрения подразумевает физическое хранение общих для всех экземпляров MITIGATOR баз данных на внешнем сервере. Работоспособность и отказоустойчивость всех СУБД обеспечивается силами администратора внешнего сервера под конкретные требования.
Для корректной работы системы всем обработчикам пакетов, должно быть доступно одинаковое количество системных ресурсов.
Все экземпляры разворачиваются как worker´ы.
Если кластер собирается из экземпляров MITIGATOR, которые ранее уже работали независимо, то в ходе интеграции могут возникнуть конфликты. Поэтому на всех экземплярах кроме будущего лидера необходимо выполнить команду:
docker-compose down -v
При выполнении данной команды будут удалены настройки контрмер, журнал событий, графики и другая информация, хранимая в базах данных этих экземпляров. Если данные нужно сохранить, следует предварительно сделать резервную копию.
Схема взаимодействия:
В качестве инструмента для миграции схемы и дальнейшего управления используется утилита SHMIG.
Миграции необходимо брать прямо из контейнера используемой версии:
Развернуть полноценный стенд
(временно закомментировать строку #COMPOSE_FILE=
в файле .env
).
Выполнить команду:
docker-compose create postgres
Скопировать скрипты миграции:
docker cp mitigator_postgres_1:/schema schema
Выполнить команду:
docker-compose rm -sf postgres
Восстановить состояние файла .env
, раскомментировав строку
#COMPOSE_FILE=
.
На уровне Postgres необходимо создать базу mitigator
. Скрипты миграций
создадут пользователя backend
и назначат ему необходимые права. После чего
на уровне СУБД нужно разрешить подключение для этого пользователя.
Экземпляры MITIGATOR подключаются к порту 5432/tcp. Строку подключения можно явно переопределить, по умолчанию используется:
services:
backend:
environment:
BACKEND_DATABASE_URI: "postgres://backend@${MITIGATOR_STORAGE_HOST}/mitigator?sslmode=disable"
MITIGATOR отправляет метрики в формате
Graphite plaintext
protocol по адресу: ${MITIGATOR_STORAGE_HOST}:2003
(TCP).
Если нужно отправлять их в несколько баз, адреса можно указать явно через запятую:
services:
fwstats:
environment:
FWSTATS_GRAPHITE_ADDRESS: "${MITIGATOR_STORAGE_HOST}:2003,another-host:2003"
MITIGATOR обращается к Graphite API по URL:
http://${MITIGATOR_STORAGE_HOST}:3080/render/
.
Только если ClickHouse используется в качестве бэкенда Graphite.
Развернуть полноценный стенд
(закомментировать строку #COMPOSE_FILE=
в файле .env
).
Выполнить команду:
docker-compose create clickhouse
Выполнить команды:
docker cp mitigator_clickhouse_1:/etc/clickhouse-server/config.d clickhouse-config
docker cp mitigator_clickhouse_1:/etc/clickhouse-server/users.d clickhouse-users
docker cp mitigator_clickhouse_1:/docker-entrypoint-initdb.d clickhouse
Выполнить команду:
docker-compose rm -sf clickhouse
Восстановить состояние файла .env
, раскомментировав строку
#COMPOSE_FILE=
.
В файле .env
задать переменную MITIGATOR_OWN_NAME=mitigator-1
.
Здесь mitigator-1
– имя экземпляра. Имя каждого экземпляра должно быть уникально.
В файле .env
задать переменную MITIGATOR_HOST_ADDRESS=192.0.2.1
.
Здесь 192.0.2.1
– адрес хоста для данного экземпляра.
Полученные настройки являются рекомендованными, но могут быть при необходимости изменены, например, см. раздел «Настройка времени хранения метрик в Graphite».