Обновление Smart Monitor
Инструкция описывает процесс обновления Smart Monitor с версии 4.1.* на 4.2.*.
Информация
Условные обозначения:
SM_INSTALLER
- директория, куда разархивируется установочный пакетSmart Monitor
версии 4.2USER
- пользователь системы с правами администратора, обычно этоadmin
OPENSEARCH_HOME
- домашняя директория OpenSearch, обычно это/app/opensearch/
OPENSEARCH_DATA
- директория, где хранятся проиндексированные данные, обычно это/app/data/
OSD_HOME
- домашняя директория OpenSearch Dashboards, обычно это/app/opensearch-dashboards/
PATH_SSL
- место расположения сертификата, закрытого ключаadmin
, а такжеca-cert
, обычно совпадает с/app/opensearch/config/
Первоочередным шагом для обновления является определение текущей установленной версии Smart Monitor. Это можно сделать, просмотрев версии модулей на главной странице или выполнив команду в командной строке:
curl https://127.0.0.1:9200/_cat/plugins -k -u $USER
После ввода данной команды потребуется ввести пароль учётной записи $USER
. Рекомендуется использовать пользователя admin
.
Подробный список нововведений можно посмотреть в статье Что нового в Smart Monitor 4.2.
Рассмотрим процедуру обновления каждого компонента. Установщик 4.2 требуется распаковать в директорию, например, /app/distr/
.
Перед началом работ строго рекомендуется сделать бэкап основных конфигурационных файлов и настроек Security.
После завершения обновления обязательно обновите SmartBeat Manager
, обновилось RestAPI без сохранения обратной совместимости, поэтому в пункте меню Навигационное меню
- Параметры системы
- Управление SmartBeat
список агентов будет пустым. Воспользуйтесь инструкцией по обновлению SmartBeat Manager.
Рек омендуемые действия
Рекомендуется создать директорию, например, /app/backup
, куда следует сохранить:
-
директория
config
, обычно$OPENSEARCH_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 $OPENSEARCH_HOME/plugins/opensearch-security/tools/securityadmin.sh
JAVA_HOME=$OPENSEARCH_HOME/jdk/ $OPENSEARCH_HOME/plugins/opensearch-security/tools/securityadmin.sh -backup /app/backup/security_$(date +%Y%m%d) \
-icl \
-nhnv \
-cacert $OPENSEARCH_HOME/config/ca-cert.pem \
-cert $OPENSEARCH_HOME/config/admin-cert.pem \
-key $OPENSEARCH_HOME/config/admin-key.pem
Отключение Inventory Processor
В версии 4.2 были внесены значительные изменения во внутреннюю структуру хранения документов Inventory
. Чтобы Inventory Processor
не завершился с ошибкой во время своей работы, рекомендуется его отключить.
Отключение Inventory Processor
необходимо выполнить перед осуществлением основного обновления. Эти действия требуется выполнить однократно.
Обычно Inventory Processor
запускается в единственном экземпляре на первом узле Smart Monitor Data Storage
с долгосрочным хранением данных (routing mode cold) с помощью crond по расписанию. Посмотреть список заданий crond можно командой ниже.
crontab -l
Закомментируйте выполнение Inventory Processor
и сохраните изменения в crond.
Если запуск Inventory Processor
осуществляется не из стандартного местарасположения $OPENSEARCH_HOME/utils/inventory/moduleInventory
, то после обновления нужно заменить исполняемый файл Inventory Processor
вручную.
Обновление OpenSearch
Установщик Smart Monitor 4.2 требуется распаковать в директорию, например, /app/distr/
. Куда вы распакуете содержимое архива пометьте как $SM_INSTALLER
.
SM_INSTALLER=/app/distr/sm_4.2
Для кластеров состоящих из нескольких узлов рекомендуется отключать аллокацию перед обновлением через консоль разработчика (Навигационное меню
- Параметры системы
- Консоль разработчика
) выполнив команду:
PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "none"
}
}
Сделать тоже самое можно из терминала следующей командой:
curl -XPUT -k -u admin "https://127.0.0.1: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://127.0.0.1:9200/_cluster/settings?pretty" -H "Content-Type: application/json" -d '{"persistent":{"cluster.routing.allocation.enable": "all"}}'
Автоматический режим
Для работы скри пта потребуется наличие следующих предустановленных пакетов:
curl
zip
unzip
Если в конце Вы не увидели надписи, что Smart Monitor обновлён, не запускайте повторно скрипт обновления, сделайте скриншот на каком месте остановился скрипт и обратитесь в техническую поддержку.
Скрипт автоматического обновления позволяет автоматизировать действия при обновлении и находится по пути $SM_INSTALLER/opensearch/update.sh
. При вызова скрипта есть возможность указать конфигурационный файл $SM_INSTALLER/opensearch/example_config_opensearch.yaml
. Формат файла YAML и аналогичен конфигурационному файлу при установке.
Скрипт обновления поддерживает следующие параметры запуска:
-c, --config <path_to_config_file_yaml>
- указать конфигурационный файл дл я обновления-h, --help
- выводит справку о доступных командах
Начинать обновление нужно с узлов без роли master, узлы data могут подключаться к более старым версиям узлов master, но не наоборот.
Для запуска обновления нужно запустить скрипт:
$SM_INSTALLER/opensearch/update.sh
После запуска скрипт автоматически находит пути основных директорий:
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
очистится.
================================================================================
SMART MONITOR UPDATE SCRIPT - OPENSEARCH
================================================================================
Current working directory: /app/distr/sm_4.2/opensearch
Current name of install's archive: opensearch-2.13.0-linux-x64.tar.gz
New version OpenSearch: 2.13.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
Is this correct? [y/n]:
После ввода директорий требуется подтвердить автоматически найденные данные, нажав y
, или ввести свои директории вручную нажав n
.
На втором шаге нужно ответить на вопрос по аллокации. Если ввести y
, то скрипт будет отключать аллокацию перед обновлением и включит в конце работы скрипта.
-- STEP 2. 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]:
На третьем шаге потребуется ввести пароль от пользователя admin. При вводе пароль не будет отображаться.
-- STEP 3. GET ADMIN PASSWORD
Enter password for user "admin":
Если ввести не верный пароль, то аллокация не будет отключена даже если её выбрать на предыдущем шаге, также не будет выведена информация о текущем узле, обновление при этом не прервётся.
Затем будут произведены подготовительные действия перед обновлением, перед применением обновления будет задан вопрос о продолжении, до этого момента никаких действий в системе не производится. Также будет выведена некоторая информация о текущем узле и кластере в целом.
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" : "smos-node-00",
"cluster_name" : "smos-cluster",
"cluster_uuid" : "yKPPDCHGSA6rHQT948jokQ",
"version" : {
"distribution" : "opensearch",
"number" : "2.11.1",
"build_type" : "tar",
"build_hash" : "6b1986e964d440be9137eba1413015c31c5a7752",
"build_date" : "2023-11-29T21:43:10.135035992Z",
"build_snapshot" : false,
"lucene_version" : "9.7.0",
"minimum_wire_compatibility_version" : "7.10.0",
"minimum_index_compatibility_version" : "7.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" : "smos-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 * smos-node-00
Information about current node OpenSearch:
{
"name" : "smos-node-00",
"cluster_name" : "smos-cluster",
"cluster_uuid" : "yKPPDCHGSA6rHQT948jokQ",
"version" : {
"distribution" : "opensearch",
"number" : "2.13.0",
"build_type" : "tar",
"build_hash" : "7ec678d1b7c87d6e779fdef94e33623e1f1e2647",
"build_date" : "2024-03-26T00:02:39.659767978Z",
"build_snapshot" : false,
"lucene_version" : "9.10.0",
"minimum_wire_compatibility_version" : "7.10.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "The OpenSearch Project: https://opensearch.org/"
}
The following plugins cannot be installed:
-- sm-job-scheduler-actions-incident
-- sm-job-scheduler-actions-mitre
================================================================================
-- SMART MONITOR SUCCESSFULLY UPDATED!
================================================================================
Если по какой-то причине скрипт обновления не смог обновить какие-то плагины, то он выведет дополнительно в конце информа цию об этих плагинах, как на примере выше (текст The following plugins cannot be installed
).
Стоит обратить внимание, что скрипт обновления учитывает текущий список установленных плагинов на узлах OpenSearch, если требуется установить какой-нибудь плагин дополнительно, то действие стоит производить вручную в конце обновления узла.
Обновление OpenSearch Dashboards
Для работы скрипта потребуется наличие следующих предустановленных пакетов:
curl
zip
unzip
Скрипт автоматического обновления позволяет автоматизировать действия при обновлении и находится по пути $SM_INSTALLER/opensearch-dashboards/update.sh
. При вызова скрипта есть возможность указать конфигурационный файл $SM_INSTALLER/opensearch-dashboards/example_config_dashboards.yaml
. Формат файла YAML и аналогичен конфигурационному файлу при установке.
Скрипт обновления поддерживает следующие параметры запуска:
-c, --config <path_to_config_file_yaml>
- указать конфигур ационный файл для обновления-h, --help
- выводит справку о доступных командах
При работе скрипт сделает резервную копию файла сервиса systemd, opensearch-dashboards.yml
и директории с конфигурациями во временную директорию $SM_INSTALLER/opensearch-dashboards/staging/
.
Скрипт обновления не производит никаких действий с директорией data
и logs
, а директория конфигураций
и systemd файлы
будут сохранены во временную директорию $SM_INSTALLER/opensearch-dashboards/staging/
.
Если запустить скрипт повторно, то директория staging
очистится.
Для обновления нужно запустить скрипт:
$SM_INSTALLER/opensearch-dashboards/update.sh
Скрипт автоматически определит основные пути текущего сервера до следующих директорий:
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_4.2/opensearch-dashboards
Current name of install's archive: opensearch-dashboards-2.13.0-linux-x64.tar.gz
Current version of OpenSearch-Dashboards: 2.13.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
.
Затем будут произведены подготовительные действия перед обновлением, перед применением обновления будет задан вопрос о продолжении, до этого момента никаких действий, влияющих на работоспособность системы, не производится. Также будет выведена некоторая информация о текущем узле и кластере в целом.
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: 2.13.0
!!! AT THIS POINT WE START TO MAKE CHANGES IN OPERATING SYSTEM !!!
Do you want to continue? [y/N]:
При успешном завершении скрипта обновления буде т выведен соответствующий текст SMART MONITOR DASHBOARDS SUCCESSFULLY UPDATED
.
Обновление формата цветовой схемы тэгов
В версии 4.2 были внесены изменения во внутреннюю структуру хранения цветов тэгов. В установщик включена утилита для миграции тэгов. Утилита располагается в директории $SM_INSTALLER/utils/migrations_4.1-4.2/tags_colors_migrations/
и работает на python. Основные требования утилиты:
- Python 3.8+
- plugin opensearch-py
Остальные пакеты входят в стандартную установку Python, более подробный список пакетов:
- certifi==2023.7.22
- charset-normalizer==3.3.2
- idna==3.4
- opensearch-py==2.3.2
- python-dateutil==2.8.2
- requests==2.31.0
- six==1.16.0
- urllib3==2.0.7
В установщик Smart Monitor
4.2 включён Python 3.8 с требуемым набором пакетов.
Конфигурационный файл
Перед запуском утилиты настройте параметры в файле $SM_INSTALLER/utils/migrations_4.1-4.2/tags_colors_migrations/default.ini
. Пример конфигурационного файла приведён ниже:
[server]
host = 127.0.0.1
port = 9200
[user]
name = admin
pass = password
В параметре server.host
нужно указать IP адрес любого узла OpenSearch
, рекомендуется указывать узел с ролью data
и атрибутом routing_mode: hot
. Если опустить параметр user.pass
, то утилита запросит пароль от УЗ в интерактивном режиме.
Параметры запуска утилиты
Утилита имеет следующие параметры запуска:
-c, --config
- файл конфигурации (Опциональный). По умолчанию -./default.ini
-h, --help
- вывод справки
Запуск утилиты
Для выполнения миграций нужно запустить утилиту командой:
$SM_INSTALLER/utils/python/bin/python3 $SM_INSTALLER/utils/migrations_4.1-4.2/tags_colors_migrations/main.py -c $SM_INSTALLER/utils/migrations_4.1-4.2/tags_colors_migrations/default.ini