Установка Smart Monitor Data Collector
Условные обозначения:
SM_INSTALLER
- директория, куда разархивируется установочный пакетSmart Monitor
Общие сведения
Разархивируйте установочный пакет в директорию, например, /app/distr
и укажите разархивированную директорию в качестве переменной:
tar xzf smart-monitor-installer-*.tar.gz -C /app/distr/
SM_INSTALLER=/app/distr/sm_5.1/
Smart Monitor Data Collector
основан на Logstash
, по тексту дальше может использоваться как альтернативное имя.
Запускать установщик Smart Monitor Data Collector
рекомендуется от пользователя root
. Для этого выполните в терминале сервера:
${SM_INSTALLER}/logstash/install.sh
Запуск скрипта становки можно выполнить от пользовтеля logstash
с ограниченными правами (в режиме rootless
), но часть команд необходимо выполнить перед запуском скрипта и после от пользователя с повышенными привилегиями. Запустить установку без повышения привилегий можно командой:
sudo -u logstash ${SM_INSTALLER}/logstash/install.sh
Полностью выполнить обновление без root
привилегий нельзя, требуется выполнить часть операций от пользователя с повышенными привилегиями. Список операций выведет установщик на соответствующем шаге.
Если не выполнить команды перед обновлением, то возможна потеря данных.
Установщик поддерживает следующие параметры:
-c, --config <path_to_config_file_yaml>
- использовать файл конфигурации для установки-h, --help
- вывод справки
Установщик поддерживает использование файла конфигурации, все параметры в файле соответствуют вопросам и параметрам при ручной установке.
Пример конфигурационного файла ${SM_INSTALLER}/logstash/example_config_logstash.yaml
Logstash:
logstashLocation:
# User for install logstash
LS_USER: logstash
# Group for install logstash
LS_GROUP: logstash
# Home path to install directory
LS_PATH_HOME: "/app/logstash"
# Directory logstash configuration
LS_PATH_CONFIG: "/app/logstash/config"
# Directory logstash data storage
LS_PATH_DATA: "/app/data/logstash"
# Directory logstash logs storage
LS_PATH_LOGS: "/app/logs/logstash"
baseLogstashParameters:
# Name of the current node
NODE_NAME: sm-logstash
# Calculate JVM Heap for OpenSearch instance
CALCULATE_JVM_HEAP_SIZE: y
# JVM heap for logstash instanse
JVM_HEAP_SIZE: 4
openDistroSecurity:
# Using existing certificates and keys
USE_EXISTING_CERTS: y
# Using existing CA certificate and private key to generate node certificate and private key
EXISTING_CA_CERT: y
# Path to CA cert
CA_CERT_PATH: "/app/opensearch/config/ca-cert.pem"
# Path to CA key
CA_KEY_PATH: "/app/opensearch/config/ca-key.pem"
# Path to existing node certificate
EXISTING_NODE_CERT: "./certs/node-cert.pem"
# Path to existing node private key
EXISTING_NODE_PRKEY: "./certs/node-key.pem"
# CN for node certificate
CERT_NODE_NAME: sm-logstash
# County code
CERT_COUNTRY: RU
# Region
CERT_STATE: Moscow
# City
CERT_CITY: Moscow
# Name organization
CERT_ORG: SMOS Test Org
# IP or DNS names for connecting to current node
CERT_NODE_ALTNAMES: 127.0.0.1,localhost
installationProceed:
# Kill processes of logstash if they started
kill_current_instance: "y"
# Clear existed folders
clear_existed_folders: "y"
# Making changes to the operating system
continue_installation: "y"
# Disable operations where root rights are required
disable_root_operations: n
Если Smart Monitor Data Collector
используется как точка сбора метрик перед отправкой в Smart Monitor Data Storage
, мы рекомендуем использовать отдельный сервер для установки Smart Monitor Data Collector
. Для Smart Monitor Data Collector
по умолчанию используется владелец директорий и папок logstash
, а группа logstash
.
В наш установщик уже включён плагин logstash-output-opensearch
, который нужен для подключения к OpenSearch
.
Установка основных директорий
Установщик проверяет наличие запущенного сервиса logstash.service
и, если находит, то спрашивает о продолжении установки:
================================================================================
SMART MONITOR INSTALL SCRIPT - LOGSTASH
================================================================================
Current working directory: /opt/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
!!! You have running instance of Logstash. Installer support only one running instance per node.
Do you want to continue? [y/N]:
На этом изображении так же виден найденный установочный архив и версия Logstash
для установки. По умолчанию установка будет отменена, для продолжения необходимо ввести "y". При продолжении установки запущенный сервис выключается.
На первом шаге задаются основные директории установки. Мы рекомендуем все файлы, относящиеся к Smart Monitor
хранить в одной директории /app, это упростит обслуживание в дальнейшем.
Если вы делаете тестовую установку и планируете на одном сервере установить все компоненты Smart Monitor, то обязательно нужно задать для каждого компонента свои отдельные директории. Требуется ввести следующие директории:
Home directory
— директория установкиSmart Monitor Data Collector
Conf directory
— расположение конфигурационных файловData directory
— директория для хранения различных используемых при работеSmart Monitor Data Collector
файловLogs directory
— директория для хранения журналов
-- STEP 1. INSTALLATION DIRECTORIES
Logstash home directory [/app/logstash]:
Logstash conf directory [/app/logstash/config]:
Logstash data directory [/app/data/logstash]: /app/data/logstash/
Logstash logs directory [/app/logs/logstash]: /app/logs/logstash/
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]:
По завершению ввода подтвердите корректность ввода данных. Установщик проведёт анализ имеющихся директорий и если они не пустые, то снова выдаст предупреждение:
!!! You've choosed not empty directories. All files will be deleted.
Do you want to continue? [y/N]:
Если продолжить, то всё содержимое указанных директорий будет удалено без возможности восстановления!
Для продолжения установки снова требуется ввести y
и нажать клавишу Enter
.
Установка rootless
На данном этапе можно отключить исользование команд, требующих повышение привилегий до пользователя root
(rootless
режим).
-- STEP 2. DISABLE OPERATIONS WHERE ROOT RIGHTS ARE REQUIRED
Want to install SMART MONITOR without root privileges? [y/N]:
Для продолжения установки в режиме rootless
требуется ввести y
и нажать клавишу Enter
. Если хотите продолжить установку от пользователя root
- введите n
или нажмите Enter
.
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]:
Далее требуется ввести имя системного (linux) пользователя и его группу, под которым будет запущена служба Smart Monitor Data Collector. По умолчанию это logstash
, для сохранения значения по умолчанию нажмите Enter
.
После этого требуется подвердить введённых пользователя и группу, для продолжения нажмите Enter
.
Если был выбран режим rootless
, то появится уведомление со списком предварительных команд, которые требуется выполнить от имени пользовтеля с повышенными привилегиями, например, root
.
ATTENTION!
Before installing SMART MONITOR, you must run the following commands as a user with root privileges.
Change user, group and directories as needed
/bin/dnf install zip unzip openssl curl
systemctl stop logstash
groupadd --system logstash
useradd --system --no-create-home -g logstash logstash
mkdir -p /app/logstash
mkdir -p /app/logstash/config
mkdir -p /app/data/logstash
mkdir -p /app/logs/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]:
Если Вы выполнили все условия для запуска установки, то введите y
и нажмите Enter
. Если требуется сделать какие-то действия или отменить установку - нажмите Enter
.
В установщик встроено несколько проверок, если будут найден неточности, то скрипт прекратит работу самостоятельно и выведет сообщение:
You need to chown all directories, login as logstash and run the script again.
Установка параметров Logstash
На данном этапе задаём базовые параметры Logstash
, такие как:
Node name
— название текущего сервераLogstash
JVM Heap Size
— размер памяти в ГБ, выделяемой для JVMLogstash
, параметр не должен превышать объем свободной памяти на сервере. Установщик автоматически предложит половину от имеющейся оперативной памяти на сервере
-- STEP 3. BASE LOGSTASH PARAMETERS
Node name [smos-node-00]:
JVM heap size in GB [4]:
Final node name: smos-node-00
Final JVM heap size in GB: 4
Is this correct? [y/n]:
После этого подтверждаем введённые данные и продолжаем установку.
Установка параметров сертификатов
При создании закрытого ключа используются криптографический алгоритм RSA длиной 2048 бит и для создания цифрового отпечатка используется алгоритм SHA-256. Сертификаты админа и текущего сервера создаются на 1095 дней.
На этом шаге настраиваются параметры ключа и сертификата текущего сервера Smart Monitor Data Collector
. Если создавали ранее самоподписанный УЦ, то требуется скопировать закрытый ключ и сертификат этого УЦ для генерации в автоматическом режиме сертификата текущего узла.
Do you want to use your existing certificates and keys?
— Вы хотите использовать имеющиеся файлы сертификата и ключа? Вы можете указать свои собственные файлы или воспользоваться встроенным алгоритмомDo you want to use an existing CA certificate and private key to generate certificates and keys for this node?
— Если выбрать нет, то нужно будет вручную предоставить все необходимые сертификаты для работы узла. Иначе, выбрав да, остальные сертификаты будут автоматически сгенерированы на основе сертификата и ключа центра сертификации.Path to CA certificate
— путь к корневому сертификату. Сертификат должен быть одинаковым на всех компонентах Smart Monitor;Path to CA key
— путь к приватному ключу. Ключ должен быть одинаковым на всех компонентах Smart Monitor;CN for node certificate
— common name для текущего сервераCountry for node certificate
— название страны для текущего сервераState for node certificate
— название области для текущего сервераLocality for node certificate
— название города для текущего сервераOrganization for node certificate
— название организации для текущего сервераExternal IP
— внешний IP адрес текущего сервера, который будет использоваться для взаимодействия с другими компонентами. Скрипт автоматически определит внешние адреса на текущем сервере и предложит в качестве значения по умолчанию
Ниже выглядит пример с указанием уже имеющихся закрытого ключа УЦ и сертификата:
-- STEP 4. OPENDISTRO SSL/TLS SETTINGS
Do you want to use your existing certificates and keys? [Y/n]:
Do you want to use an existing CA certificate and private key to generate certificates and keys for this node? [Y/n]
Path to CA certificate [./certs/ca-cert.pem]: /app/opensearch/config/ca-cert.pem
Path to CA key [./certs/ca-key.pem]: /app/opensearch/config/ca-key.pem
CN for node certificate [smos-node-00]:
Country for node certificate [RU]:
State for node certificate [Moscow]:
Locality (city) for node certificate [Moscow]:
Organization for node certificate [SMOS Test Org]:
External IP for alt_names extension [172.16.0.22]:
Final path to CA certificate: /app/opensearch/config/ca-cert.pem
Final path to CA key: /app/opensearch/config/ca-key.pem
Final CN for node certificate: smos-node-00
Final country for node certificate: RU
Final state for node certificate: Moscow
Final locality (city) for node certificate: Moscow
Final organization for node certificate: SMOS Test Org
External IP for alt_names extension: 172.16.0.22
Is this correct? [y/n]:
Подтверждаем корректность ввода и продолжаем установку.
Формирование конфигурационных файлов
На данном этапе никаких действий со стороны администратора не требуются. Этап условно разделяется на два:
- Подготовка временных директорий, выполнение проверок, подготовка шаблонов
- Формирование конфигурационных файлов из заданных параметров
Создание сертификатов
На данному этапе не требуется никаких действий со стороны администратора, производится создание закрытого ключа и сертификата текущего сервера из заданных параметров.
Распаковка архива и изменение конфигурационных файлов
На данном этапе не требуется никаких действий со стороны администратора, производится разархивирование архива с Logstash
, изменение конфигурационных файлов извлечённых из архива, подготовительные процессы перед изменениями системы.
Начало изменений в ОС
Все операции до этого момента выполняются строго внутри директории установщика и не влияют на ОС, просмотреть готовый к установке набор файлов вы можете в директории staging
.
Для этого у администратора будет спрошено разрешение на продолжение установки:
!!! AT THIS POINT WE START TO MAKE CHANGES IN OPERATING SYSTEM !!!
Do you want to continue? [y/N]:
Подтвердите изменения для продолжения установки нажатием клавиши y
и затем Enter
.
Установка
На данном этапе не требуется никаких действий со стороны администратора. Здесь происходит несколько действий:
- создание групп и пользователей
- создание директорий
- установка Logstash
- установка плагинов
- изменение владельцев файлов и директорий, а также установка правил SELinux
Если был выбран rootless
режим установки, то часть операций выполнено не будет.
Подготовительные работы для запуска Smart Monitor Data Collector
На данном этапе не требуется никаких действий со стороны администратора, происходит включение авто-запуска сервиса logstash.service
.
Этот шаг не будет выполнен, если был выбран вариант установки в режиме rootless
.
Завершение установки
Если был выбран режим устанвоки rootless
, то будет. выведено сообщение:
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/logstasht/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
Указанные команды необходимо выполнить от пользователя с повышенными привилегиями.
По окончании установки должно появиться сообщение примера конфигурации межсетевого экрана на примере firewalld и ufw, а также сообщение об успешной установке как на изображении ниже. При любом другом виде завершения установки произошла ошибка и требуются дополнительные действия по исправлению.
================================================================================
-- In order to connect external data source it is required to open connection ports by configuring a firewall.
-- A connection port can be opened by running the following commands (port 10050 is provided as an example and should be replaced with the required one):
-- For RHEL/CentOS with firewalld
firewall-cmd --permanent --zone=public --add-port=10050/tcp
firewall-cmd --reload
-- For AstraLinux/Debian with ufw
ufw allow 10050/tcp
================================================================================
================================================================================
-- SMART MONITOR SUCCESSFULLY INSTALLED!
-- For further instructions, please refer to the documentation: https://docs.smartmonitor.ru
================================================================================
Обратите внимание, что перед запуском Smart Monitor Data Collector нужно настроить pipeline
, без них сервис будет перезагружаться.
При успешном завершении работы установщика узел развёрнут, но требует конфигурационных файлов для сбора данных (pipelines). Сервис logstash.service
автоматически запустится после перезагрузки ОС. Обратите внимание, что нужно настроить межсетевой экран для портов, на которые будут приниматься данные.
Для проверки работоспособности после добавления конфигураци pipeline
и включения сервиса logstash.service
можно в командной строке ввести:
curl -X GET http://localhost:9600?pretty
Пример вывода:
{
"host": "srv-test",
"version": "8.13.4",
"http_address": "127.0.0.1:9600",
"id": "0d6b3458-147c-4b81-b3bb-210ddafdc440",
"name": "sm-logstash",
"ephemeral_id": "bae83d99-e076-42f3-9fc8-546e06ba1591",
"status": "green",
"snapshot": false,
"pipeline": {
"workers": 4,
"batch_size": 125,
"batch_delay": 50
},
"build_date": "2023-07-18T22:17:29+00:00",
"build_sha": "375f47bd852411a88d350503847f399e8f652104",
"build_snapshot": false
}