Установка 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 Managerhelp– справка о любой команде
Если указать команду 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– блок настроек авторизации OpenSearchbasic- блок основных настроек сервиса Smart Beat Managerlogs– блок настроек логов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- включение использования сертификатов для подключения к OpenSearchauthorization.reserveLogin- логин для авторизации в OpenSearchauthorization.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, иначе – falsesmartBeatTLSLevel– проверка сертификата агента, где 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, guidapps– список конфигурационных файлов, которые нужно отправить агенту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 Dashboardssmart_monitor.smartbeatsmanagement.uri.login- логин пользователяsmart_monitor.smartbeatsmanagement.password- пароль пользователяsmart_monitor.smartbeatsmanagement.ssl.key- путь до ключа OpenSearch Dashboardssmart_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