Обновление до v20.06

Старый сервис Graphite (включавший в себя go-carbon с хранилищем whisper, carbonapi, grafana) мигрирует в пять отдельных сервисов: ClickHouse (server), Graphite-ClickHouse, Carbon-ClickHouse, Carbonapi и Grafana.

Преимущества

  1. Самое важное: существенно (примерно на порядок) снижается утилизация диска по объему записи/чтения, iops, файловым дискрипторам, занимаемому объему;

  2. Возможность оптимизации инсталяций методом использования имеющихся сервисов для нескольких инсталяций.

Инструкция по обновлению

Для обновления рекомендуется выбрать окно минимальной активности: обновление выполняется с рестартом сервисов. Также, на миграцию данных нужно некоторое время (около 10 минут).

Обновление стенда

Перед обновлением настоятельно рекомендуется сделать резервную копию.

  1. Обновить docker-compose (бинарный) до последней версии (инструкция по установке);

  2. Остановить Митигатор:

    docker-compose down
    
  3. Скачать новый docker-compose.yml и поместить его в рабочий каталог (/srv/mitigator);

    wget https://docs.mitigator.ru/v20.06/dist/docker-compose.yml -O /srv/mitigator/docker-compose.yml
    

    Если в нем были сделаны правки для адаптеров Mellanox, воспроизвести их в новой версии файла.

  4. Изменить во всех иных 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
    
  5. Записать в файл .env строку с версией (если файла нет, создать его):

    VERSION=v20.06
    
  6. Совершить вход в хранилище образов со своими учетными данными:

    docker login docker.mitigator.ru
    
  7. Скачать образы:

    docker-compose pull
    

Перенос данных

Если старые данные графиков сохранять не требуется, можно перейти к следующему разделу.

  1. Запустить ClickHouse следующей командой:

    docker-compose up -d clickhouse
    
  2. Установить пакет python3-pip и PyPI пакет ClickHouse драйвера (нужен для скрипта переноса):

    apt install -y python3-pip
    pip3 install clickhouse-driver
    
  3. Загрузить скрипт переноса данных из Whisper в ClickHouse и сделать его исполняемым:

    wget https://docs.mitigator.ru/v20.06/dist/whisher-to-clickhouse.py
    chmod +x whisher-to-clickhouse.py
    
  4. Установить пакет jq, если его нет:

    apt install -y jq
    
  5. Запустить скрипт переноса, указав 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
    

Завершение

  1. Выполнить запуск MITIGATOR:

    docker-compose up -d
    
  2. Убидиться, что все сервисы поднялись без ошибок:

    docker-compose ps
    

    (mitigator_frontend_1 со статусом 0 – это нормально);

  3. Перейти в интерфейс управления, проверить что архивные графики отображаются; новые графики рисуются;

  4. Удалить старый volume с метриками:

    docker volume rm mitigator_graphite