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

Процедура обновления на версию v25.06 требует предварительных действий перед запуском новой версии.

Подготовка к обновлению

  1. Убедиться, что установлена Docker Compose версии 2:

    docker-compose version --short

    Обновить при необходимости. MITIGATOR более не поддерживает Docker Compose версии 1.

  2. Убрать из файла .env элементы, не поддерживаемые Docker Compose v2:

    sed -e 's/\b\(docker-compose.yml\):\1/\1/' -i .env
  3. При использовании сетевых адаптеров NVIDIA (Mellanox) обновить OFED до актуальной версии.

  4. На всех экземплярах с ClickHouse скачать файл миграции метрик:

    wget https://docs.mitigator.ru/master/kb/update2506/update2506.sql -O /srv/mitigator/update2506.sql
  5. На всех экземплярах в файл .env добавить переменную MITIGATOR_PUBLIC_ADDRESS. Чтобы сохранить существующее поведение, задать её такой же, как MITIGATOR_HOST_ADDRESS.

    Если MITIGATOR_HOST_ADDRESS содержит доменное имя, рекомендуется заменить его на IP-адрес, чтобы контейнеры не теряли связность при проблемах с DNS. MITIGATOR_PUBLIC_ADDRESS может содержать как IP-адрес, так и доменное имя.

  6. На всех экземплярах изменить владельца данных экземпляра:

    chown -R 65534:65534 /var/lib/docker/volumes/mitigator_own_id/_data
  7. На всех экземплярах удалить файлы web-интерфейса старой версии:

    docker volume rm mitigator_frontend

Обновление особых настроек

Если в контейнеры монтировались файлы с особыми настройками Postgres (postgresql.conf) или Nginx (nginx.conf), то необходимо обновить эти файлы для использования с образами новой версии.

Обновление особых настроек Postgres

Проверить, что postgresql.conf монтируется:

docker-compose config | grep postgresql.conf

Если postgresql.conf монтируется, вывод команды будет содержать следующие строки:

source: /srv/mitigator/postgresql.conf
target: /etc/postgresql/11/main/postgresql.conf

Если таких строк нет, то postgresql.conf не монтируется, обновлять его не нужно. Путь к файлу на хосте может отличаться от /srv/mitigator/postgresql.conf, тогда в следующей команде его нужно скорректировать.

Обновить postgresql.conf:

sed -e "/include '\/database_identifier'/d" -i /srv/mitigator/postgresql.conf

Обновление особых настроек Nginx

Проверить, что nginx.conf монтируется:

docker-compose config | grep nginx.conf

Если nginx.conf монтируется, вывод команды будет содержать следующие строки:

source: /srv/mitigator/nginx.conf
target: /etc/nginx/nginx.conf

Если таких строк нет, то nginx.conf не монтируется, обновлять его не нужно. Путь к файлу на хосте может отличаться от /srv/mitigator/nginx.conf, тогда в следующей команде его нужно скорректировать.

Обновить nginx.conf:

sed -e "/user www-data;/d" -e "s|pid /run/nginx.pid|pid /var/lib/nginx/nginx.pid|" -i /srv/mitigator/nginx.conf

Обновление особых настроек HTTP(S)

Проверить, что mitigator.conf монтируется:

docker-compose config | grep mitigator.conf

Если mitigator.conf монтируется, вывод команды будет содержать следующие строки:

source: /srv/mitigator/mitigator.conf
target: /etc/nginx/conf.d/mitigator.conf

Если таких строк нет, то mitigator.conf не монтируется, обновлять его не нужно. Путь к файлу на хосте может отличаться от /srv/mitigator/mitigator.conf, тогда в следующей команде его нужно скорректировать.

Обновить mitigator.conf:

sed -e 's/listen 80/listen 8000/' -e 's/listen 443/listen 8443/' -i /srv/mitigator/mitigator.conf

Обновление системы

Обновить все экземпляры MITIGATOR согласно стандартной процедуре обновления.

Запуск MITIGATOR и миграция данных

  1. Запустить MITIGATOR:

    docker-compose up -d
  2. Выполнить миграцию метрик:

    docker-compose exec -T clickhouse clickhouse-client -mn < update2506.sql && \
    docker-compose restart carbon-clickhouse

    Миграция метрик может занять продолжительное время. В этот промежуток времени защитные функции MITIGATOR полностью работоспособны, но не будут отображаться графики.

    Сообщения печатаются только в случае ошибок. В этом случае текст сообщения нужно сообщить разработчикам.