Перенос Graphite на отдельный сервер позволяет разделить нагрузку на два сервера.
До переноса архива метрик, в интерфейсе MITIGATOR можно будет наблюдать только новые графики.
Дальше по тексту Server1 – сервер с MITIGATOR, Server2 – сервер, на который переносятся подсистемы.
Предполагается, что на Server2 уже установлен Docker и docker-compose и имеется способ доставки файловой базы с Server1 на Server2 (объем данных может составлять более 100 ГБ в зависимости от количества политик).
Версии MITIGATOR на Server1 и на Server2 должны совпадать, для чего:
Записать в файл .env
для Server1 и Server2 строку с версией:
VERSION=vXX.XX
Здесь vXX.XX
– целевая версия (например: v20.08 или v20.12.1).
На Server2 создать docker-compose.yml
для подсистем:
mkdir -p /opt/mitigator-graphite
Скачать docker-compose.yml
:
wget https://docs.mitigator.ru/v22.12/dist/grafbase/docker-compose.yml \
-O /opt/mitigator-graphite/docker-compose.yml
Создать службу для запуска подсистем на Server2:
Скачать файл сервиса:
wget https://docs.mitigator.ru/v22.12/dist/docker-compose@.service \
-O /etc/systemd/system/docker-compose@.service
Активировать службу:
systemctl enable docker-compose@mitigator-graphite
На Server2 запустить сервисы:
Войти на docker.mitigator.ru
docker login docker.mitigator.ru
Перейти в рабочую директорию
cd /opt/mitigator-graphite
Загрузить образы
docker-compose pull
Запустить сервис
systemctl start docker-compose@mitigator-graphite
На Server1 создать, либо дополнить docker-compose.override.yml
следующим:
version: "2.2"
services:
backend:
environment:
BACKEND_GRAPHITE_URL: "http://192.0.2.10:3080/render/"
fwstats:
environment:
FWSTATS_GRAPHITE_ADDRESS: "192.0.2.10:2003"
clickhouse:
scale: 0
graphite-clickhouse:
scale: 0
carbon-clickhouse:
scale: 0
carbonapi:
scale: 0
grafana:
scale: 0
Здесь 192.0.2.10
– условный адрес Server2,
который необходимо заменить на действительный адрес.
Применить параметры:
Внимание! Будет перезагружен сервис бэкенда и BGP speaker.
docker-compose up -d --scale clickhouse=1
Эта команда запускает временный экземпляр ClickHouse для переноса данных из него на отдельный сервер. Если перенос не требуется, можно перейти к разделу «Завершение».
На старом сервере сделать резервную копию метрик по инструкции.
Переместить metrics.tgz
на новый сервер.
На новом сервере восстановить резервную копию метрик по инструкции.
На первом шаге задать VOLUME=mitigator-graphite_clickhouse
.
После успешного завершения всех процессов необходимо убедиться, что архивные данные метрик доступны из интерфейса MITIGATOR.
После этого остановить и удалить контейнер ClickHouse на Server1:
docker-compose stop clickhouse
docker-compose rm clickhouse
Чтобы освободить место на Server1, можно удалить том ClickHouse, если он больше не нужен:
docker volume rm mitigator_clickhouse
Перед обновлением настоятельно рекомендуется сделать резервную копию.
Остановить MITIGATOR:
systemctl stop docker-compose@mitigator-graphite
Обновить docker-compose.yml
в /srv/mitigator
:
wget https://docs.mitigator.ru/v22.12/dist/grafbase/docker-compose.yml \
-O /opt/mitigator-graphite/docker-compose.yml
Обновить .env
:
VERSION=v21.04.0
(или более новую минорную).Скачать файл миграции update2104.sql в /srv/mitigator
.
Запустить ClickHouse:
docker-compose up -d clickhouse
Выполнить миграцию:
docker-compose exec -T clickhouse clickhouse-client -mn < update2104.sql
Сообщения печатаются только в случае ошибок. В этом случае текст сообщения нужно сообщить разработчикам.
Убедиться, что в файле docker-compose.override.yml
на Server1 указан
порт 3080:
version: "2.2"
services:
backend:
environment:
BACKEND_GRAPHITE_URL: "http://192.0.2.10:3080/render/"
Запустить службу MITIGATOR:
systemctl start docker-compose@mitigator-graphite