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

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

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

Начиная с версии 4.0.0 изменилась схема взаимодействия между Smart Beat и Smart Beat Manager, но у Smart Beat Manager осталась обратная совместимость со старыми агентами.

Начиная с версии 4.2.0 Обновилось API взаимодействия без сохранения обратной совместимости, версия Smart Monitor должна быть не менее 4.2.0.

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

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

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

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

Подготовка к установке Smart Beat Manager

Smart Beat Manager доступен в комплекте установочного архива Smart Monitor в директории ${SM_INSTALLER}/utils/smartBeatManager. Установку требуется совершать под пользователем root. Создайте пустую директорию и поместите исполняемый файл SmartBeatManager-<version>.elf в эту директорию. Например, в директорию /app/smartBeatManager. Затем создайте пользователя под которым будет работать сервис, например, sbm:

mkdir -p /app/smartBeatManager
cd /app/smartBeatManager
cp ${SM_INSTALLER}/utils/smartBeatManager/SmartBeatManager-* /app/smartBeatManager/
chmod +x ./SmartBeatManager-*
useradd --no-create-home --system --user-group sbm
Обратите внимание!

В некоторых случаях одноименная группа для пользователя может не создаваться автоматически. Убедитесь, что пользователь состоит в одноимённой группе (в примере выше - sbm), или создайте группу вручную и добавьте в неё пользователя:

groupadd sbm
usermod -aG sbm sbm

Установка сервиса Smart Beat Manager

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

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

Если указать команду install и пользователя в системе не будет создано заранее, например, sbm, то установка завершится с ошибкой. Установщик совместим только с подсистемой инициализации и управления службами systemd.

Команда для установки сервиса в systemd может выглядеть так:

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

Если планируется использовать не стандартного пользователя, например $USER, то команда установки будет выглядеть следующим образом:

cd /app/smartBeatManager
./smartBeatManager install --user $USER
chown -Rf $USER:$USER /app/smartBeatManager/

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

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

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

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

systemctl start smartBeatManager.service

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

systemctl status smartBeatManager.service

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

Все необходимые директории и файлы для корректной работы Smart Beat Manager создаст при первом запуске. Если какого-нибудь файла или директории будет не хватать, то он создастся при следующем запуске.

Конфигурационный файл Smart Beat Manager

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

В версии Smart Beat Manager 4.2.0 был изменено имя конфигурационного файла smartBeatManager.yaml на config.yaml. Поддерживаются оба файла, но приоритетным будет считаться config.yaml.

Пример стандартной настройки конфигурационного файла config.yaml:

authorization:
opensearch:
ca_cert: ca-cert.pem
host: https://127.0.0.1:9200
basic:
appPath: ./apps
binariesPath: ./binaries
appsUnpackPath: ./config/apps
binariesUnpackPath: ./bin
portForSmartBeat: '7767'
portForVisual: '7769'
bindAddress: 127.0.0.1
enableSnapshot: false
updateSnapshot: 10m
enableDeletion: false
timeoutDeletion: 24h
disableGroupsCache: false
logs:
logPath: ./logs
logMaxAge: 7d
logRotate: 24h
ssl:
enabled: true
smartBeatTLSLevel: 0
certPath: cert.pem
keyPath: key.pem

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

ПараметрОписаниеЗначение по умолчанию
authorization.opensearch.ca_certСертификат ЦС в формате X509, используется для подключения к OpenSearch.ca-cert.pem
authorization.opensearch.hostАдрес одного из узлов сервера OpenSearch.https://127.0.0.1:9200
basic.appPathДиректория поиска конфигураций приложений (конфигураций Elastic Beats)../apps
basic.binariesPathДиректория поиска архивов Elastic Beats../binaries
basic.appsUnpackPathДиректория распаковки архивов приложений на агентах Smart Beat../config/apps
basic.binariesUnpackPathДиректория распаковки архивов Elastic Beats на агентах Smart Beat../bin
basic.portForSmartBeatПорт RestAPI для подключения агентов Smart Beat.7767
basic.portForVisualПорт RestAPI для подключения Smart Monitor Web.7769
basic.bindAddressНа каком адресе принимать подключения.127.0.0.1
basic.enableSnapshotВключение снапшотов для сохранения списка подключенных агентов. При работе повышается нагрузка на жёсткий диск.false
basic.updateSnapshotЧастота обновления снапшота.10m
basic.enableDeletionУдалять ли старые записи агентов в снапшоте.false
basic.timeoutDeletionВремя жизни записи об агенте в снапшоте.24h
basic.disableGroupsCacheОтключение кэша групп приложений.false
logs.logPathДиректория логов../logs
logs.logMaxAgeВремя хранения логов.7d
logs.logRotateЧастота ротации логов.24h
ssl.enabledВключает SSL.true
ssl.smartBeatTLSLevelУровень проверки сертификатов: 0 – сертификат клиента не запрашивается и не требуется, 1 – будет запрошен сертификат агента, но он не требуется и не будет проверен, 2 – требуется сертификат агента, но допустим любой действующий сертификат агента. Он не будет проверен по сертификату ЦС, 3 – сертификат агента не будет запрошен, но если он присутствует, он будет проверен по сертификату ЦС, 4 – требуется сертификат агента, который проверен на соответствие сертификату.0
ssl.certPathФайл сертификата в формате x509 Smart Beat Manager.cert.pem
ssl.keyPathФайл закрытого ключа в формате x509 Smart Beat Manager.key.pem

Установка своих сертификатов Smart Beat Manager

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

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

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

  • authorization.opensearch.ca_cert - путь до сертификата ЦС или цепочки сертификатов в формате x509
  • authorization.opensearch.host - адрес сервера OpenSearch начинаться должен на https
  • ssl.enabled - должен быть установлен в true
  • ssl.smartBeatTLSLevel - выберите нужный режим проверки сертификатов
  • ssl.certPath - путь до файла сертификата Smart Beat Manager в формате x509
  • ssl.keyPath - путь до файла закрытого ключа Smart Beat Manager в формате x509

Сертификаты рекомендуется сгенерировать с параметрами:

  • keyUsage = critical, digitalSignature, keyEncipherment
  • extendedKeyUsage = serverAuth, clientAuth
  • Subject Alternative Name - указать все возможные IP и доменные имена сервера, где установлен агент
Обратите внимание!

У Smart Beat Manager должен быть доступ до указанных файлов и директорий

Настройка конфигураций сбора логов для агентов Smart Beat

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

ПараметрОписание
nameНазвание группы. Обязательный параметр.
filtersСписок фильтров для подключаемых агентов, могут использоваться значения полей ip, DNS имя, hostname и guid агента. Можно использовать маски в списке. Между условиями используется логическое ИЛИ, т.е. для соответствия достаточно выполнения любого из перечисленных условий. Обязательный параметр.
appsСписок названий конфигураций (названия директорий) ElasticBeats. Шаблон имени должен соответствовать <elasticbeat_name>_<apps_name>, где <elasticbeat_name> - название ElasticBeat в нижнем регистре, <apps_name> - название приложения. Обязательный параметр.
binariesСписок архивов ElasticBeats, которые требуются для выполнения конфигураций перечисленных в apps. В одной группе нельзя указать несколько версий одного ElasticBeat. Обязательный параметр.
systemsСписок фильтров по платформе сервера, на котором запущен агент Smart Beat. В списке используется логическое ИЛИ, т.е. агент попадает хотя бы в один из фильтров. Используется как дополнительный фильтр с полем filters с логической операцией И.
excludesСписок фильтров агентов для исключения из группы по ip, DNS имя, hostname, guid. Можно использовать маски в списке. Между условиями используется логическое ИЛИ, т.е. для соответствия достаточно выполнения любого из перечисленных условий. Используется как дополнительный фильтр с полем filters с логической операцией И-НЕ.
Обратите внимание!

DNS-имя берётся от агента Smart Beat, для корректного определения должна быть PTR-запись обратной DNS-зоны на DNS-сервере.

В качестве маски в фильтрах могут быть использованы следующие символы:

  • * - знак звёздочка, заменяет собой любой символ длинной от 0 (отсутствует символ) до бесконечности
  • ? - заменяет собой любой 1 символ

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

groups:
- name: linux_test
filters:
- 192.168.1.?/24
- server-test-linux.localhost
apps:
- filebeat_nginx
- auditbeat_info_system
- execbeat_script_python
binaries:
- filebeat-7.10.1-linux-x86_64.tar.gz
- auditbeat-8.9.0-linux-x86_64.tar.gz
- execbeat-3.3.0-linux-x86_64.tar.gz
- name: windows_test
filters:
- 10.10.*.*
- 78d17a171-a3c4-4e27-9c20-bc7005db068e
- *our-site.org*
apps:
- filebeat_logs_system
- execbeat_xspider
binaries:
- filebeat-8.9.2-windows-x86_64.zip
- execbeat-3.3.0-windows-x86_64.zip

После настройки файла $SBM_HOME/etc/serverclasses.yml нужно скачать архивы binaries с официального сайта (должны быть именно архивы со скомпилированным заранее исполняемым файлом ElasticBeats) версий oss и расположить в директории $SBM_HOME/binaries/.

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

Рекомендуется использовать версии ElasticBeats той же версии, которой установлен Logstash. В версии Smart Monitor 4.2.0 используется версия Logstash 8.9.0, соответственно ElasticBeats лучше использовать версий 8.9.x.

Затем нужно создать сами приложения (директории) как были указаны $SBM_HOME/etc/serverclasses.yml в директории $SBM_HOME/apps/. Внутри каждой директории приложения все файлы и поддиректории будут отправлены агенту. Имя файла конфигурации ElasticBeats должно совпадать с именем используемого для приложения ElasticBeats.

В примере ниже есть приложения execbeat_xspider, filebeat_nginx, filebeat_logs_system и другие.

Для работы приложения execbeat_xspider используется ElasticBeat - ExecBeat, название приложения начинается на execbeat_, а внутри директории находится конфигурационный файл execbeat.yml. В этом приложении помимо конфигурационного файла для ExecBeat присутствуют дополнительные файлы, они тоже будут скопированы на агенты Smart Beat.

Для приложения auditbeat_info_system используется AuditBeat, поэтому название начинается на auditbeat_, а конфигурационный файл называется auditbeat.yml.

Содержимое конфигурационных файлов ElasticBeats заполняется в соответствии с официальной документацией соответствующего ElasticBeats.

.
├── execbeat_xspider
│   ├── execbeat.yml
│   ├── xsipder_servers.ps1
│   ├── xsipder_skud.ps1
│   └── xsipder_switches.ps1
├── filebeat_nginx
│   └── filebeat.yml
├── filebeat_logs_system
│   └── filebeat.yml
├── auditbeat_info_system
│   └── auditbeat.yml
├── execbeat_script_python
│   └── execbeat.yml
└── metricbeat_logstash
├── metricbeat.yml
└── modules.d
├── http.yml
└── logstash-xpack.yml

Ниже приведён пример конфигурации FileBeat в конфигурационном файле filebeat.yml:

filebeat.inputs:
- type: filestream
id: logstash-logs
enabled: true
paths:
- /app/logs/logstash/*.log

output.logstash:
loadbalance: false
hosts: ['server-logstash-01.com:5051', 'server-logstash-02.com:5051']
ssl.certificate: '/app/smartBeat/cert/cert.pem'
ssl.key: '/app/smartBeat/cert/key.pem'
ssl.certificate_authorities: '/app/smartBeat/cert/ca-cert.pem'

Конфигурация выше собирает логи из директории /app/logs/logstash/ с расширением файла .log. У пользователя, под которым запускается Smart Beat, должен быть доступ к файлам в этой директории.

Отправка собранных данных из примера выше идёт на несколько серверов Logstash по зашифрованному каналу SSL, сервер Logstash выбирается случайным образом и при неудачной отправке данных будет попытка отправить их на другой сервер.

Для применения конфигураций можно перезагрузить службу systemd или использовать API Smart Beat Manager:

curl -k https://<SBM_HOST>:7769/reload -u sbm

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

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

Файл apps.yml является устаревшим и в будущих версиях будет удалён.

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

  • 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 Monitor Web

Для настройки управления Smart Beat Manager и Smart Beat с помощью Smart Monitor Web, требуется настроить параметры в конфигурационном файле $OSD_HOME/config/opensearch_dashboards.yml.

Откройте файл и перейдите в раздел Smart Beat Manager и введите корректные настройки. Конфигурационный файл уже содержит преднастройки этих параметров. Пример настройки выглядит следующим образом, где:

ПараметрОписание
smart_monitor.smartbeatsmanagement.uriСтрока подключения к API Smart Beat Manager.
smart_monitor.smartbeatsmanagement.uri.loginИмя пользователя. Будет использоваться проверка аутентификации на серверах OpenSearch.
smart_monitor.smartbeatsmanagement.passwordПароль пользователя. Рекомендуется использовать хранилище Keystore вместо пароля в открытом виде.
smart_monitor.smartbeatsmanagement.ssl.keyПуть до закрытого ключа OpenSearch Dashboards в формате x509.
smart_monitor.smartbeatsmanagement.ssl.certificateПуть до сертификата OpenSearch Dashboards в формате x509.

Пример настроек приведён ниже:

smart_monitor.smartbeatsmanagement.uri: 'https://127.0.0.1:7769'
smart_monitor.smartbeatsmanagement.login: sbm
smart_monitor.smartbeatsmanagement.ssl.key: /app/opensearch-dashboards/config/node-key.pem
smart_monitor.smartbeatsmanagement.ssl.certificate: /app/opensearch-dashboards/config/node-cert.pem
Обратите внимание!

В Smart Monitor уже есть предустановленный пользователь sbm для работы через веб интерфейс c Smart Beat Manager. В приведённом примере выше не указан параметр smart_monitor.smartbeatsmanagement.password, он указан в файле Keystore. Для того, чтобы работала аутентификация нужно создать пользователя в Smart Monitor в пункте меню Навигационное меню - Параметры системы - Настройки безопасности - Внутренние пользователи.

Затем добавить пароль в Keystore на сервере Smart Monitor Web. Из консоли выполните:

sudo -u opensearch $OSD_HOME/bin/opensearch-dashboards-keystore add smart_monitor.smartbeatsmanagement.password

В Smart Monitor в Keystore есть сохранённый пароль от пользователя sbm, поэтому команду выше можно опустить если планируется использовать значения по умолчанию.

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

sudo systemctl restart opensearch-dashboards.service