Инструкция по обновлению Monq до версии 9.2.0
В этом обновлении
| Модуль | Новая версия |
|---|---|
| pl | 9.2.0 |
| sm | 9.2.0 |
| cl | 9.2.0 |
| fm | 9.2.0 |
| mcs | 9.2.0 |
| plugins | 9.2.0 |
Полностью недоступны функции, связанные с порогами на период миграции. Прием метрик осуществляется в штатном режиме.
Проведение миграции 9.1.1 → 9.2.0
Требования
Для запуска обновления требуется скачать клиент управления 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.
Процесс миграции атрибутов может занять длительное время, в зависимости от количества КЕ и их атрибутивного состава. На время проведения миграции не рекомендуется выполнять настройки типов КЕ.