Установка Smart Monitor Master Node и Smart Monitor Data Storage
Условные обозначения:
- SM_INSTALLER- директория, куда разархивируется установочный пакет- Smart Monitor
- USER- пользователь системы с правами администратора, обычно это- admin
Общие сведения
Разархивируйте установочный пакет в директорию, например, /app/distr и укажите разархивированную директорию в качестве переменной:
tar xzf smart-monitor-installer-4.2-full.tar.gz -C /app/distr/
SM_INSTALLER=/app/distr/sm_4.2/
Для установки Smart Monitor Master Node и Smart Monitor Data Storage используется один установщик. Скрипт установки требуется запускать от пользователя root, указав путь до него:
${SM_INSTALLER}/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_INSTALLER}/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, следует выполнить шаги:
- Установить первый узел кластера с ролями masterиdata
- Установить следующий узел кластера с ролью masterилиdata
- Воспользоваться утилитой elasticsearch-node repurposeдля изменения ролей первого узла кластера
Подробнее об утилите elasticsearch-node repurpose можно прочитать в этой статье.
Операции по исключению роли можно выполнить вручную, подробнее в статье.
Установка основных директорий
На первом шаге происходит анализ системы и в случае уже имеющегося установленного и запущенного экземпляра OpenSearch или ElasticSearch - может выдать предупреждение:
================================================================================
SMART MONITOR INSTALL SCRIPT - OPENSEARCH
================================================================================
Current working directory: /app/distr/sm_4.2/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]:
После ввода данных требуется подтвердить правильность их ввода.
Формирование конфигурации
На данном этапе никаких действий со стороны администратора не требуются. Этап условно разделяется на два пункта:
- Подготовка временных директорий, выполнение проверок, подготовка шаблонов
- Формирование конфигурационных файлов из заданных параметров
Создание сертификатов
На данному этапе не требуется никаких действий со стороны администратора, производится создание закрытых ключей и сертификатов из заданных параметров.
Распаковка архива и изменение конфигурационных файлов
На данном этапе не требуется никаких действий со стороны администратора, производится извлечение архива с OpenSearch, изменение конфигурационных файлов извлечённых из архива, подготовительные процессы перед изменениями системы.
Все операции до этого момента выполнялись строго внутри директории установщика и не влияют на операционную систему, просмотреть готовый к установке набор файлов вы можете в директории staging.
Для этого у администратора будет спрошено разрешение на продолжение установки:
!!! AT THIS POINT WE START TO MAKE CHANGES IN OPERATING SYSTEM !!!
Do you want to continue? [y/N]:
Подтвердите изменения для продолжения установки нажатием клавиши y и затем Enter.
Установка
На данном этапе не требуется никаких действий со стороны администратора. Здесь происходит несколько действий:
- Создание групп и пользователей
- Создание директорий
- Копирование файлов и конфигураций
- Изменение прав доступа к файлам и директориям
- Применение контекста безопасности SELinux
Запуск и проверка
На данном этапе не требуется никаких действий со стороны администратора и производятся следующие действия:
- Запуск служб opensearchиsme-re
- Проверка работоспособности служб
- Применение 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 и пароль, который вводили при установке:
