Обновление 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>