Graphite на отдельном сервере
Перенос 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/master/dist/grafbase/docker-compose.yml \ -O /opt/mitigator-graphite/docker-compose.yml
-
Создать службу для запуска на Server2:
Скачать файл сервиса:
wget https://docs.mitigator.ru/master/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
Обновление Server2
Перед обновлением настоятельно рекомендуется сделать резервную копию.
-
Остановить MITIGATOR:
systemctl stop docker-compose@mitigator-graphite
-
Обновить
docker-compose.yml
в/srv/mitigator
:wget https://docs.mitigator.ru/master/dist/grafbase/docker-compose.yml \ -O /opt/mitigator-graphite/docker-compose.yml
-
Обновить
.env
:- Выставить
VERSION=v21.04.0
(или более новую минорную).
- Выставить
Миграция графиков при обновлении до версии 21.04
-
Скачать файл миграции 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