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

Установка Smart Monitor Master Node и Smart Monitor Data Storage

Общие сведения

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

  • SM_41 - директория, куда разархивируется установочный пакет Smart Monitors версии 4.1
  • USER - пользователь системы с правами администратора, обычно это admin

Разархивируйте установочный пакет в директорию, например, /app/distr и укажите разархивированную директорию в качестве переменной:

tar xzf smart-monitor-installer-4.1-full.tar.gz -C /app/distr/
SM_41=/app/distr/sm_4.1/

Для установки Smart Monitor Master Node и Smart Monitor Data Storage используется один установщик. Скрипт установки требуется запускать от пользователя root, указав путь до него:

${SM_41}/opensearch/install.sh

Вместе с Smart Monitor Master Node и Smart Monitor Data Storage устанавливается Smart Monitor Engine и его компонент Smart Monitor Engine Remote Execution (SME-RE). SME-RE используется для удалённого запуска Python и других внешних скриптов, в некоторых случаях может потребоваться хранилище для промежуточных данных, в таком случае потребуется установка пакета memcached. Для Smart Monitor Master Node, Smart Monitor Data Storage и SME-RE по умолчанию используется владелец opensearch и группа opensearch.

При разворачивании кластера Smart Monitor следует учитывать количество узлов Smart Monitor Master Node, оно должно быть нечётным, чтобы избежать проблем с голосованием (split brain issue). Smart Monitor Master Node и Smart Monitor Data Storage базируются на OpenSearch с ролью master и OpenSearch с ролью data соответственно.

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

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

Установщик поддерживает использование файла конфигурации, все параметры в файле соответствуют вопросам и параметрам при ручной установке.

Пример конфигурационного файла ${SM_41}/opensearch/example_config_opensearch.yaml
OpenSearch:
openSearchLocation:
# Use already existing directories if found (if not will use default dirs)
USE_PREVIOUS_OS_PATHS: n
# User for install
OS_USER: opensearch
# Group for install
OS_GROUP: opensearch
# Home path to install directory
OS_PATH_HOME: /app/opensearch
# Directory OpenSearch configuration
OS_PATH_CONFIG: /app/opensearch/config
# Directory OpenSearch data storage
OS_PATH_DATA: '/app/data/opensearch'
# Directory OpenSearch logs storage
OS_PATH_LOGS: /app/logs/opensearch
# Path to license SMOS file
SM_LICENSE_PATH: /root/SMOS-LICENSE.lic
# Usage memcached
SM_MEMCACHED_FLAG: n
baseOpenSearchParameters:
# Password for user 'admin'
PASSWORD_FOR_ADMIN: $2y$12$OLRmqL1CBHJDZkG0R4wxC.Ifb9bcqDMsZWO9780bW3lKw9nn95GjO
# Password of admin, use only with update script
PASSWORD_FOR_ADMIN_UNSECURED: XXX
# Flag about password of user is hash
IS_PASSWORD_HASH_FLAG: y
# Name of the current node
NODE_NAME: smos-node-00
# OpenSearch roles of the current node
NODE_ROLES_LIST: master, data, ingest
# Routing mode for current node
NODE_ROUTING_MODE: warm
# Name cluster
CLUSTER_NAME: smos-cluster
# List of cluster OpenSearch nodes with master role
DISCOVERY_SEED_HOSTS: 127.0.0.1
# Calculate JVM Heap for OpenSearch instance
CALCULATE_JVM_HEAP_SIZE: y
# JVM Heap for OpenSearch instanse
JVM_HEAP_SIZE: 4
# Should disable allocation while installing
DISABLE_ALLOCATION: false
masterNodeParameters:
# Is the cluster initialized
CLUSTER_INIT_FLAG: n
# Names of hosts with master role
MASTER_NODE_LIST: smos-node-00
openDistroSecurity:
# Using existing certificates and keys
USE_EXISTING_CERTS: n
# Using existing CA certificate and private key to generate node certificate and private key
EXISTING_CA_CERT: n
# Path to existing CA certificate
CA_CERT_PATH: autogenerated
# Path to existing CA private key
CA_KEY_PATH: autogenerated
# 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
# Path to existing admin certificate
EXISTING_ADMIN_CERT: ./certs/admin-cert.pem
# Path to existing admin private key
EXISTING_ADMIN_PRKEY: ./certs/admin-key.pem
# CN for node certificate
CERT_NODE_NAME: smos-node-00
# Country code
CERT_COUNTRY: RU
# Region
CERT_STATE: Moscow
# City
CERT_CITY: Moscow
# Name organization
CERT_ORG: SMOS Test Org
# Automatically get every available external IP for current node connection
GET_EVERY_EXTERNAL_IP: y
# IP for current node connection
CERT_NODE_IP: 127.0.0.1
installationProceed:
# Kill processes of elasticsearch and opensearch if they started
kill_current_instance: y
# Clear existed folders
clear_existed_folders: y
# Making changes to the operating system
continue_installation: y
Информация

Конфигурационный файл имеет настройки по умолчанию для установки всех компонентов Smart Monitor на одном узле.

Первичная настройка ролей

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

При создании кластера с SSL/TLS инициализация плагина Security в OpenSearch создает системные индексы. Первый узел кластера должен иметь роли master и data, чтобы обеспечить эту инициализацию.

Если изначально планировалось использовать только роль data без master, следует выполнить шаги:

  1. Установить первый узел кластера с ролями master и data
  2. Установить следующий узел кластера с ролью master или data
  3. Воспользоваться утилитой elasticsearch-node repurpose для изменения ролей первого узла кластера

Подробнее об утилите elasticsearch-node repurpose можно прочитать в этой статье.

Операции по исключению роли можно выполнить вручную, подробнее в статье.

Установка основных директорий

На первом шаге происходит анализ системы и в случае уже имеющегося установленного и запущенного экземпляра OpenSearch или ElasticSearch - может выдать предупреждение:

================================================================================
SMART MONITOR INSTALL SCRIPT - OPENSEARCH
================================================================================

Current working directory: /app/distr/sm_4.1/opensearch

Current name of install's archive: opensearch-2.13.0-linux-x64.tar.gz

Current version OpenSearch: 2.13.0

================================================================================
-- STEP 1. INSTALLATION DIRECTORIES AND LICENSE

!!! You have running instance of OpenSearch. Installer support only one running instance per node.
Do you want to continue? [y/N]:

На изображении выше так же виден найденный установочный архив и версия OpenSearch для установки. Действие по умолчанию - отмена установки, для продолжения установки надо ввести y. После этого будут остановлены запущенные экземпляры.

Информация

Если вы переустанавливаете узел, то настройки директорий и расположение лицензии установщик возьмёт из текущего инстанса.

На первом шаге задаются основные директории установки, указывается лицензия Smart Monitor и нужно ли использовать memcached. Мы рекомендуем все файлы, относящиеся к Smart Monitor, хранить в одной директории /app/, это упростит дальнейшее обслуживание.

примечание

Если вы производите тестовую установку и планируете на одном сервере установить все компоненты Smart Monitor, то обязательно нужно задать для каждого компонента свои отдельные директории.

Запрашивается на этом шаге следующий набор параметров.

ПараметрОписаниеЗначение по умолчанию
home directoryДиректория установки OpenSearch/app/opensearch
conf directoryДиректория конфигурационных файлов/app/opensearch/config
data directoryДиректория для хранения индексируемых данных/app/data
logs directoryДиректория хранения логов/app/logs
Smart Monitor license pathПолный путь к файлу лицензии Smart Monitor
Is memcached neededЕсли планируется использовать memcached, то нужно выбрать y для включения и настройки, memcached должен быть установлен до этого момента
-- STEP 1. INSTALLATION DIRECTORIES AND LICENSE

Opensearch home directory [/app/opensearch]:
Opensearch conf directory [/app/opensearch/config]:
Opensearch data directory [/app/data]:
Opensearch logs directory [/app/logs]:
Smart Monitor license path [/app/distr/opensearch/smos.lic]:
Do you want to use memcached in your Smart Monitor? [y/N]:

Final Opensearch home directory: /app/opensearch
Final Opensearch conf directory: /app/opensearch/config
Final Opensearch data directory: /app/data
Final Opensearch logs directory: /app/logs
Final Smart Monitor license path: /app/distr/opensearch/smos.lic
Is memcached needed: n
Is this correct? [y/n]:

После введённых данных скрипт запросит подтверждение корректности ввода, подтверждаем введя y и нажатием клавиши Enter. Установщик проведёт анализ имеющихся директорий и если они не пустые, то снова выдаст предупреждение:

!!! You've choosed not empty directories. All files will be deleted.
Do you want to continue? [y/N]:
ВАЖНО

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

Для продолжения установки снова требуется ввести y и нажать клавишу Enter.

Установка параметров кластера и текущего узла

На данном шаге вводятся базовые параметры для OpenSearch.

ПараметрОписание
Node nameНаименование текущего узла OpenSearch
Node roles listПеречень ролей текущего узла OpenSearch, перечисленных через запятую с пробелом, стоит обратить внимание, что в кластере обязательно должны присутствовать роли master и data (или master, data_content и data_hot), т. е. если кластер состоит из одного узла, то он должен включать эти роли
Node routing modeЕсли вы планируете использовать многоуровневое хранение данных (hot-warm-cold), можете указать здесь требуемый для данного узла уровень
  • Bind address — IP-адрес интерфейса, на котором будет принимать входящие соединения OpenSearch, по умолчанию прослушиваются все доступные сетевые интерфейсы (0.0.0.0), есть возможность указать несколько IP-адресов
  • OpenSearch cluster name — название кластера
  • Cluster discovery seed hosts — IP-адреса узлов с ролью master (если вы планируете разворачивать кластер из нескольких узлов, эта настройка должна быть одинаковой на всех узлах и указывать на внешние IP-адреса), можно указать несколько IP-адресов в кавычках через запятую, рекомендуем использовать нечётное количество нод с ролью master, иначе могут возникнуть проблемы с голосованием внутри кластера
  • JVM heap size — размер памяти в ГБ, выделенной для JVM OpenSearch, параметр не должен превышать половину свободной оперативной памяти на сервере, параметр выставляет значения -Xms и -Xmx для Java. Меньше 4Гб не рекомендуется указывать для сохранения производительности и скорости работы, также не рекомендуется выставлять больше 31Гб. Скрипт автоматически высчитывает половину имеющейся оперативной памяти и предлагает в качестве значения по умолчанию. При выходе за рамки 4-31 будет задан вопрос о подтверждении действия как на примере ниже.
-- STEP 2. BASE OPENSEARCH PARAMETERS

Node name [smos-node-00]:
Node roles list [master, data, ingest]: master, data
Node routing mode [warm]:
Bind address [0.0.0.0]:
Opensearch cluster name [smos-cluster]:
Cluster discovery seed hosts ["127.0.0.1", "[::1]"]:
JVM heap size in GB [4]: 3

Final node name: smos-node-00
Final node roles list: master, data
Final node routing mode: warm
Final bind address: [ "0.0.0.0" ]
Final Opensearch cluster name: smos-cluster
Final discovery seed hosts: [ "127.0.0.1" ]
Final JVM heap size in GB: 3
Is this correct? [y/n]:

WARNING!!! Heap size (50% of available RAM) is less than recommended minimum (4 GB).
Do you want to continue? [y/N]:

Инициализация кластера

На этом этапе задаются параметры первичной инициализации кластера OpenSearch.

  • Is cluster initialized — инициализирован ли кластер (при развёртывании первого узла необходимо ответить нет (n) для выполнения инициализации, при развёртывании всех последующих — y или просто нажать Enter)
-- STEP 3. MASTER NODE TUNING

Is cluster initialized [Y/n]: n

Is cluster initialized: n
Is this correct? [y/n]:

Установка пароля для пользователя admin

Далее предлагается ввести пароль для пользователя admin в OpenSearch. Вы можете указать хэш пароля (в конце этого шага задается вопрос является ли введенная последовательность хэшем), либо ввести другую последовательность.

-- STEP 4. SET USER PASSWORD

Enter password for user "admin":
Enter password for user "admin" again:

Password for user 'admin': $2y$12$OLRmqL1CBHJDZkG0R4wxC.Ifb9bcqDMsZWO9780bW3lKw9nn95GjO

Is it password hash: y
Is this correct? [y/n]:
Обратите внимание!

По умолчанию, если ничего не вводить, установится хэш, соответствующий паролю по умолчанию: P@ssWoRdElastic.

Создание хэша пароля можно прочитать в статье.

Установка параметров сертификатов

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

При создании закрытых ключей используются криптографический алгоритм RSA длиной 2048 бит и для создания цифрового отпечатка используется алгоритм sha256. Самоподписанный сертификат УЦ по нашему алгоритму создаётся на 3650 дней, а сертификаты админа и текущего инстанса на 1095 дней.

На этом шаге инициализируется самоподписанный сертификат Удостоверяющего Центра (УЦ) и создается сертификат текущего узла. Можно указать уже имеющиеся сертификат и закрытый ключ УЦ.

  • Do you want to use existing CA certificate — вы хотите использовать имеющиеся файлы сертификата и ключа? Вы можете указать свои собственные файлы или воспользоваться встроенным алгоритмом. Если вы используете встроенный алгоритм, ответьте нет (n) только при первой установке. Для последующих узлов следует использовать файлы из текущей конфигурационной директории (по умолчанию: /app/opensearch/config/ca-cert.pem для сертификата и /app/opensearch/config/ca-key.pem для закрытого ключа)
  • 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 5. OPENDISTRO SSL/TLS SETTINGS

Do you want to use your existing certificates and keys? [y/N]:
The selfsigned certificate will be created
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: autogenerated
Final path to CA key: autogenerated
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]:
примечание

После ввода данных требуется подтвердить правильность их ввода.

Формирование конфигурации

На данном этапе никаких действий со стороны администратора не требуются. Этап условно разделяется на два пункта:

  1. Подготовка временных директорий, выполнение проверок, подготовка шаблонов
  2. Формирование конфигурационных файлов из заданных параметров

Создание сертификатов

На данному этапе не требуется никаких действий со стороны администратора, производится создание закрытых ключей и сертификатов из заданных параметров.

Распаковка архива и изменение конфигурационных файлов

На данном этапе не требуется никаких действий со стороны администратора, производится извлечение архива с OpenSearch, изменение конфигурационных файлов извлечённых из архива, подготовительные процессы перед изменениями системы.

Все операции до этого момента выполнялись строго внутри директории установщика и не влияют на операционную систему, просмотреть готовый к установке набор файлов вы можете в директории staging.

Для этого у администратора будет спрошено разрешение на продолжение установки:

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

Подтвердите изменения для продолжения установки нажатием клавиши y и затем Enter.

Установка

На данном этапе не требуется никаких действий со стороны администратора. Здесь происходит несколько действий:

  1. Создание групп и пользователей
  2. Создание директорий
  3. Копирование файлов и конфигураций
  4. Изменение прав доступа к файлам и директориям
  5. Применение контекста безопасности SELinux

Запуск и проверка

На данном этапе не требуется никаких действий со стороны администратора и производятся следующие действия:

  1. Запуск служб opensearch и sme-re
  2. Проверка работоспособности служб
  3. Применение security index

Тюнинг кластера

На данном этапе не требуется никаких действий со стороны администратора и происходит тюнинг параметров кластера.

Завершение установки

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

================================================================================
-- Additional firewall configuration example (if needed)
-- For RHEL/CentOS with firewalld
firewall-cmd --permanent --zone=public --add-port=9200/tcp
firewall-cmd --permanent --zone=public --add-port=9300/tcp
firewall-cmd --reload
-- For AstraLinux/Debian with ufw
ufw allow 9200/tcp
ufw allow 9300/tcp
================================================================================

================================================================================
-- SMART MONITOR SUCCESSFULLY INSTALLED!
================================================================================

При успешном завершении работы установщика узел развёрнут и готов к использованию. На нём должны быть запущены и работать сервис opensearch и sme-re.

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

Сервисы будут автоматически запускаться после перезагрузки операционной системы.

Обратите внимание, что нужно настроить межсетевой экран для портов:

  • 9200/tcp – порт для обращений к OpenSearch REST API
  • 9300/tcp – порт для взаимодействия узлов кластера

Для проверки работоспособности откройте в браузере страницу https://<ip-адрес-вашего-сервера>:9200. Или можете сделать запрос из консоли сервера:

curl -k -u admin https://127.0.0.1:9200

Используйте УЗ admin и пароль, который вводили при установке:

Пример вывода страницы