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

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

Подготовка к обновлению

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

  • SM_INSTALLER - директория, куда разархивируется установочный пакет Smart Monitor
  • LS_HOME - директория установки Logstash, обычно /app/logstash
  • LS_CONFIG - директория с конфигурациями Logstash, обычно /app/logstash/config
  • LS_DATA - директория с данными Logstash, обычно /app/data/logstash

Smart Monitor Data Collector основан на Logstash, по тексту дальше может использоваться как альтернативное имя.

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

Если прекращение поступления данных критично, рекомендуется перенести текущие конфигурации pipeline на другой logstash и перевести весь сбор данных на него.

В высоконагруженных инсталляциях может быть ситуация, когда Smart Monitor Data Collector не останавливается с помощью скрипта обновления, поэтому рекомендуется остановить вручную перед обновлением:

sudo systemctl stop logstash

Создайте резервные копии директорий:

  • LS_CONFIG
  • LS_DATA
mkdir -p /app/backup/logstash/
cp -r ${LS_CONFIG} /app/backup/logstash/config_$(date +%Y%m%d)/
cp -r ${LS_DATA} /app/backup/logstash/data_$(date +%Y%m%d)/

Процесс обновления

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

  • curl
  • zip
  • unzip

Скрипт автоматического обновления позволяет автоматизировать действия при обновлении и находится по пути $SM_INSTALLER/logstash/update.sh. При вызова скрипта есть возможность указать конфигурационный файл $SM_INSTALLER/logstash/example_config_dashboards.yaml. Формат файла YAML аналогичен конфигурационному файлу при установке.

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

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

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

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

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

Если запустить скрипт повторно, то директория staging очистится.

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

$SM_INSTALLER/logstash/update.sh

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

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

Current working directory: /app/distr/sm_5.1/logstash

Current name of install's archive: logstash-oss-8.13.4-linux-x86_64.tar.gz

Current version of Logstash: 8.13.4

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

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

Final Logstash home directory: /app/logstash
Final Logstash conf directory: /app/logstash/config
Final Logstash data directory: /app/data/logstash
Final Logstash logs directory: /app/logs/logstash
Is this correct? [y/n]:

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

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

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

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

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

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

sudo -u logstash $SM_INSTALLER/logstash/update.sh

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

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

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

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

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

Final you set the non-root flag to: y

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

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

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

systemctl stop logstash
chown -R logstash:logstash /app/logstash /app/logstash/config /app/data/logstash /app/logs/logstash /app/distr/sm_5.1/logstash

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

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

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

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

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

================================================================================
ATTENTION!
After installing 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_5.1/logstash/staging/services/logstash.service /etc/systemd/system/
chown root:root /etc/systemd/system/logstash.service
chcon -Rv -u system_u -r object_r -t bin_t /app/logstash/bin
chcon -Rv -u system_u -r object_r -t bin_t /app/logstash/jdk/bin
chown -R logstash:logstash /app/logstash /app/logstash/config /app/data/logstash /app/logs/logstash
systemctl daemon-reload
systemctl enable logstash
systemctl start logstash
systemctl status logstash

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

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

Перед запуском Logstash рекомендуется проверить все конфигурации pipeline следующей командой:

sudo -u logstash $LS_HOME/bin/logstash --config.test_and_exit -f <pipeline-config>