Инструкция по обновлению Monq до версии 8.0.0
Предыдущая версия Monq: 7.15.0
-
Перед обновлением до версии Monq 8.0.0 обратитесь в техническую поддержку для получения нового активационного ключа.
-
Все существующие личные Карты РСМ будут безвозвратно удалены из системы. Для сохранения данных карт, пользователям нужно сделать эти карты групповыми выбрав для них любую доступную РГ.
-
Все личные шаблоны отчетов Доступности из системы будут удалены. Для сохранения своих личных шаблонов в системе необходимо сделать его групповым выбрав для них любую доступную РГ.
-
Будут перенесены только системные роли Администраторов пространства. Все прочие роли будут безвозвратно удалены из системы. Администраторы с пользовательскими ролями будут мигрированы с ролью "Администратор пространства", обладающей правами на всё. После обновления, при необходимости, этих пользователей нужно будет ограничить в имеющихся правах, создав для них новую роль.
-
Название предоставляемых прав на КЕ были переименованы:
- с
base-system.rsm.config-items-read
наsm.rsm.config-items-read
- с
base-system.rsm.config-items-write
наsm.rsm.config-items-write
Если в сценариях автоматизации вы использовали предоставление доступа к КЕ - необходимо заменить данные параметры.
- с
-
В сценариях автоматизации и пользовательских функциях будут удалены объекты, использующие структуру
EmailConfiguration
. В ходе обновления в логе мигратора будет выведена информация, какие сценарии и функции были затронуты. Их потребуется адаптировать вручную после обновления. -
В новой версии Monq Agent меняется название плагина
httpPlugin2
наhttpPlugin
(справка). После обновления системы, в Потоках данных могут наблюдаться ошибки, типаPlugin httpPlugin2 not found
. В таком случае необходимо исправить название плагина сhttpPlugin2
наhttpPlugin
в заданиях этих Потоков данных.
В обновлении:
Продукт | Новая версия |
---|---|
pl | 8.0.0 |
sm | 8.0.0 |
cl | 8.0.0 |
fm | 8.0.0 |
plugins | 8.0.0 |
mcs | 8.0.0 |
Уровень простоя
Деградация прав пользователей на период обновления. Возможны сбои в выполнении сценариев автоматона из-за изменения функции проверки прав служебных пользователей.
Проведение миграции 7.15.0 -> 8.0.0
Требования
Для запуска обновления требуется скачать клиент управления Monq monqctl и выполнить конфигурацию контекста monqctl, если ранее этого не выполнялось.
Минимальная версия monqctl: 1.13.0
Токен доступа в Monq ReleaseHub для скачивания обновления можно взять из письма о регистрации лицензии или получить, обратившись в техническую поддержку Monq.
Выполнить предрелизную подготовку
-
Проверить контекст monqctl и статус реестра микросервисов
# Просмотреть текущий контекст, с которым работает monqctl
monqctl config current-context
# Просмотреть статус реестра микросервисов из контекста
monqctl registry get status
# Просмотреть статус сервисов в реестре микросервисов из контекста
monqctl registry get services -
Установить контекст релиза, с которым будет работать
monqctl
в рамках контекста установленного MonqКоманда при этом скачивает и подготавливает релиз для установки.
monqctl release use-version 8.0.0 --product=monq
# Требуется выполнить экспорт релиза в папку
monqctl release version export 8.0.0 --product=monq --dest=<export directory>
# Выполнить команду `use-version` с аргументом `--sourceDir`.
monqctl release use-version 8.0.0 --product=monq --sourceDir=<папка с экспортированным обновлением>
Выполнить обновление реестра микросервисов
monqctl registry update registry --version=3.13.8
# Проверить статус реестра микросервисов после обновления.
monqctl registry get status
mkdir registry
monqctl registry export registry 3.13.8 --dest=./registry/
cd registry
monqctl registry update registry --version=3.13.8 --sourceDir=./
# Проверить статус реестра микросервисов после обновления
# !ВНИМАНИЕ: дождаться, пока `monqctl registry get status` не выдаст в результате версию `Version: "3.13.8"`
monqctl registry get status
rm -rf ../registry
Выполнить обновление шаблонов реестра микросервисов
monqctl registry get services K8s --output json | jq '.' > registry-k8s-template-backup.json
global_domain=$(jq -r '.JsonConfig.Parameters[] | select(.Name=="%GlobalDomain%").Value' registry-k8s-template-backup.json)
jq --arg internal_domain "api.${global_domain}" 'del(.JsonConfig.Parameters[] | select(.Name=="%GlobalDomain%")) | del(.JsonConfig.Parameters[] | select(.Name=="%AliasDomains%")) | del(.JsonConfig.Parameters[] | select(.Name=="%FrontCustomer%")) | .JsonConfig.Parameters |= . + [{Name:"%InternalDomain%",Value:$internal_domain}] | .JsonConfig.routingIngress.metadata.labels."monq/routing-version" = "%AppVersion%"' registry-k8s-template-backup.json > registry-k8s-template.json
monqctl registry apply service K8s --file registry-k8s-template.json
Выполнить обновление маршрутизации
monqctl registry delete microservice pl-routing
monqctl release update routing --module=pl
monqctl registry delete microservice cl-routing
monqctl release update routing --module=cl
monqctl registry delete microservice sm-routing
monqctl release update routing --module=sm
monqctl registry delete microservice fm-routing
monqctl release update routing --module=fm
monqctl registry delete microservice mcs-routing
monqctl release update routing --module=mcs
monqctl registry delete microservice plugins-routing
monqctl release update routing --module=plugins
monqctl release update routing --module=sm --file=monq.json
MONQ Platform (pl)
Выполнить перекачку контейнеров в Docker репозиторий обновляемого экземпляра MONQ
monqctl release update images --module=pl
Создать новые микросервисы
monqctl release update microservices --module=pl --microservice=pl-bp-service
monqctl release update microservices --module=pl --microservice=pl-system-notify-service
monqctl release update microservices --module=pl --microservice=pl-userspace-admins-service
Выполнить конфигурацию баз данных микросервисов
monqctl release update db pgsql --module=pl --microservice=pl-i18n-service --file pl-i18n-service.sql
monqctl release update db clickhouse --module=pl --microservice=pl-bp-service --file sqls/pl-bp-service-clickhouse.sql
monqctl release update db pgsql --module=pl --microservice=pl-agents-service --file sqls/pl-agents-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-business-calendar-api-service --file sqls/pl-business-calendar-api-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-identity-service --file sqls/pl-identity-service-1.sql
monqctl release update db pgsql --module=pl --microservice=pl-user-shared-filters-api-service --file sqls/pl-user-shared-filters-api-service.sql
monqctl release update db pgsql --module=pl --microservice=pl-userspaces-api-service --file sqls/pl-userspaces-api-service.sql
monqctl release update db pgsql --module=pl --microservice=pl-work-groups-api-service --file sqls/pl-work-groups-api-service.sql
monqctl release update db pgsql --module=pl --microservice=pl-user-grants-api-service --file sqls/pl-user-grants-api-service.sql
monqctl release update db pgsql --module=pl --microservice=pl-user-groups-service --file sqls/pl-user-groups-service.sql
monqctl release update db pgsql --module=pl --microservice=pl-content-installer-service --file sqls/pl-content-installer-service.sql
monqctl release update db pgsql --module=pl --microservice=pl-userspaces-api-service --file userspace-configuration.sql
Выполнить конфигурацию микросервисов в реестре для микросервисов из обновления и применить шаблоны в Kubernetes
monqctl release update microservices --module=pl
Обновить существующие и установить новые библиотеки автоматона
!ВНИМАНИЕ: обновление контейнеров в K8s может занять некоторое время. Требуется дождаться
monqctl release update automaton-libraries --module=pl --file=automaton-libs/automaton.core.import
monqctl release update automaton-libraries --module=pl --file=automaton-libs/automaton.cmdb.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.notification.import
monqctl release update automaton-libraries --module=pl --file=automaton-libs/automaton.reports.availability.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.signals.import
При ошибке HTTP 500 и сообщении в теле ответа "Operation timeout exception" повторить команды. Такая ошибка может возникнуть, если микросервис "pl-automaton-v2-service " не успел перезапуститься при обновлении.
Запустить мигратор
monqctl release update migrator --module=pl --command="migrate action-types"
monqctl release update migrator --module=pl --command="migrate automaton"
monqctl release update migrator --module=pl --command="migrate user-grants --specific-for=Box"
Перезапустить микросервисы автоматон v2
monqctl instance restart microservice --microservice=pl-automaton-v2-processor-service
monqctl instance restart microservice --microservice=pl-automaton-v2-processor-service-runner
monqctl instance restart microservice --microservice=pl-automaton-v2-processor-service-compiler
monqctl instance restart microservice --microservice=pl-bp-service-manager
Выполнить конфигурацию баз данных микросервисов
monqctl release update db pgsql --module=pl --microservice=pl-user-grants-api-service --file sqls/pl-user-grants-api-service-1.sql
Сбросить кэш для микросервисов
monqctl instance clear cache --microservice=pl-i18n-service
monqctl instance clear cache --microservice=pl-user-grants-api-service
monqctl instance clear cache --microservice=pl-router-service
monqctl instance clear cache --microservice=pl-agents-service
monqctl instance clear cache --microservice=pl-userspaces-api-service
monqctl instance clear cache --microservice=pl-identity-service
Выполнить удаление устаревших ключей маршрутизации
monqctl instance delete queue-binding --queue=pl_work_groups_api_service --bindingKey=userspace.create
monqctl instance delete queue-binding --queue=pl_work_groups_api_service --bindingKey=user-grants.system-module.synchronize
monqctl instance delete queue-binding --queue=pl_work_groups_api_service --bindingKey=user-grants.functional-module.delete
monqctl instance delete queue-binding --queue=pl_work_groups_api_service --bindingKey=user-grants.change-manager
monqctl instance delete queue-binding --queue=pl_work_groups_api_service --bindingKey=user-grants.work-group-no-users
monqctl instance delete queue-binding --queue=pl_work_groups_api_service --bindingKey=identity.user.delete
monqctl instance delete queue-binding --queue=pl_user_grants_api_service --bindingKey=work-group.create
monqctl instance delete queue-binding --queue=pl_user_grants_api_service --bindingKey=userspace.system-module.link
monqctl instance delete queue-binding --queue=pl_user_grants_api_service --bindingKey=userspace.system-module.unlink
monqctl instance delete queue-binding --queue=pl_user_grants_api_service --bindingKey=identity.user.userspace.delete
monqctl instance delete queue-binding --queue=pl_user_grants_api_service --bindingKey=identity.user.delete
monqctl instance delete queue-binding --queue=pl_userspaces_api_service --bindingKey=user-grants.system-module.delete
monqctl instance delete queue-binding --queue=pl_userspaces_api_service --bindingKey=identity.user.userspace.delete
monqctl instance delete queue-binding --queue=pl_router_service --bindingKey=action-generator.operation.add
monqctl instance delete queue-binding --queue=pl_router_service --bindingKey=action-generator.operation.update
monqctl instance delete queue pl_license_service
monqctl instance delete queue pl_license_service_cmd
monqctl instance delete queue pl_automaton_rules_api_service
monqctl instance delete queue pl_automaton_rules_api_service_buffer
monqctl instance delete queue pl_automaton_runner_service
monqctl instance delete queue pl_automaton_scheduler_service
monqctl instance delete queue pl_delivery_lists_api_service
monqctl instance delete queue pl_message_sender_api_service
monqctl instance delete queue pl_plugins_manager_service
PLUGINS (plugins)
Выполнить перекачку контейнеров в Docker репозиторий обновляемого экземпляра MONQ
monqctl release update images --module=plugins
Выполнить конфигурацию микросервисов в реестре для микросервисов из обновления и применить шаблоны в Kubernetes
monqctl release update microservices --module=plugins
Запустить мигратор
monqctl release update migrator --module=plugins --command="migrate availability-reports"
MONQ Service Monitor (sm)
Выполнить перекачку контейнеров в Docker репозиторий обновляемого экземпляра MONQ
monqctl release update images --module=sm
Создать новые микросервисы
monqctl release update microservices --module=sm --microservice=sm-reports-service
Выполнить конфигурацию баз данных микросервисов
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-attributes-service --file sqls/sm-rsm-attributes-service.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 arangodb --module=sm --microservice=sm-rsm-service --file sqls/sm-rsm-service.aql
Запустить мигратор
monqctl release update migrator --module=sm --command="migrate sla-templates"
monqctl release update migrator --module=sm --command="migrate config-item-attributes"
monqctl release update migrator --module=sm --command="migrate k8s-rsm-attributes"
monqctl release update migrator --module=sm --command="migrate k8s-new-config-item-types"
Выполнить конфигурацию микросервисов в реестре для микросервисов из обновления и применить шаблоны в Kubernetes
monqctl release update microservices --module=sm
Выполнить удаление устаревших ключей маршрутизации
monqctl instance delete queue sm_action_generator_async
monqctl instance delete queue sm_action_generator_service
monqctl instance delete queue sm_integral_events_configurator_api_service
monqctl instance delete queue sm_sla_service
MONQ Collector (cl)
Выполнить перекачку контейнеров в Docker репозиторий обновляемого экземпляра MONQ
monqctl release update images --module=cl
Выполнить конфигурацию баз данных микросервисов
monqctl release update db pgsql --module=cl --microservice=pl-userspaces-api-service --file userspace-configuration.sql
monqctl release update db pgsql --module=cl --microservice=cl-streams-service --file sqls/cl-streams-service.sql
Выполнить конфигурацию микросервисов в реестре для микросервисов из обновления и применить шаблоны в Kubernetes
monqctl release update microservices --module=cl
Выполнить удаление устаревших ключей маршрутизации
monqctl instance delete queue-binding --queue=cl_stream_data_collector_service --bindingKey=userspace.license.update
monqctl instance delete queue-binding --queue=cl_stream_data_collector_service --bindingKey=userspace.license.expire
Test Forge (fm)
Выполнить перекачку контейнеров в Docker репозиторий обновляемого экземпляра MONQ
monqctl release update images --module=fm
Выполнить конфигурацию баз данных микросервисов
monqctl release update db pgsql --module=fm --microservice=pl-userspaces-api-service --file userspace-configuration.sql
Выполнить конфигурацию микросервисов в реестре для микросервисов из обновления и применить шаблоны в Kubernetes
monqctl release update microservices --module=fm
MONQ Metrics (mcs)
Выполнить перекачку контейнеров в Docker репозиторий обновляемого экземпляра MONQ
monqctl release update images --module=mcs
Выполнить конфигурацию баз данных микросервисов
monqctl release update db pgsql --module=mcs --microservice=pl-userspaces-api-service --file userspace-configuration.sql
Выполнить конфигурацию микросервисов в реестре для микросервисов из обновления и применить шаблоны в Kubernetes
monqctl release update microservices --module=mcs
Agent plugins + content packs
Выполнить конфигурацию микросервисов в реестре для микросервисов из обновления и применить шаблоны в Kubernetes
monqctl release update agent-plugins --module=plugins --plugin=zabbixEventsDataFlow
monqctl release update agent-plugins --module=plugins --plugin=metricsFromStaticTargets
monqctl release update agent-plugins --module=plugins --plugin=k8sMetricsDataFlow
monqctl release update agent-plugins --module=plugins --plugin=k8sTopologySync
monqctl release update agent-plugins --module=plugins --plugin=nagiosEventsDataFlow
monqctl release update agent-plugins --module=plugins --plugin=nagiosCheckConnection
monqctl release update agent-plugins --module=plugins --plugin=scomEventsDataFlow
monqctl release update agent-plugins --module=plugins --plugin=scomCheckConnection
monqctl release update agent-plugins --module=plugins --plugin=vmwareEventsDataFlow
monqctl release update agent-plugins --module=plugins --plugin=vmwareTopologySync
monqctl release update agent-plugins --module=plugins --plugin=zabbixCheckConnection
monqctl release update agent-plugins --module=plugins --plugin=zabbixCheckVersion
monqctl instance restart microservice --microservice=pl-monq-agent
Проверить лог запуска системного агента. Вначале лога должны быть загружены все нужные плагины.
Плагин httpPlugin2
перенесен в список интегрированных плагинов. Если после перезагрузки pl-monq-agent
в логах выводится сообщение вида:
"Error while loading plugin from /storage/plugins/httpPlugin2. Details: Could not load file or assembly..."
нужно удалить не поддерживаемый плагин из каталога системного агента вручную.
Выполнить загрузку контент-паков
monqctl release update content-packs --module=plugins --replace --file=content-packs/vcenter.zip
monqctl release update content-packs --module=plugins --replace --file=content-packs/scom.zip
monqctl release update content-packs --module=plugins --replace --file=content-packs/nagios.zip
monqctl release update content-packs --module=plugins --replace --file=content-packs/zabbix.zip
monqctl release update content-packs --module=plugins --replace --file=content-packs/prometheus.zip
monqctl release update content-packs --module=plugins --replace --file=content-packs/email.zip
monqctl release update content-packs --module=plugins --replace --file=content-packs/telegram.zip
monqctl release update content-packs --module=plugins --replace --file=content-packs/k8s.zip