Перейти к основному содержимому
Версия: 6.1

Обновление Smart Monitor

Обратите внимание!

Инструкция описывает процесс обновления Smart Monitor с версии 6.0.* на 6.1.*.

Обратите внимание!

Для корректной работы заметок и другого функционала нужно создать на узлах Smart Monitor Data Storage директорию $OS_HOME/uploads, изменить права на пользователя, под которым работает Smart Monitor Data Storage, подключить к этой директории общую сетевую папку. Воспользуйтесь статьей по настройке

Информация

Условные обозначения:

  • SM_INSTALLER - директория, куда разархивируется установочный пакет Smart Monitor версии 6.1
  • USER - пользователь системы с правами администратора, обычно это admin
  • OS_HOME - домашняя директория OpenSearch, обычно это /app/opensearch/
  • OS_DATA - директория, где хранятся проиндексированные данные, обычно это /app/data/opensearch
  • OS_IP - IP-адрес одного из серверов кластера OpenSearch
  • OSD_HOME - домашняя директория OpenSearch Dashboards, обычно это /app/opensearch-dashboards/
  • PATH_SSL - место расположения сертификата, закрытого ключа admin, а также ca-cert, обычно совпадает с /app/opensearch/config/

Первоочередным шагом для обновления является определение текущей установленной версии Smart Monitor. Это можно сделать, просмотрев версии модулей на главной странице или выполнив команду в командной строке:

curl https://$OS_IP:9200/_cat/plugins -k -u $USER

После ввода данной команды потребуется ввести пароль учетной записи $USER. Рекомендуется использовать пользователя admin.

Подробный список нововведений можно посмотреть в статье Что нового в Smart Monitor 6.1.

Рассмотрим процедуру обновления каждого компонента. Установщик 6.1 требуется распаковать в директорию, например, /app/distr/.

Обратите внимание!

Перед началом работ строго рекомендуется сделать бэкап основных конфигурационных файлов и настроек Security.

Рекомендуемые действия

Рекомендуется создать директорию, например, /app/backup, куда следует сохранить:

  • директория config, обычно $OS_HOME/config или $OSD_HOME/config

  • файлы systemd, обычно это /etc/systemd/system/opensearch.service и /etc/systemd/system/opensearch-dashboards.service, /etc/systemd/system/sme-re.service

  • файл /etc/sysctl.d/00-opensearch.conf

  • копия настроек Security, сделать это нужно один раз, для чего потребуются сертификат и закрытый ключ admin пользователя (командой ниже создастся директория с текущей датой с настройками security OpenSearch)

    chmod +x $OS_HOME/plugins/opensearch-security/tools/securityadmin.sh
    JAVA_HOME=$OS_HOME/jdk/ $OS_HOME/plugins/opensearch-security/tools/securityadmin.sh -backup /app/backup/security_$(date +%Y%m%d) \
    -icl \
    -nhnv \
    -cacert $OS_HOME/config/ca-cert.pem \
    -cert $OS_HOME/config/admin-cert.pem \
    -key $OS_HOME/config/admin-key.pem

Обновление OpenSearch

Установщик Smart Monitor 6.1 требуется распаковать в директорию, например, /app/distr/. Куда вы распакуете содержимое архива пометьте как $SM_INSTALLER.

tar xzf smart-monitor-installer-*.tar.gz -C /app/distr/
SM_INSTALLER=/app/distr/sm_6.1
Обратите внимание!

Для кластеров состоящих из нескольких узлов рекомендуется отключать аллокацию перед обновлением через консоль разработчика (Навигационное меню - Параметры системы - Консоль разработчика) выполнив команду:

PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "none"
}
}

Сделать тоже самое можно из терминала следующей командой:

curl -XPUT -k -u admin "https://$OS_IP:9200/_cluster/settings?pretty" -H "Content-Type: application/json" -d '{"persistent":{"cluster.routing.allocation.enable": "none"}}'

При обновлении узлов кластера не используйте отключение аллокации с помощью скрипта обновления. После обновления всех узлов кластера включите аллокацию:

PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "all"
}
}

Сделать тоже самое можно из терминала следующей командой:

curl -XPUT -k -u admin "https://$OS_IP:9200/_cluster/settings?pretty" -H "Content-Type: application/json" -d '{"persistent":{"cluster.routing.allocation.enable": "all"}}'

Автоматический режим

Для работы скрипта потребуется наличие следующих предустановленных пакетов:

  • curl
  • zip
  • unzip
Обратите внимание!

Если в конце Вы не увидели надписи, что Smart Monitor обновлен, не запускайте повторно скрипт обновления, сделайте скриншот на каком месте остановился скрипт и обратитесь в техническую поддержку.

Скрипт автоматизирует обновление и находится по пути $SM_INSTALLER/opensearch/setup.sh. Для обновления нужно либо передать ключ update при запуске, либо запустить скрипт без параметров и выбрать соответствующий пункт в интерактивном меню:

Select action [default: update]:
1) install
2) update
3) uninstall

Action [update]:

Скрипт поддерживает следующие параметры запуска:

  • <action> — действие: install, update или uninstall (установка, обновление или удаление соответственно)
  • -c, --config <path_to_config_file_yaml> - указать конфигурационный файл для обновления
  • -h, --help - выводит справку о доступных командах

Пример конфигурационного файла: $SM_INSTALLER/opensearch/example_config_opensearch.yaml. Формат файла YAML аналогичен конфигурационному файлу, используемому при установке.

Обратите внимание!

Начинать обновление нужно с узлов без роли master, узлы data могут подключаться к более старым версиям узлов master, но не наоборот.

Для запуска обновления нужно запустить скрипт:

$SM_INSTALLER/opensearch/setup.sh update

После запуска скрипт автоматически находит пути основных директорий:

  • OpenSearch Home Directory - директория расположения OpenSearch, обычно это /app/opensearch
  • OpenSearch Conf Directory - директория расположения конфигурационных файлов OpenSearch, обычно /app/opensearch/config/
  • OpenSearch Data Directory - директория расположения данных, обычно /app/data/
  • OpenSearch Logs Directory - директория расположения логов, обычно /app/logs/

Скрипт обновления не производит никаких действий с директорией data и logs, а директория конфигурационных файлов и systemd файлы будут сохранены во временную директорию $SM_INSTALLER/opensearch/staging/.

Обратите внимание!

Если запустить скрипт повторно, то директория staging очистится вместе со всеми скопированными директория конфигурационных файлов и systemd файлы.

================================================================================
SMART MONITOR UPDATE SCRIPT - OPENSEARCH
================================================================================

Current working directory: /app/distr/sm_6.1/opensearch

Current name of install's archive: opensearch-3.5.0-linux-x64.tar.gz

New version OpenSearch: 3.5.0

================================================================================
-- STEP 1. INSTALLATION DIRECTORIES

opensearch.service file found. Will get necessary paths from there

Final Opensearch home directory: /app/opensearch
Final Opensearch conf directory: /app/opensearch/config
Final Opensearch data directory: /app/data/opensearch
Final Opensearch logs directory: /app/logs/opensearch
Final Java runtime home: /app/opensearch/jdk
Is this correct? [y/n]:

После ввода директорий требуется подтвердить автоматически найденные данные, нажав y, или ввести свои директории вручную нажав n.

На втором шаге нужно ответить на вопрос по использованию пользователя во время обновления. Если не требуется выводить никакой информации, то введите n, если требуется вывод дополнительной информации введите y.

Пользователь может использоваться для вывода информации или для управления аллокацией, соответственно требуются разные наборы разрешений. Для простого вывода информации достаточно разрешений роли sa-monitoring.

-- STEP 2. GET USER

Do you want to see cluster information or manage allocation? [Y/n] :

================================================================================
Your account must have role "sa-monitoring"
Your account must have permission "cluster:admin/settings/update" for manage allocation
================================================================================

Enter username: admin
Enter password for user "admin":
Is this correct? [y/n]:

На следующем шаге можно отключить все операции, требующие повышения привилегий при обновлении до прав пользователя root.

Обратите внимание!

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

Если не выполнить команды перед обновлением, то возможна потеря данных.

Запустить установщик от пользователя opensearch можно следующей командой:

sudo -u opensearch $SM_INSTALLER/opensearch/setup.sh update

Первый вопрос будет по отключению команд, требующих повышения привилегий до пользователя root.

Затем требуется ввести пользователя и группу, под которыми работает OpenSearch.

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

-- STEP 3. DISABLE OPERATIONS WHERE ROOT RIGHTS ARE REQUIRED

Want to update SMART MONITOR without root privileges? [y/N]: y

Final you set the non-root flag to: y

Linux username for SMART MONITOR [opensearch]:
Linux groupname for SMART MONITOR [opensearch]:

Final SMART MONITOR username: opensearch
Final SMART MONITOR groupname: opensearch
Is this correct? [Y/n]:

ATTENTION!
Before updating SMART MONITOR, you must run the following commands as a user with root privileges.
If yo need to disable allocation, run the following command:

curl -XPUT -k -u YOUR_USER_OPENSEARCH:YOUR_USER_OPENSEARCH_PASSWORD_HERE "https://YOUR_IP_OPENSEARCH:9200/_cluster/settings?pretty" -H "Content-Type: application/json" -d '{"persistent":{"cluster.routing.allocation.enable": "none"}}'

Change user, group and directories as needed

systemctl stop sme-re
systemctl stop opensearch
chown -R opensearch:opensearch /app/opensearch /app/opensearch/config /app/data/opensearch /app/logs/opensearch /app/distr/sm_6.1/opensearch

!!! Are you sure you have done everything from the list above? [y/N]:

В конце требуется подтвердить, что были выполнены все команды от пользователя root. Введите y для подтверждения или обновление будет прервано.

На следующем шаге, если было выбрано использование пользователя при обновлении, нужно ответить на вопрос по аллокации. Если ввести y, то скрипт будет отключать аллокацию перед обновлением и включит в конце работы скрипта.

-- STEP 4. CONFIGURE ALLOCATION

Do you want to disable allocation during update? [y/N]: n

You don't want to disable allocation: n
Is this correct? [y/n]:

Затем будут произведены подготовительные действия перед обновлением, перед применением обновления будет задан вопрос о продолжении, до этого момента никаких действий в системе не производится. Также будет выведена некоторая информация о текущем узле и кластере в целом, если был выбран на втором шаге использование пользователя при обновлении.

get current list of plugins
sm-core
sm-im
sm-inventory
sm-ism-action-clickhouse
sm-job-scheduler
sm-job-scheduler-actions-incident
sm-job-scheduler-actions-mitre
sm-knowledge-center
sm-mitre
sm-mssp
sm-rsm
sm-uba
sme
opensearch-security
Information about current node OpenSearch:
{
"name" : "sm-node-00",
"cluster_name" : "sm-cluster",
"cluster_uuid" : "3XDKoAAEQUa8h1r73lg2gA",
"version" : {
"distribution" : "opensearch",
"number" : "3.5.0",
"build_type" : "tar",
"build_hash" : "6adc0bf476e1624190564d7fbe4aba00ccf49ad8",
"build_date" : "2025-10-29T17:05:01.906258Z",
"build_snapshot" : false,
"lucene_version" : "10.2.2",
"minimum_wire_compatibility_version" : "2.19.0",
"minimum_index_compatibility_version" : "2.0.0"
},
"tagline" : "The OpenSearch Project: https://opensearch.org/"
}

!!! AT THIS POINT WE START TO MAKE CHANGES IN OPERATING SYSTEM !!!
Do you want to continue? [y/N]:

Если нажать Enter - обновление прервется, для продолжения нужно нажать y.

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

-- STEP 10. PRINT INFORMATION
current state of cluster
{
"cluster_name" : "sm-cluster",
"status" : "yellow",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"discovered_master" : true,
"discovered_cluster_manager" : true,
"active_primary_shards" : 50,
"active_shards" : 50,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 15,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 76.92307692307693
}
current state clusters nodes
172.16.0.27 14 99 8 1.47 0.63 0.26 dim data,ingest,master * sm-node-00
Information about current node OpenSearch:
{
"name" : "sm-node-00",
"cluster_name" : "sm-cluster",
"cluster_uuid" : "5V2rIp1sRj-M-ANnGfF0cA",
"version" : {
"distribution" : "opensearch",
"number" : "3.5.0",
"build_type" : "tar",
"build_hash" : "6adc0bf476e1624190564d7fbe4aba00ccf49ad8",
"build_date" : "2025-10-29T17:05:01.906258Z",
"build_snapshot" : false,
"lucene_version" : "10.2.2",
"minimum_wire_compatibility_version" : "2.19.0",
"minimum_index_compatibility_version" : "2.0.0"
},
"tagline" : "The OpenSearch Project: https://opensearch.org/"
}

================================================================================
ATTENTION!
After updating SMART MONITOR, you must run the following commands as a user with root privileges.
Change user, group and directories as needed.

cp /app/distr/sm_6.1/opensearch/staging/services/sme-re.service /etc/systemd/system/
chown root:root /etc/systemd/system/sme-re.service
chcon -Rv -u system_u -r object_r -t bin_t /app/opensearch/bin
chcon -Rv -u system_u -r object_r -t bin_t /app/opensearch/jdk/bin
chcon -Rv -u system_u -r object_r -t var_run_t /app/opensearch/run
chown -R opensearch:opensearch /app/opensearch /app/opensearch/config /app/data/opensearch /app/logs/opensearch
systemctl daemon-reload
systemctl enable sme-re opensearch
systemctl start sme-re
systemctl start opensearch
systemctl status sme-re opensearch

If you disable allocation before, wait 60 seconds and run the following commands as a "opensearch" or user with root privileges:

curl -XPUT -k -u YOUR_USER_OPENSEARCH:YOUR_ADMIN_PASSWORD_HERE "https://127.0.0.1:9200/_cluster/settings?pretty" -H "Content-Type: application/json" -d '{"persistent":{"cluster.routing.allocation.enable": "all"}}'

The following plugins cannot be installed:
-- sm-job-scheduler-actions-incident
-- sm-job-scheduler-actions-mitre

================================================================================
-- SMART MONITOR SUCCESSFULLY UPDATED!
-- For further instructions, please refer to the documentation: https://docs.smartmonitor.ru
================================================================================

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

Если по какой-то причине скрипт обновления не смог обновить какие-то плагины, то он выведет дополнительно в конце информацию об этих плагинах, как на примере выше (текст The following plugins cannot be installed).

Обратите внимание!

Скрипт обновления учитывает текущий список установленных плагинов на узлах OpenSearch. Если требуется установить какой-нибудь плагин дополнительно, то действие стоит производить вручную в конце обновления узла.

Обновление Smart Monitor Web

Для работы скрипта потребуется наличие следующих предустановленных пакетов:

  • curl
  • zip
  • unzip

Скрипт автоматизирует обновление и находится по пути $SM_INSTALLER/opensearch-dashboards/setup.sh. Для обновления нужно либо передать ключ update при запуске, либо запустить скрипт без параметров и выбрать соответствующий пункт в интерактивном меню:

Select action [default: update]:
1) install
2) update
3) uninstall

Action [update]:

Скрипт обновления поддерживает следующие параметры запуска:

  • <action> — действие: install, update или uninstall (установка, обновление или удаление соответственно)
  • -c, --config <path_to_config_file_yaml> - указать конфигурационный файл для обновления
  • -h, --help - выводит справку о доступных командах

Пример конфигурационного файла: $SM_INSTALLER/opensearch-dashboards/example_config_dashboards.yaml. Формат файла YAML аналогичен конфигурационному файлу при установке.

При работе скрипт сделает резервную копию файла сервиса systemd, opensearch-dashboards.yml и директории с конфигурациями во временную директорию $SM_INSTALLER/opensearch-dashboards/staging/. Директории data и logs скрипт не затрагивает.

Обратите внимание!

При повторном запуске скрипта директория staging очищается, и предыдущая резервная копия будет потеряна. Если она нужна, заберите её оттуда до повторного запуска.

Для обновления нужно запустить скрипт:

$SM_INSTALLER/opensearch-dashboards/setup.sh update

Скрипт автоматически определит основные пути текущего сервера до следующих директорий:

  • OpenSearch Dashboards Home Directory - директория расположения OpenSearch Dashboards, обычно это /app/opensearch-dashboards
  • OpenSearch Dashboards Conf Directory - директория расположения конфигурационных файлов OpenSearch Dashboards, обычно /app/opensearch-dashboards/config/
  • OpenSearch Dashboards Data Directory - директория расположения данных, обычно /app/data/
  • OpenSearch Dashboards Logs Directory - директория расположения логов, обычно /app/logs/
================================================================================
SMART MONITOR INSTALL SCRIPT - OPENSEARCH DASHBOARDS
================================================================================

Current working directory: /opt/sm_6.1/opensearch-dashboards

Current name of install's archive: opensearch-dashboards-3.5.0-linux-x64.tar.gz

Current version of OpenSearch-Dashboards: 3.5.0

================================================================================
-- STEP 1. INSTALLATION DIRECTORIES

opensearch-dashboards.service file found. Will get necessary paths from there

Final Opensearch Dashboards home directory: /app/opensearch-dashboards
Final Opensearch Dashboards conf directory: /app/opensearch-dashboards/config
Final Opensearch Dashboards data directory: /app/data/opensearch-dashboards
Final Opensearch Dashboards logs directory: /app/logs/opensearch-dashboards
Is this correct? [y/n]:

После ввода директорий требуется подтвердить введенные данные, нажав y, или ввести свои директории вручную нажав n.

На следующем шаге можно отключить все операции, требующие повышения привилегий при обновлении до прав пользователя root.

Обратите внимание!

Полностью выполнить обновление без root привилегий нельзя, требуется выполнить часть операций от пользователя root, затем запустить установщик от имени пользователя, под которым работает Smart Monitor Web, после завершения работы скрипта снова нужно выполнить некоторые операции от пользователя root. Список операций будет выведен в установщике.

Если не выполнить команды перед обновлением, то возможна потеря данных.

Запустить установщик от пользователя opensearch можно следующей командой:

sudo -u opensearch $SM_INSTALLER/opensearch-dashboards/setup.sh update

Первый вопрос будет по отключению команд, требующих повышения привилегий до пользователя root.

Затем требуется ввести пользователя и группу, под которыми работает Smart Monitor Web.

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

-- STEP 2. DISABLE OPERATIONS WHERE ROOT RIGHTS ARE REQUIRED

Want to update SMART MONITOR without root privileges? [y/N]: y

Final you set the non-root flag to: y

Linux username for SMART MONITOR [opensearch]:
Linux groupname for SMART MONITOR [opensearch]:

Final SMART MONITOR username: opensearch
Final SMART MONITOR groupname: opensearch
Is this correct? [Y/n]:

ATTENTION!
Before updating SMART MONITOR, you must run the following commands as a user with root privileges.
Change user, group and directories as needed

systemctl stop opensearch-dashboards
chown -R opensearch:opensearch /app/opensearch-dashboards /app/opensearch-dashboards/config /app/data/opensearch-dashboards /app/logs/opensearch-dashboards /app/distr/sm_6.1/opensearch-dashboards

!!! Are you sure you have done everything from the list above? [y/N]:

В конце требуется подтвердить, что были выполнены все команды от пользователя root. Введите y для подтверждения или обновление будет прервано.

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

Current list of plugins:
-- smartMonitor
-- smartMonitorColumnChart
-- smartMonitorCyberSecurity
-- smartMonitorDrawio
-- smartMonitorHeatmapChart
-- smartMonitorHtmlChart
-- smartMonitorIncidentManager
-- smartMonitorInventory
-- smartMonitorKnowledgeCenter
-- smartMonitorLineChart
-- smartMonitorLookupManager
-- smartMonitorMitreAttack
-- smartMonitorPDFExport
-- smartMonitorPieChart
-- smartMonitorSingleValue
-- smartMonitorTable
-- smartMonitorUserBehaviorAnalytics

Current version of OpenSearch-Dashboards: 3.5.0

!!! AT THIS POINT WE START TO MAKE CHANGES IN OPERATING SYSTEM !!!
Do you want to continue? [y/N]:

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

================================================================================
ATTENTION!
After updating SMART MONITOR, you must run the following commands as a user with root privileges.
Change user, group and directories as needed.

cp /app/distr/sm_6.1/opensearch-dashboards/staging/services/opensearch-dashboards.service /etc/systemd/system/
chown root:root /etc/systemd/system/opensearch-dashboards.service
chcon -Rv -u system_u -r object_r -t bin_t /app/opensearch-dashboards/bin
chown -R opensearch:opensearch /app/opensearch-dashboards /app/opensearch-dashboards/config /app/data/opensearch-dashboards /app/logs/opensearch-dashboards
systemctl daemon-reload
systemctl enable opensearch-dashboards
systemctl start opensearch-dashboards
systemctl status opensearch-dashboards

================================================================================
-- SMART MONITOR DASHBOARDS SUCCESSFULLY UPDATED!
-- For further instructions, please refer to the documentation: https://docs.smartmonitor.ru
================================================================================

При успешном завершении скрипта обновления будет выведен соответствующий текст SMART MONITOR DASHBOARDS SUCCESSFULLY UPDATED.

Действия после обновления

Lookup Manager

Обратите внимание!

После обновления вручную удалите устаревшую страницу создания справочника из главного меню.

  1. Перейдите в Навигационное меню - Параметры системы - Настройки модулей - Основное - Настройки меню
  2. Раскройте группу Lookup Manager с системным именем lookup-manager
  3. Нажмите значок корзины рядом со страницей Создание справочника
  4. Нажмите Сохранить изменения

После удаления в группе Lookup Manager должна остаться страница Список справочников.

Обновление функции peval

Для обновления функции peval random запустите команду в Консоль разработчика (Навигационное меню- Параметры системы - Консоль разработчика):

POST _core/migration/6.1.0/peval_random_migration

Миграция Incident Manager

Обратите внимание!

Если модуль Incident Manager не установлен, перейдите к следующему шагу.

Миграция поля fields из object в flat_object для индексов .smos_incident-*

Обратите внимание!

После выполнения миграции поля fields из object в flat_object, в индексе .smos_incident-\* поля fields.\* перестанут быть доступными для агрегаций.

Миграция изменяет тип поля fields с object на flat_object во всех индексах, имена которых соответствуют шаблону .smos_incident-*. Операция выполняется асинхронно. После запуска запрос возвращает идентификатор migration_id, который используется для отслеживания состояния и выполнения последующих операций.

Дополнительно миграция:

  • сохраняет служебные записи в индексе .sm_fields_flat_object_migration
  • создает шаблон индекса OpenSearch sm_incidents_template, который устанавливает тип flat_object для поля fields в новых индексах
подсказка

Чтобы просмотреть шаблон, перейдите в Параметры системы - Управление индексами - Шаблоны.

Предварительные требования

Перед запуском убедитесь, что:

  1. Достаточно свободных шардов. Во время миграции исходный и резервный индексы существуют одновременно, поэтому количество шардов, относящихся к мигрируемым индексам, временно увеличивается примерно вдвое. При большом количестве индексов может быть превышен параметр cluster.max_shards_per_node или другой установленный в кластере лимит шардов Проверьте текущие настройки и состояние шардов:
GET /_cluster/settings?include_defaults=true&filter_path=**.max_shards*
GET /_cat/shards?v&h=index,state,docs,store

Порядок устранения ошибок, связанных с превышением лимита шардов, приведен в соответствующем разделе ошибки при обработке конкретных индексов.

  1. Кластер находится в работоспособном состоянии. Статус кластера должен быть green или yellow. Не запускайте миграцию при статусе red
GET _cluster/health
  1. Нет другой активной миграции. Одновременно может выполняться только одна миграция. При попытке запустить вторую миграцию возвращается ошибка

  2. Достаточно места на диске. Во время миграции исходный и резервный индексы существуют одновременно, поэтому пиковый объем занимаемого ими места может примерно вдвое превышать исходный. Объем свободного места должен быть не меньше текущего объема мигрируемых данных. Предусмотрите дополнительное место для сегментов, служебных данных и параллельных операций записи

  3. Нет заблокированных индексов. Убедитесь, что ни один из мигрируемых индексов не находится в режиме read-only, read_only_allow_delete или write. Для проверки выполните следующий запрос:

GET .smos_incident-*/_settings/index.blocks*
  1. Нет резервных индексов от предыдущей миграции. Перед запуском проверьте, не остались ли индексы с префиксом .backup-.smos_incident-:
GET /_cat/indices/.backup-.smos_incident-*?v
предупреждение

Не удаляйте индексы, пока не убедитесь, что они не относятся к активной миграции и не являются единственной сохранившейся копией данных.

  1. Достаточно прав. Пользователь, от имени которого выполняется миграция, должен иметь права на:
    • чтение и запись документов
    • создание и удаление индексов
    • чтение и изменение маппингов и настроек индексов
    • создание или обновление шаблона индекса

Порядок выполнения миграции

Миграция должна производиться на неизменяемом индексе. Исходя из этого, миграцию можно провести двумя способами:

  1. Остановить все записи в индекс .smos_incident-* и запустить миграцию по инструкции ниже. В этом случае шаблон индекса загрузится автоматически.
  2. Вручную запустить команду, которая загрузит шаблон:
POST /_core/migration/6.1.0/im_reload_template

Дождаться начала следующей недели, тогда новые индексы будут созданы с правильным маппингом и можно будет мигрировать старые. Запустить миграцию по инструкции ниже.

Инструкция миграции

  1. Запуск миграции
POST /_core/migration/6.1.0/im_fields_to_flat_object

В ответе возвращается идентификатор миграции. Сохраните значение migration_id: оно понадобится для мониторинга и последующих операций.

{
"migration_id": "Pte3ZJ8BL4fIwRYMyNYo",
"status": "ACCEPTED"
}
  1. Мониторинг выполнения
GET /_core/migration/6.1.0/im_fields_to_flat_object/{migration_id}

Поле status в ответе принимает следующие значения:

СтатусОписание
ACCEPTEDМиграция принята, еще не началась
RUNNINGИдет обработка индексов
COMPLETEDВсе индексы успешно мигрированы
COMPLETED_WITH_ERRORSЧасть индексов мигрирована, часть завершилась с ошибками
FAILEDМиграция не смогла начаться

Поле indices содержит статус по каждому индексу:

Статус индексаОписание
RUNNINGИндекс в процессе обработки
COMPLETEDИндекс успешно мигрирован
SKIPPEDИндекс пропущен
FAILEDПри обработке индекса возникла ошибка

Поле errors_by_index содержит детальное описание ошибок для каждого индекса.

Дождитесь одного из следующих конечных статусов:

  • при COMPLETED перейдите к проверке результата и очистке
  • при COMPLETED_WITH_ERRORS изучите errors_by_index, восстановите или повторно обработайте проблемные индексы, затем выполните очистку
  • при FAILED устраните причину ошибки перед повторным запуском
  1. Очистка после успешной миграции
к сведению

После получения статуса COMPLETED проверьте маппинг и количество документов для каждого мигрированного индекса:

GET .smos_incident-*/_mapping?filter_path=*.mappings.properties.fields
GET .backup-.smos_incident-*/_mapping?filter_path=*.mappings.properties.fields

GET /<имя_индекса>/_count
GET /.backup-<имя_индекса>/_count

После завершения миграции удалите резервные копии, предварительно убедившись, что они не содержат единственную сохранившуюся копию данных:

DELETE /_core/migration/6.1.0/im_fields_to_flat_object/{migration_id}/backups

Удалите из индекса .sm_fields_flat_object_migration служебные записи, относящиеся к данной миграции. Выполняйте этот запрос после удаления резервных копий. Резервные копии индексов, миграция которых завершилась с ошибкой, не удаляются.

DELETE /_core/migration/6.1.0/im_fields_to_flat_object/{migration_id}/cleanup

Возможные ошибки и способы их устранения

Ошибки до начала обработки индексов

  1. Ошибка при создании или обновлении шаблона

Причина. Недостаточно прав, создание индексов заблокировано на уровне кластера или существующий шаблон конфликтует с создаваемым шаблоном.

Решение. Проверьте существующий шаблон и права пользователя. Не удаляйте существующий шаблон, пока не убедитесь, что он не используется другими индексами или компонентами системы. После устранения причины повторите запуск миграции.

  1. Другая миграция уже выполняется

Причина. Уже выполняется миграция с другим migration_id.

Решение. Проверьте состояние активной миграции:

GET /_core/migration/6.1.0/im_fields_to_flat_object/{migration_id}

Ошибки при обработке конкретных индексов

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

  1. Ошибки при реиндексации

Возможные причины сбоя: нехватка ресурсов во время реиндексации или несоответствие количества документов после ее завершения. В зависимости от этапа миграции данные находятся в исходном или резервном индексе. Просмотрите сведения об ошибке в поле errors_by_index и повторно запустите миграцию.

  1. Ошибка во время создания мигрированного индекса

Ошибка возникает, если исходный индекс удален, но новый индекс не создан или реиндексация в него не завершена. Все данные находятся в резервном индексе .backup-<имя_индекса>.

Что делать:

  • Убедитесь, что резервный индекс существует и содержит данные:
GET .backup-<имя_индекса>/_count
  • Вручную создайте исходный индекс с нужным маппингом и реиндексируйте из резервной копии:

    POST _reindex
    {
    "source": { "index": ".backup-<имя_индекса>" },
    "dest": { "index": "<имя_индекса>" }
    }

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

  1. Превышен лимит количества шардов

Причина. В кластере превышен лимит шардов, описанный в разделе предварительные требования.

Решение. Освободите неиспользуемые шарды или временно увеличьте соответствующий лимит. Если правила эксплуатации кластера не допускают увеличение лимита, повторяйте миграцию до завершения обработки всех индексов. Перед каждым запуском удаляйте резервные копии успешно мигрированных индексов.

  1. Истек срок действия Scroll-контекста

Причина. Реиндексация выполняется пакетами с использованием Scroll API. Если обработка очередного пакета занимает больше времени, чем срок действия Scroll-контекста, OpenSearch удаляет контекст, и операция завершается с ошибкой.

Решение. Снизьте нагрузку на кластер, после остановки текущей миграции удалите неполный резервный индекс и повторите запуск.

  1. Индекс пропущен

Причина указывается в поле message. Обычно индекс пропускается, если поле fields отсутствует или уже имеет тип flat_object.

  1. Резервный индекс уже существует

Причина. Предыдущая миграция завершилась с ошибкой после создания резервного индекса, но до его удаления.

Решение.

  • убедитесь, что другая миграция не выполняется
  • проверьте наличие и содержимое соответствующего резервного индекса
  • удалите резервный индекс, только если он не содержит единственную сохранившуюся копию данных
  • повторно запустите миграцию
  1. Индекс заблокирован

Решение. При необходимости снимите установленные для индекса блокировки записи или изменения метаданных.

Ошибки после завершения миграции

  1. Резервные копии не удаляются.

Если запрос на удаление вернул ошибки в поле errors, устраните их или удалите резервные индексы вручную:

DELETE /.backup-<имя_индекса>
  1. Служебный индекс не очищается.

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

POST /.sm_fields_flat_object_migration/_delete_by_query
{
"query": {
"term": { "migration_id.keyword": "<migration_id>" }
}
}

Настройка скриптов для SLA

Чтобы выбранные скрипты выполнялись в политиках SLA, укажите URL-адрес Smart Monitor в настройках кластера:

PUT _cluster/settings
{
"persistent": {
"sm.im.adhoc.url": "https://example.com:8080"
}
}

IM: Настройка контента

В версии 6.1.0 добавлен дашборд со статистикой по SLA, а также обновлен дашборд статистики по инцидентам.

Чтобы установить обновления:

  1. Перейдите в раздел Навигационное Меню - Настройки модулей - Управление контентом
  2. Выберите модуль Incident Manager
  3. Выберите версию sm_incident_manager_system_6.1.0
  4. Следуйте инструкциям по установке

Для просмотра дашборда статистики по SLA пользователю необходимо предоставить право search на индекс .sm_im_sla_states-\*.

РСМ

Обратите внимание!

Если у вас приобретена лицензия МАЯК, то перейдите к следующему шагу.

С этого релиза модуль РСМ 1.0 не поддерживается. Далее в документации под РСМ подразумевается РСМ 2.0. Перед миграцией и обновлением убедитесь, что данные успешно перенесены и не связаны с модулем РСМ 1.0.

Если Вы не создавали раньше меню для РСМ, то для добавления нового модуля нужно создать элемент в навигационном меню, для этого откройте меню Навигационное меню - Параметры системы - Настройки модулей - Основное - Настройки меню. Нажмите на кнопку Добавить модуль. Если у Вас уже был модуль РСМ, то переименуйте в соответствии с настройками ниже.

Заполните поля для модуля следующим образом:

Название поляСодержимое
Тип элементаГруппа
ЗаголовокРСМ
Системное имяrsm
Включить отображениеДа, флаг должен быть включен

Если у Вас есть пункт меню, связанный с первой версией РСМ, то удалите его.

МАЯК

Миграция МАЯК: Адаптивные метрики

Обратите внимание!

Если модуль МАЯК не установлен или отсутствует лицензия, пропустите этот шаг.

Для обновления схемы хранения данных выполните следующие запросы в Консоль разработчика (Навигационное меню- Параметры системы - Консоль разработчика):

POST _core/migration/6.1.0/base_metric_permissions
{
"backup_index": ".sm_rsm_v2_metrics_permissions_migration_backup",
"owner": "admin",
"read": {"roles": [], "users": ["*"]},
"write": {"roles": ["*"], "users": []},
"overwrite_permissions": false
}


POST _core/migration/6.1.0/adaptive_models_v1_to_v2
{
"backup_index": ".sm_rsm_v2_adaptive_parameters_migration_backup",
"delete_existing_backup": true
}

Обновление главного меню

Если Вы не создавали раньше меню для МАЯК, то для добавления нового модуля нужно создать элемент в навигационном меню, для этого откройте меню Навигационное меню - Параметры системы - Настройки модулей - Основное - Настройки меню. Нажмите на кнопку Добавить модуль. Если у Вас уже был модуль МАЯК, то переименуйте в соответствии с настройками ниже.

Заполните поля для модуля следующим образом:

Название поляСодержимое
Тип элементаГруппа
ЗаголовокМАЯК
Системное имяrsm
Включить отображениеДа, флаг должен быть включен

С версии 6.1.0 доступны два новых раздела: Окна обслуживания и Адаптивные модели.

Внутри модуля МАЯК нажмите кнопку Добавить раздел и заполните поля следующим образом для Окон обслуживания:

Название поляСодержимое
Тип элементаСтраница
ЗаголовокОкна обслуживания
Системное имяmaintenance
Включить отображениеДа, флаг должен быть включен

Внутри модуля МАЯК нажмите кнопку Добавить раздел и заполните поля следующим образом для Адаптивные модели:

Название поляСодержимое
Тип элементаСтраница
ЗаголовокАдаптивные модели
Системное имяadaptive-models
Включить отображениеДа, флаг должен быть включен