Перейти к основному содержимому

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

В этом обновлении

МодульНовая версия
pl9.2.0
sm9.2.0
cl9.2.0
fm9.2.0
mcs9.2.0
plugins9.2.0
Уровень простоя

Полностью недоступны функции, связанные с порогами на период миграции. Прием метрик осуществляется в штатном режиме.

Проведение миграции 9.1.1 → 9.2.0

Требования

Требуемая версия Monq: 9.1.1
Требуемая версия monqctl: 1.19.2

Для запуска обновления требуется скачать клиент управления Monq monqctl и выполнить конфигурацию контекста monqctl, если ранее не выполнялось.

Для установки новой версии monqctl выполните:

curl -fsSL https://downloads.monq.ru/tools/monqctl/v1.19.2/linux-x64/monqctl.zip -o /tmp/monqctl.zip && unzip -oq /tmp/monqctl.zip -d /usr/local/bin && rm -f /tmp/monqctl.zip

Выполнить предрелизную подготовку

Проверить контекст monqctl и статус реестра микросервисов

# Просмотреть текущий контекст, с которым работает monqctl
monqctl config current-context

# Просмотреть статус реестра микросервисов из контекста
monqctl registry get status

# Просмотреть статус сервисов в реестре микросервисов из контекста
monqctl registry get services

Выполнить обновление реестра микросервисов

monqctl registry update registry --version=3.18.2
Закрытый контур / обновление из папки

На системе с доступом к сети интернет, установленном и настроенном monqctl, выполнить экспорт реестра микросервисов в локальную директорию

monqctl registry export registry 3.18.2 --dest=./<registry export directory>

После переноса папки на сервер выполнить обновление реестра микросервисов

monqctl registry update registry --version=3.18.2 --sourceDir=<папка с экспортированным обновлением>

Проверить статус реестра микросервисов

monqctl registry get status
Дождаться

пока команда monqctl registry get status выдаст обновленную версию:
Version: "3.18.2"

Установить контекст релиза, с которым будет работать monqctl в рамках контекста установленного Monq

Команда при этом скачивает и подготавливает релиз для установки.

monqctl release use-version 9.2.0 --product=monq
Закрытый контур / обновление из папки

На системе с доступом к сети интернет, установленном и настроенном monqctl, выполнить экспорт релиза в папку

monqctl release version export 9.2.0 --product=monq --dest=<export directory>

После переноса папки на сервер выполнить команду с аргументом --sourceDir

monqctl release use-version 9.2.0 --product=monq --sourceDir=<папка с экспортированным обновлением>
Важно

Выполнить обновление привилегий в ClickHouse

Для корректной работы со словарями необходимо добавить к роли пользователя ClickHouse следующие привилегии:

  • SYSTEM RELOAD DICTIONARY ON *.*
  • dictGet ON *.*

Команда добавляет привилегии только для пользователей и профилей, созданных через SQL-запросы.
Если пользователь/профиль были настроены через конфигурационные файлы (users.xml и т.п.) — добавьте эти права вручную в соответствующей конфигурации.

Выполнение:

monqctl release exec shell --module=pl --file=scripts/add_dictionary_reload.sh

Применить обновление базы данных реестра

monqctl registry update db --module=pl --file=sqls/pl-microservice-registry-api-service-1.sql
monqctl registry update db --module=pl --file=sqls/pl-microservice-registry-api-service-2.sql

MONQ Platform (pl)

Выполнить импорт контейнеров в репозиторий обновляемого экземпляра MONQ

monqctl release update images --module=pl

Выполнить конфигурацию баз данных микросервисов

monqctl release update db pgsql --module=pl --microservice=pl-i18n-service --file pl-i18n-service.sql
monqctl release update db pgsql --module=pl --microservice=pl-identity-service --file sqls/pl-identity-service.sql
monqctl release update db pgsql --module=pl --microservice=pl-automaton-v2-service --file sqls/pl-automaton-v2-service.sql
monqctl release update db pgsql --module=pl --microservice=pl-work-groups-api-service --file sqls/pl-work-groups-api-service-1.sql

Запустить миграцию данных

monqctl release update migrator --module=pl --command="migrate usergrants"

Выполнить конфигурацию баз данных микросервисов

monqctl release update db pgsql --module=pl --microservice=pl-work-groups-api-service --file sqls/pl-work-groups-api-service-2.sql

Выполнить обновление и конфигурацию микросервиса pl-identity-service

monqctl release update microservices --module=pl --microservice=pl-identity-service

Скопировать аватарки пользователей из удаляемого сервиса pl-identity-management-service в pl-identity-service

monqctl instance copy files --src-microservice=pl-identity-management-service --src-dir=/storage/ --dst-microservice=pl-identity-service --dst-dir=/storage/

Сбросить кэш для микросервисов

monqctl instance clear cache --microservice=pl-user-grants-api-service

Выполнить обновление и конфигурацию микросервисов

monqctl release update microservices --module=pl

Применить обновление маршрутизации

monqctl release update routing --module=pl
Продолжать только при пустом выводе команды:
kubectl get pod -A | grep -v Running

Выполнить обновление библиотек "автоматон v2"

monqctl release update automaton-libraries --module=pl --file=automaton-libs/automaton.core.import
monqctl release update automaton-libraries --module=pl --file=automaton-libs/automaton.metrics.import
monqctl release update automaton-libraries --module=pl --file=automaton-libs/automaton.reports.import
monqctl release update automaton-libraries --module=pl --file=automaton-libs/automaton.reports.availability.import
ошибки при выполнении команд

При появлении ошибки необходимо повторить команды, выдержав небольшую паузу.
Такая ошибка может возникнуть если микросервис "pl-automaton-v2-service" не успел перезапуститься после обновления, либо обновление библиотеки уже производится.
При успешном обновлении команда вернет сообщение о том, что библиотека уже обновлена - (has already installed in the System).

Выполнить обновление маршрутной карты автоматона

monqctl release update automaton-routing-map --module=pl --file=automaton-routing-map.import

Перезапустить микросервисы "автоматон v2" и бизнес процессы

monqctl instance restart microservice --microservice=pl-automaton-v2-service
monqctl instance restart microservice --microservice=pl-automaton-v2-processor-service
monqctl instance restart microservice --microservice=pl-automaton-v2-processor-service-compiler
monqctl instance restart microservice --microservice=pl-bp-service-manager

Сбросить кэш для микросервисов

monqctl instance clear cache --microservice=pl-i18n-service
monqctl instance clear cache --microservice=pl-identity-service

Удалить очереди для корректного изменения ключей маршрутизации

monqctl instance delete queue pl_identity_management_service
monqctl instance delete queue pl_user_grants_api_service

MONQ Service Monitor (sm)

Выполнить импорт контейнеров в репозиторий обновляемого экземпляра MONQ

monqctl release update images --module=sm

Выполнить конфигурацию баз данных микросервисов

monqctl release update db pgsql --module=sm --microservice=pl-userspaces-api-service --file userspace-configuration.sql
monqctl release update db pgsql --module=sm --microservice=sm-rsm-maps-service --file sqls/sm-rsm-maps-service.sql
monqctl release update db pgsql --module=sm --microservice=sm-signals-service --file sqls/sm-signals-service.sql
monqctl release update db pgsql --module=sm --microservice=sm-rsm-attributes-service --file sqls/sm-rsm-attributes-service.sql
monqctl release update db clickhouse --module=sm --microservice=sm-signals-service --file sqls/sm-signals-service-clickhouse.sql

Выполнить обновление и конфигурацию микросервисов

monqctl release update microservices --module=sm

Применить обновление маршрутизации

monqctl release update routing --module=sm
Продолжать только при пустом выводе команды:
kubectl get pod -A | grep -v Running

Запустить миграцию данных

monqctl release update migrator --module=sm --command="migrate rsm-config-items"

MONQ Collector (cl)

Выполнить импорт контейнеров в репозиторий обновляемого экземпляра MONQ

monqctl release update images --module=cl

Выполнить конфигурацию баз данных микросервисов

monqctl release update db pgsql --module=cl --microservice=cl-streams-service --file sqls/cl-streams-service.sql

Выполнить обновление и конфигурацию микросервисов

monqctl release update microservices --module=cl
Продолжать только при пустом выводе команды:
kubectl get pod -A | grep -v Running

Test Forge (fm)

Выполнить импорт контейнеров в репозиторий обновляемого экземпляра MONQ

monqctl release update images --module=fm

Выполнить обновление и конфигурацию микросервисов

monqctl release update microservices --module=fm
Продолжать только при пустом выводе команды:
kubectl get pod -A | grep -v Running

MONQ Metrics (mcs)

Выполнить импорт контейнеров в репозиторий обновляемого экземпляра MONQ

monqctl release update images --module=mcs

Выполнить конфигурацию баз данных микросервисов

monqctl release update db pgsql --module=mcs --microservice=pl-userspaces-api-service --file userspace-configuration.sql
monqctl release update db pgsql --module=mcs --microservice=mcs-metrics-bridge-service --file sqls/mcs-metrics-bridge-service.sql
monqctl release update db pgsql --module=mcs --microservice=mcs-thresholds-service --file sqls/mcs-thresholds-service.sql

Выполнить обновление и конфигурацию микросервисов

monqctl release update microservices --module=mcs
Продолжать только при пустом выводе команды:
kubectl get pod -A | grep -v Running

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

monqctl instance scale deployment mcs-thresholds-service --replicas=0
monqctl instance scale deployment mcs-thresholds-service-runner --replicas=0
monqctl instance scale deployment mcs-thresholds-service-trainer --replicas=0

Выполнить конфигурацию баз данных микросервисов

monqctl release update db clickhouse --module=mcs --microservice=mcs-thresholds-service --file sqls/mcs-thresholds-service-clickhouse.sql

Выполнить обновление набора прав

monqctl release update user-grants --module=mcs --file=user-grants.json

Применить обновление маршрутизации

monqctl release update routing --module=mcs

Удалить очереди для корректного изменения ключей маршрутизации

monqctl instance delete queue-binding --queue=mcs_thresholds_service --bindingKey=rsm-map.update

Сбросить кэш для микросервисов

monqctl instance clear cache --microservice=pl-work-groups-api-service
monqctl instance clear cache --microservice=pl-userspaces-api-service

PLUGINS (plugins)

Выполнить импорт контейнеров в репозиторий обновляемого экземпляра MONQ

monqctl release update images --module=plugins

Выполнить обновление и конфигурацию микросервисов

monqctl release update microservices --module=plugins
Продолжать только при пустом выводе команды:
kubectl get pod -A | grep -v Running

Выполнить загрузку плагинов агента в центральное хранилище распространения плагинов Monq

monqctl release update agent-plugins --module=plugins --plugin=icmp
monqctl release update agent-plugins --module=plugins --plugin=kafka
monqctl release update agent-plugins --module=plugins --plugin=syslog
monqctl release update agent-plugins --module=plugins --plugin=tail
monqctl release update agent-plugins --module=plugins --plugin=winInfo
monqctl instance restart microservice --microservice=pl-monq-agent

Выполнить обновление контент-паков

monqctl release update content-packs --module=plugins --replace --file=content-packs/linux.zip
monqctl release update content-packs --module=plugins --replace --file=content-packs/bitrix24.zip
monqctl release update content-packs --module=plugins --replace --file=content-packs/k8s.zip

Миграция данных

Выполнить миграцию порогов из PostgreSQL в ClickHouse

внимание

Процесс миграции может занять длительное время, в зависимости от количества порогов в PostgreSQL. На время проведения миграции не будет производится расчет порогов.

Запустить миграцию порогов

monqctl release update migrator --module=mcs --command="migrate thresholds"

Запустить сервисы порогов

СТРОГО ПОСЛЕ ЗАВЕРШЕНИЯ МИГРАЦИИ ПОРОГОВ
monqctl instance scale deployment mcs-thresholds-service --replicas=1
monqctl instance scale deployment mcs-thresholds-service-runner --replicas=1
monqctl instance scale deployment mcs-thresholds-service-trainer --replicas=1

Проверка миграции прав пользователей

Убедитесь, что успешно прошла миграция прав пользователей из сервиса pl-user-grants-api-service в
pl-work-groups-api-service. Для этого необходимо выполнить запрос:

monqctl instance exec db pgsql --microservice=pl-work-groups-api-service --query="SELECT COUNT(*) FROM public.\"Packets\";"

В результате вы должны получить в ответ цифру, больше 0, например:

count
-----
526

Выполнить удаление устаревших баз данных

ТОЛЬКО ПОСЛЕ ПРОВЕРКИ МИГРАЦИИ ПРАВ ПОЛЬЗОВАТЕЛЕЙ
monqctl instance delete db postgresql pl_user_grants_api_service

Выполнить миграцию атрибутов конфигурационных единиц

Запустить миграцию данных

monqctl release update migrator --module=sm --command="migrate rsm-attributes -batchsize 1000"

⚠️ Для систем с большим количеством конфигурационных единиц рекомендуется увеличить размер -batchsize до 10000.

внимание

Процесс миграции атрибутов может занять длительное время, в зависимости от количества КЕ и их атрибутивного состава. На время проведения миграции не рекомендуется выполнять настройки типов КЕ.