Старый сервис Graphite (включавший в себя go-carbon с хранилищем whisper, carbonapi, grafana) мигрирует в пять отдельных сервисов: ClickHouse (server), Graphite-ClickHouse, Carbon-ClickHouse, Carbonapi и Grafana.
Самое важное: существенно (примерно на порядок) снижается утилизация диска по объему записи/чтения, iops, файловым дискрипторам, занимаемому объему;
Возможность оптимизации инсталяций методом использования имеющихся сервисов для нескольких инсталяций.
Для обновления рекомендуется выбрать окно минимальной активности: обновление выполняется с рестартом сервисов. Также, на миграцию данных нужно некоторое время (около 10 минут).
Перед обновлением настоятельно рекомендуется сделать резервную копию.
Обновить docker-compose
(бинарный) до последней версии
(инструкция по установке);
Остановить Митигатор:
docker-compose down
Скачать новый docker-compose.yml
и поместить его в рабочий каталог (/srv/mitigator
);
wget https://docs.mitigator.ru/v20.06/dist/docker-compose.yml -O /srv/mitigator/docker-compose.yml
Если в нем были сделаны правки для адаптеров Mellanox, воспроизвести их в новой версии файла.
Изменить во всех иных docker-compose*.yml
конфигурациях (если они есть),
например, docker-compose.override.yml
версию конфигурации (version: "2.1"
) на
новую (version: "2.2"
):
sed -i 's$version: "2.1"$version: "2.2"$g' /srv/mitigator/docker-compose*.yml
Записать в файл .env
строку с версией (если файла нет, создать его):
VERSION=v20.06
Совершить вход в хранилище образов со своими учетными данными:
docker login docker.mitigator.ru
Скачать образы:
docker-compose pull
Если старые данные графиков сохранять не требуется, можно перейти к следующему разделу.
Запустить ClickHouse
следующей командой:
docker-compose up -d clickhouse
Установить пакет python3-pip и PyPI пакет ClickHouse драйвера (нужен для скрипта переноса):
apt install -y python3-pip
pip3 install clickhouse-driver
Загрузить скрипт переноса данных из Whisper в ClickHouse и сделать его исполняемым:
wget https://docs.mitigator.ru/v20.06/dist/whisher-to-clickhouse.py
chmod +x whisher-to-clickhouse.py
Установить пакет jq
, если его нет:
apt install -y jq
Запустить скрипт переноса, указав IP-адрес контейнера ClickHouse и директорию volume graphite (старого):
./whisher-to-clickhouse.py \
$(docker inspect mitigator_clickhouse_1 | jq -r .[0].NetworkSettings.Networks.mitigator_default.IPAddress) \
/var/lib/docker/volumes/mitigator_graphite/_data/mitigator
Выполнить запуск MITIGATOR:
docker-compose up -d
Убидиться, что все сервисы поднялись без ошибок:
docker-compose ps
(mitigator_frontend_1
со статусом 0
– это нормально);
Перейти в интерфейс управления, проверить что архивные графики отображаются; новые графики рисуются;
Удалить старый volume с метриками:
docker volume rm mitigator_graphite