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

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

Требования

Предыдущая версия Monq: 7.15.0

Внимание
  1. Перед обновлением до версии Monq 8.0.0 обратитесь в техническую поддержку для получения нового активационного ключа.

  2. Все существующие личные Карты РСМ будут безвозвратно удалены из системы. Для сохранения данных карт, пользователям нужно сделать эти карты групповыми выбрав для них любую доступную РГ.

  3. Все личные шаблоны отчетов Доступности из системы будут удалены. Для сохранения своих личных шаблонов в системе необходимо сделать его групповым выбрав для них любую доступную РГ.

  4. Будут перенесены только системные роли Администраторов пространства. Все прочие роли будут безвозвратно удалены из системы. Администраторы с пользовательскими ролями будут мигрированы с ролью "Администратор пространства", обладающей правами на всё. После обновления, при необходимости, этих пользователей нужно будет ограничить в имеющихся правах, создав для них новую роль.

  5. Название предоставляемых прав на КЕ были переименованы:

    • с base-system.rsm.config-items-read на sm.rsm.config-items-read
    • с base-system.rsm.config-items-write на sm.rsm.config-items-write

    Если в сценариях автоматизации вы использовали предоставление доступа к КЕ - необходимо заменить данные параметры.

  6. В сценариях автоматизации и пользовательских функциях будут удалены объекты, использующие структуру EmailConfiguration. В ходе обновления в логе мигратора будет выведена информация, какие сценарии и функции были затронуты. Их потребуется адаптировать вручную после обновления.

  7. В новой версии Monq Agent меняется название плагина httpPlugin2 на httpPlugin (справка). После обновления системы, в Потоках данных могут наблюдаться ошибки, типа Plugin httpPlugin2 not found. В таком случае необходимо исправить название плагина с httpPlugin2 на httpPlugin в заданиях этих Потоков данных.

В обновлении:

ПродуктНовая версия
pl8.0.0
sm8.0.0
cl8.0.0
fm8.0.0
plugins8.0.0
mcs8.0.0

Уровень простоя

Деградация прав пользователей на период обновления. Возможны сбои в выполнении сценариев автоматона из-за изменения функции проверки прав служебных пользователей.

Проведение миграции 7.15.0 -> 8.0.0

Требования

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

!!! MonqCtl !!!

Минимальная версия monqctl: 1.13.0

Примечание

Токен доступа в Monq ReleaseHub для скачивания обновления можно взять из письма о регистрации лицензии или получить, обратившись в техническую поддержку Monq.

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

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

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

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

    # Просмотреть статус сервисов в реестре микросервисов из контекста
    monqctl registry get services
  2. Установить контекст релиза, с которым будет работать 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