Перейти к основному содержимому
Версия: 6.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/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/logstash/example_config_logstash.yaml. Формат файла YAML аналогичен конфигурационному файлу, используемому при установке.

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

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

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

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

$SM_INSTALLER/logstash/setup.sh update

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

  • 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.2/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/setup.sh update

Первый вопрос будет по отключению команд, требующих повышения привилегий до пользователя 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.2/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.2/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>