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

Установка Smart Beat Manager

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

Smart Beat может работать с любой версией ElasticBeat, но если Вы планируете отправлять данные напрямую в OpenSearch, то версия ElasticBeat должна быть 7.12.1 (или 7.10.2 - более стабильная версия). Если планируется использовать Logstash, то версия ElasticBeat не имеет значения. Подробнее на официальном сайте.

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

  • ${HOME_SBM} - путь установки SmartBeat Manager, обычно это /app/smartBeatManager/

Установка и запуск Smart Beat Manager

Для установки Smart Beat Manager необходимо открыть терминал под пользователем root, для выполнения команд. Создайте пустую директорию и поместите бинарный файл smartBeatManager в эту директорию. Например, в директорию /app/smartBeatManager.

mkdir /app/smartBeatManager
cd /app/smartBeatManager
unzip SmartBeatManager.zip

Установка разрешений для исполняемого файла:

cd /app/smartBeatManager
chmod +x ./smartBeatManager

Запуск сервиса Smart Beat Manager

Smart Beat Manager поддерживает команды для работы с сервисом:

  • install – устанавливает сервис
  • install -u string | --user <string> - устанавливает сервис под определённым пользователем
  • delete – удаляет сервис
  • version - показывает версию SmartBeat Manager
  • help – справка о любой команде

Если указать команду install без флага, сервис создаться под пользователем sbm, если такого пользователя не существует, Smart Beat Manager выведет ошибку.

Создание сервиса без использования флага --user

Если вы зашли в терминал под пользователем root:

cd /app/smartBeatManager
useradd sbm
./smartBeatManager install
chown -Rf sbm:sbm /app/smartBeatManager/

Если вы зашли под другим пользователем:

cd /app/smartBeatManager
sudo useradd sbm
sudo ./smartBeatManager install
chown -Rf sbm:sbm /app/smartBeatManager/

Примеры создания сервиса с использованием флага --user

Если вы зашли в терминал под пользователем root:

cd /app/smartBeatManager
./smartBeatManager install --user sbm
chown -Rf sbm:sbm /app/smartBeatManager/

Если вы зашли под другим пользователем:

cd /app/smartBeatManager
sudo ./smartBeatManager install --user sbm
chown -Rf sbm:sbm /app/smartBeatManager/

Если используется SELinux, настройте права на исполняемый файл:

sudo chcon -Rv -u system_u -r object_r -t bin_t /app/smartBeatManager/smartBeatManager-2.3.1.1
Обратите внимание!

Версия Smart Beat Manager может отличаться, соответственно файл может называться иначе. Также, обращайте внимание на владельца группы после изменений в рабочей директории, поскольку сервис запускается пользователем sbm.

После того как сервис Smart Beat Manager был успешно установлен можно запускать сервис. Пример запуска сервиса Smart Beat Manager:

systemctl start smartBeatManager.service

Для того чтобы узнать работает ли сервис, необходимо выполнить команду:

systemctl status smartBeatManager.service

Все необходимые директории и файлы для корректной работы Smart Beat Manager создаст при запуске. Пример стандартной настройки конфигурационного файла smartBeatManager.yaml:

authorization:
reserveLogin: L@g&n
reservePassword: P&$$W07)
opensearch:
host: https://127.0.0.1:9200
ca_key: elastic-key.pem
ssl_enabled: false
ca_cert: elastic-cert.pem
basic:
appPath: ./apps
binariesPath: ./binaries
appsUnpackPath: ./config/apps
binariesUnpackPath: ./bin
portForSmartBeat: '7767'
portForVisual: '7769'
bindAddress: 127.0.0.1
enableSnapshot: false
updateSnapshot: 10m
enableTimeout: false
deletionTimeout: 24h
logs:
logPath: ./logs
logMaxAge: 7d
logRotate: 24h
ssl:
enabled: true
smartBeatTLSLevel: 0
certPath: cert.pem
keyPath: key.pem

Описание параметров приведено ниже:

  • authorization – блок настроек авторизации OpenSearch
  • basic - блок основных настроек сервиса Smart Beat Manager
  • logs – блок настроек логов
  • ssl – блок настроек подключения агентов

Настройка Smart Beat Manager

Остановите службу smartBeatManager если она запущена:

systemctl stop smartBeatManager

При первом запуске сертификат и ключ Smart Beat Manager генерируются из самоподписанного ЦС. Удалите сгенерированные сертификаты и ключи.

Если используется свой самоподписанный сертификат и ключ, то его нужно положить в директорию ${HOME_SBM}/etc/ssl/ чтобы потом SmartBeat Manager при старте сам сгенерировал свои сертификат и закрытый ключ на основе существующего ЦС (который создавали при установке первого узла OpenSearch). Например, если SmartBeatManager работает рядом с OpenSearch Dashboards, то возьмите сертификат и ключ из домашней директории OpenSearch Dashboards (если разворачиваете по руководству - /app/opensearch-dashboards/config).

sudo rm /app/smartBeatManager/etc/ssl/*
sudo cp /app/opensearch-dashboards/config/ca-cert.pem /app/smartBeatManager/etc/ssl/
sudo cp /app/opensearch-dashboards/config/ca-key.pem /app/smartBeatManager/etc/ssl/

Если требуется использовать готовые сертификаты, то скопируйте сертификат ЦС, сертификат и закрытый ключ SmartBeat Manager в директорию ${HOME_SBM}/etc/ssl/. Также требуется настроить следующие параметры:

  • authorization.opensearch.ca_cert - сертификат ЦС, сертификат должен находиться в директории ${HOME_SBM}/etc/ssl/
  • authorization.opensearch.ca_key - закрытый ключ ЦС, заполняется в случае использования самоподписанных сертификатов, чтобы SmartBeat Manager сам сгенерировал свои сертификат и закрытый ключ, ключ должен находиться в директории ${HOME_SBM}/etc/ssl/
  • ssl.certPath - сертификат SmartBeat Manager, сертификат должен находиться в директории ${HOME_SBM}/etc/ssl/
  • ssl.keyPath - закрытый ключ SmartBeat Manager, ключ должен находиться в директории ${HOME_SBM}/etc/ssl/

Затем требуется поменять права на всю домашнюю директорию Smart Beat Manager:

sudo chown -Rf sbm:sbm /app/smartBeatManager/

Для настройки управления Smart Beat Manager с помощью OpenSearch Dashboards помимо настроек на стороне OpenSearch Dashboards (приведены в конце статьи), требуется заполнить следующие поля:

  • authorization.opensearch.host - адрес подключения к OpenSearch с ролью master, требуется указать HTTPS протокол и номер порта подключения
  • authorization.opensearch.ssl_enabled - включение использования сертификатов для подключения к OpenSearch
  • authorization.reserveLogin - логин для авторизации в OpenSearch
  • authorization.reservePassword - пароль пользователя для авторизации OpenSearch
осторожно

Если требуется скрыть пароль из файла конфигурации Smart Beat Manager, то параметры authorization.reserveLogin и authorization.reservePassword можно не задавать в файле конфигурации, а указать через переменные окружения: SM_SBM_USERNAME и SM_SBM_PASSWORD.

Значения из переменных окружения переопределяют параметры заданные в файле конфигурации. Чтобы передать переменные окружения при старте сервиса, нужно в файле /etc/systemd/system/smartBeatManager.service задать параметр EnvironmentFile в который прописать путь к файлу с переменными. Доступ к файлу с переменными требуется максимально ограничить так, чтобы его могли прочитать только пользователь root и пользователь, от имени которого будет запускаться сервис.

Пример файла /etc/systemd/system/smartBeatManager.service:

[Unit]
Description=SmartBeatManager

[Service]
User=sbm
WorkingDirectory=/app/smartBeatManager
ExecStart=/app/smartBeatManager/smartBeatManager
Restart=always
EnvironmentFile=/home/sbm/envvar

[Install]
WantedBy=multi-user.target

Пример файла /home/sbm/envvar:

SM_SBM_USERNAME=admin
SM_SBM_PASSWORD=VeryStrongPassword

Если в системе есть SELinux, то для файла, указанного в EnvironmentFile, нужно настроить разрешения, иначе сервис не запустится. Разрешения можно задать командой chcon.

sudo chcon -Rv -u system_u -r object_r -t bin_t /home/sbm/envvar

Для того чтобы агенты подключались к Smart Beat Manager, необходимо изменить конфигурационный файл smartBeatManager.yml, который находится в директории etc. Необходимо указать параметры:

  • basic.portForSmartBeat – порт по которому будут подключаться агенты
  • ssl – тип соединения Smart Beat Manager с агентами. Чтобы использовать https использование, необходимо поставить значение - true, иначе – false
  • smartBeatTLSLevel – проверка сертификата агента, где 0 – это минимальная проверка, а 4 – максимальная:
    • 0 – сертификат клиента не запрашивается и не требуется
    • 1 – будет запрошен сертификат агента, но он не требуется и не будет проверен
    • 2 – требуется сертификат агента, но допустим любой действующий сертификат агента. Он не будет проверен по сертификату ЦС
    • 3 – сертификат агента не будет запрошен, но если он присутствует, он будет проверен по сертификату ЦС
    • 4 – требуется сертификат агента, который проверен на соответствие сертификату
  • ssl.certPath – путь к сертификату сервера
  • ssl.keyPath – путь к ключу сертификата сервера
  • authorization.opensearch.ca_cert – путь к ранее импортированному сертификату ЦС
  • authorization.opensearch.ca_key – путь к ранее импортированному закрытому ключу ЦС, не обязателен

Все файлы, связанные с сертификатами, обычно находятся в рабочей директории Smart Beat Manager в папке ./etc/ssl.

Пример заполнения параметров для соединения Smart Beat Manager с агентами

authorization:
reserveLogin: L@g&n
reservePassword: P&$$W07)
opensearch:
host: https://127.0.0.1:9200
ca_key: ca-key.pem
ssl_enabled: true
ca_cert: ca-cert.pem
basic:
appPath: ./apps
binariesPath: ./binaries
appsUnpackPath: ./config/apps
binariesUnpackPath: ./bin
portForSmartBeat: '7767'
portForVisual: '7769'
bindAddress: 127.0.0.1
enableSnapshot: false
updateSnapshot: 10m
enableTimeout: false
deletionTimeout: 24h
logs:
logPath: ./logs
logMaxAge: 7d
logRotate: 24h
ssl:
enabled: true
smartBeatTLSLevel: 0
certPath: cert.pem
keyPath: key.pem

Отправка конфигурационных и binaries-файлов агентами

Настройка smartBeatManager.yml

Для того чтобы Smart Beat Manager знал какие конфигурационные и binaries файлы можно отправлять агентам, нужно указать следующие параметры в конфигурационном файле smartBeatManager.yml, который находится в директории etc:

  • basic.appPath – путь к директории, в которой лежат все доступные конфигурационные файлы
  • basic.binariesPath – путь к директории, в которой лежат все доступные binaries файлы

Стандартное расположение этих директорий находятся в рабочей директории Smart Beat Manager, которые называются apps, binaries. Пример заполнения параметров конфигурационного файла smartBeatManager.yml для отправки конфигурационных и binaries файлов:

appPath: ./apps
binariesPath: ./binaries

Также в smartBeatManager.yml необходимо указать пути распаковки конфигурационных и binaries файлов для агентов:

  • basic.appsUnpackPath – путь куда агент будет распаковывать архив с конфигурационными файлами
  • basic.binariesUnpackPath – путь куда агент будет распаковывать архив с binaries файлами

Пример заполнения выше указанных параметров:

appsUnpackPath: ./config/apps
binariesUnpackPath: ./bin

Настройка serverclasses.yml

Для отправки конфигурационных и binaries файлов также необходимо настроить serverclasses.yml, который находится в директории etc. Это файл может содержать несколько групп настроек для агентов. Каждая группа должна содержать следующие параметры:

  • name – название группы
  • filters – фильтры для распознавания агентов, если есть совпадение, то отнести все найденные агенты к этой группе, принимает значения агента – ip, guid
  • apps – список конфигурационных файлов, которые нужно отправить агенту
  • binaries – список binaries-файлов, которые нужно отправить агенту

Пример настройки serverclasses.yml:

groups:
- name: linux_test
filters:
- 192.168.1.1
- 192.168.32.3
apps:
- filebeat_nginx
- winlogbeat_system
- scriptbeat_python
binaries:
- filebeat-7.10.1-linux-x86_64.tar.gz
- winlogbeat-7.10.0-linux-x86_64.tar.gz
- name: windows_test
filters:
- 192.168.22.101
- 78d17a171-a3c4-4e27-9c20-bc7005db068e
- 128.0.0.5
apps:
- filebeat_logs_system
binaries:
- filebeat-7.10.1-linux-x86_64.tar.gz

Настройка apps.yml

Конфигурационный файл apps.yml, который находится в папке etc, нужен для настройки пути распаковки на агентах конфигурационных файлов. Этот файл имеет список параметров:

  • appname – название конфигурационного файла
  • path – путь распаковки файла

Пример настройки apps.yml:

apps:
- appname: scripts_exchange
path: ./bin/scriptbeat-1.0.0-windows-x86_64/scripts
- appname: scripts_activedirectory
path: ./bin/scriptbeat-1.0.0-windows-x86_64/scripts

Настройка подключения Smart Beat Manager к OpenSearch Dashboards

Настроим подключение OpenSearch Dashboards к SmartBeat Manager. Откройте конфигурационный файл opensearch_dashboards.yml с помощью консольного редактора vi (или любого другого):

sudo vi /app/opensearch-dashboards/config/opensearch_dashboards.yml

Перейдите в раздел Smart Beat Manager. Удалите символ "#" в начале строк и лишний пробел. Пример настройки выглядит следующим образом, где:

  • smart_monitor.smartbeatsmanagement.uri - строка подключения к OpenSearch Dashboards
  • smart_monitor.smartbeatsmanagement.uri.login - логин пользователя
  • smart_monitor.smartbeatsmanagement.password - пароль пользователя
  • smart_monitor.smartbeatsmanagement.ssl.key - путь до ключа OpenSearch Dashboards
  • smart_monitor.smartbeatsmanagement.ssl.certificate - путь до сертификата OpenSearch Dashboards
smart_monitor.smartbeatsmanagement.uri: 'https://127.0.0.1:7769'
smart_monitor.smartbeatsmanagement.login: admin
smart_monitor.smartbeatsmanagement.password: P@ssWoRdElastic
smart_monitor.smartbeatsmanagement.ssl.key: /app/opensearch-dashboards/config/node-key.pem
smart_monitor.smartbeatsmanagement.ssl.certificate: /app/opensearch-dashboards/config/node-cert.pem

Сохраните изменения и перезапустите службу OpenSearch-Dashboards:

sudo systemctl restart opensearch-dashboards.service