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

Smart Beat для Linux

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

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

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

  • $SB_HOME - домашняя директория установки Smart Beat, для Linux - /app/smartBeat/, для Windows - C:\Program Files\smartBeat\.

Установка Smart Beat

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

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

Используйте версию Smart Beat соответствующую разрядности ОС.

В установочном архиве Smart Monitor в директории $SM_INSTALLER/utils/smartBeat/ расположены исполняемые файлы агентов (может присутствовать расширение файла elf - executable linux file).

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

Установку рекомендуется производить под пользователем root. Для пользователя с ограниченными правами можно сделать предустановку.

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

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

  • install – устанавливает сервис
  • install -d <string> | --directory <string> - устанавливает сервис в определенную директорию. По умолчанию: директория исполняемого файла Smart Beat
  • install -u <string> | --user <string> - устанавливает сервис под определенным пользователем. По умолчанию: smartbeat
  • install -g <string> | --group <string> - устанавливает сервис под определенной группой. По умолчанию: smartbeat
  • install --ignore-selinux - устанавливает сервис без настройки прав на исполняемый файл (если установлен SELinux)
  • install --ignore-systemd - устанавливает сервис без создания в systemd файла smartBeat.service
  • install --add-systemd-caps - устанавливает сервис в systemd с повышенными capabilities
  • install --include-old - используется при установке совместно с флагом --add-systemd-caps и расширяет capabilities для старых ОС
  • remove – удаляет сервис
  • version - показывает версию Smart Beat
  • guid - показывает сформированный GUID агента
  • info - показывает информацию об агенте
  • config - возвращает данные конфигурации сервиса
  • set - задает параметры конфигурации сервиса
  • help – справка о любой команде
Обратите внимание!

Для команды install:

  • Если пользователя или группы ранее не было, то они будут созданы автоматически. В том числе и по умолчанию
  • Если указать существующего пользователя и группу, но пользователь не входит в эту группу, то произойдет ошибка и установка прекратится

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

Для установки Smart Beat запустите исполняемый файл с флагом install:

/app/smartBeat/smartBeat install

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

/app/smartBeat/smartBeat install --directory $DIR

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

Если недостаточно прав для изменения настроек SELinux, то можно установить флаг --ignore-selinux при установке сервиса и выполнить команду самостоятельно:

sudo chcon -Rv -u system_u -r object_r -t bin_t /app/smartBeat/smartBeat

Если недостаточно прав для настройки systemd сервиса, то можно установить флаг --ignore-systemd при установке сервиса. После установки создайте файл:

sudo touch /etc/systemd/system/smartBeat.service

Измените конфигурацию сервиса в соответствии с вашими требованиями и сохраните в созданный файл:

[Unit]
Description=SmartBeat
Wants=network-online.target
After=network.target network-online.target

[Service]
User=<SB_USER>
Group=<SB_GROUP>
WorkingDirectory=<SB_HOME>
ExecStart=<FULL_PATH_TO_EXECUTABLE_FILE_SB>
Restart=always

[Install]
WantedBy=multi-user.target

После создания сервиса требуется перечитать конфигурацию systemd и сделать службу запускаемой после перезагрузки сервера:

systemctl daemon-reload
systemctl enable smartBeat
Обратите внимание!

После окончания установки будут созданы необходимые директории и файлы конфигурации Smart Beat для возможности настройки сервиса перед его запуском.

Остальные директории и файлы создадутся после первого запуска сервиса.

Пример запуска сервиса Smart Beat, установленного в systemd:

systemctl start smartBeat.service

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

systemctl status smartBeat.service

Настройка capabilities для агента Auditbeat

При работе агента Smart Beat используется ограниченная учётная запись. Для работы AuditBeat требуются дополнительные разрешения с повышенными привилегиями.

Для решения этой проблемы при установке сервиса необходимо:

  1. Указать флаг --add-systemd-caps (при необходимости для старых OS дополнительно указать флаг --include-old)
  2. После установки сервиса в файле конфигурации изменить параметр execute_extension.set_cap_auditbeat на true

Если сервис уже установлен, то порядок действий будет следующий:

  1. Выключить сервис Smart Beat через systemd
  2. Отредактировать файл /etc/systemd/system/smartBeat.service и дополнить блок Service:
AmbientCapabilities=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_BROADCAST
AmbientCapabilities=CAP_NET_ADMIN
AmbientCapabilities=CAP_NET_RAW
AmbientCapabilities=CAP_AUDIT_READ
AmbientCapabilities=CAP_AUDIT_WRITE
AmbientCapabilities=CAP_AUDIT_CONTROL
AmbientCapabilities=CAP_SYS_PTRACE
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_NET_BROADCAST
CapabilityBoundingSet=CAP_NET_ADMIN
CapabilityBoundingSet=CAP_NET_RAW
CapabilityBoundingSet=CAP_AUDIT_READ
CapabilityBoundingSet=CAP_AUDIT_WRITE
CapabilityBoundingSet=CAP_AUDIT_CONTROL
CapabilityBoundingSet=CAP_SYS_PTRACE
SecureBits=keep-caps
  1. Для старых OS в блок Service добавить следующее:
AmbientCapabilities=CAP_SETFCAP
AmbientCapabilities=CAP_SETPCAP
CapabilityBoundingSet=CAP_SETFCAP
CapabilityBoundingSet=CAP_SETPCAP
  1. Для исполняемого файла агента Auditbeat выполнить команду:
setcap 'cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_audit_control,cap_audit_read,cap_audit_write,cap_sys_ptrace+eip' ${FULL_PATH_TO_AUDITBEAT_EXECUTABLE_FILE}
  1. После изменения сервиса требуется перечитать конфигурацию systemd:
systemctl daemon-reload
  1. Запустить службу Smart Beat через systemd

Дополнительные настройки

Использование заранее сформированных сертификатов

Для использования готовых сертификатов и закрытого ключа Smart Beat нужно выполнить следующие действия:

  1. Остановить службу Smart Beat через systemd
  2. В директории ${SB_HOME}/cert/ удалить все существующие сертификаты и закрытые ключи
  3. В эту же директорию ${SB_HOME}/cert/ перенести существующий сертификат ЦС, сертификат и закрытый ключ Smart Beat
  4. Отредактировать при необходимости конфигурационный файл ${SB_HOME}/config/config.yaml:
    1. ssl.cert_ca - указать имя сертификата x509 ЦС
    2. ssl.node_cert - имя файла сертификата x509 Smart Beat
    3. ssl.node_key - имя файла закрытого ключа Smart Beat
    4. ssl.enable: true - включить SSL/TLS
    5. ssl.verify: true - включить проверку на валидность сертификата сервера Smart Beat Manager
  5. Запустить службу Smart Beat через systemd

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

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

Для генерации сертификата можно воспользоваться утилитой, идущей в установщике: $SM_INSTALLER/utils/ssl-tls-gen/gencerts.sh.

Использование самоподписанных сертификатов

Если в конфигурации ${SB_HOME}/config/config.yaml выставить параметр ssl.enable: true, то агент при запуске будет проверять наличие файлов ssl.node_cert и ssl.node_key, при их отсутствии сгенерирует самоподписанные сертификаты по тем же путям.

Взаимодействие между Smart Beat и Smart Beat Manager можно использовать с шифрованием, но без проверки самих сертификатов, достаточно выставить следующие параметры:

  1. ssl.node_cert - имя файла сертификата x509 Smart Beat
  2. ssl.node_key - имя файла закрытого ключа Smart Beat
  3. ssl.enable: true - включить SSL/TLS
  4. ssl.verify: false - отключить проверку на валидность сертификата сервера Smart Beat Manager

Изменение пользователя

Для того, чтобы сменить пользователя, под которым работает Smart Beat, нужно сделать следующие действия:

  1. Выключить сервис Smart Beat через systemd
  2. Сменить владельца директории ${SB_HOME} и всех вложенных файлов и папок, например: chown -R $USER:$USER $SB_HOME/
  3. Добавить разрешение на чтение всех необходимых файлов новому пользователю Smart Beat
  4. Отредактировать файл /etc/systemd/system/smartBeat.service и исправить поле User на нового пользователя
  5. Запустить сервис systemd
[Unit]
Description=Smart Beat

[Service]
User=smartbeat
WorkingDirectory=/opt/smartbeat
ExecStart=/opt/smartbeat/smartBeat
Restart=always

[Install]
WantedBy=multi-user.target

Изменение GUID

GUID формируется на основе UUID диска, который смонтирован на корень файловой системы. При запуске Smart Beat высчитывает GUID и при отсутствии файла ${SB_HOME}/config/guid.yml сохраняет в него полученное значение. При существующем файле сравнивает полученное значение и значение в файле и записывает результат в лог файле.

Если сервера виртуальные были склонированы, то может возникнуть ситуация, при которой UUID будут одинаковыми, для этого следует добавить соль при генерации GUID. В конфигурационном файле ${SB_HOME}/config/config.yaml нужно добавить параметр guid_salt. На текущий момент можно добавить 2 токена, которые высчитываются для каждого сервера:

  • <IP> - подставляет IP-адрес, с которого идет обращение к серверу manager.host или берется значение из параметра agent.ip (должен быть реальным, иначе будет выбран случайно)
  • <MAC> - подставляет MAC сетевого устройства, на котором есть IP адрес, полученный выше

Для того, чтобы изменить GUID Smart Beat, нужно выполнить следующие действия:

  1. Остановить службу Smart Beat через systemd
  2. Удалить файл ${SB_HOME}/config/guid.yml
  3. Отредактировать конфигурационный файл ${SB_HOME}/config/config.yaml и внести изменения в параметр guid_salt - указать необходимую "соль", рекомендуется использовать значение из токенов <IP> <MAC>
  4. Запустить службу Smart Beat через systemd

Описание конфигурационного файла

Конфигурационный файл ${SB_HOME}/config/config.yaml состоит из следующих параметров:

ПараметрОписаниеЗначение по умолчанию
guid_saltСоль при генерации GUID для Smart Beat.<IP> <MAC>
execute_extension.set_cap_auditbeatУстановка capabilities на исполняемый файл агента Auditbeat. Не обязательный параметр.false
heartbeat.min_conditionМинимальная частота подключения Smart Beat.1m0s (1 минута)
heartbeat.multiplierМножитель минимальной частоты подключения.2
heartbeat.max_conditionМаксимальная частота подключения.1h0m0s (1 час)
manager.hostХост (IP-адрес или DNS имя) Smart Beat Manager.localhost
manager.portПорт Smart Beat Manager.7767
agent.ipIP-адрес агента. Необязательный параметр.IP-адрес сетевого интерфейса хоста, через который проходит запрос к Smart Beat Manager.
agent.tagsМассив меток агента. На стороне Smart Beat Manager пока не используется. Не обязательный параметр.[]
agent.send_addrsВключение отправки информации о сетевых интерфейсах хоста. Не обязательный параметр.true
rotation.rotation_timeЧастота ротации файла логирования.24h (24 часа)
rotation.max_ageВремя жизни файла логирования.168h (1 неделя)
rotation.max_sizeОграничение размера файла логирования.10485760 (10 Мб)
rotation.log_levelУровень логирования.info
rotation.log_pathДиректория сохранения логов../logs
ssl.verifyПроверка ssl-сертификатов при безопасном подключении к Smart Beat Manager.false
ssl.enableБезопасное подключение к Smart Beat Manager.true
ssl.cert_caПуть до ЦС сертификата../cert/ca-cert.pem
ssl.node_certПуть для генерации node сертификата../cert/node-cert.pem
ssl.node_keyПуть для генерации node ключа../cert/node-key.pem
Полезная информация

Параметр agent.ip используется в случае нескольких сетевых интерфейсов для выбора отправляемого в Smart Beat Manager ip-адреса агента. Указанный ip-адрес должен быть назначен одному из сетевых интерфейсов хоста, иначе параметр заполнится значением по умолчанию.

Полезная информация

Если параметр agent.send_addrs включен (значение true), то в Smart Beat Manager будет отправляться массив объектов addrs, где каждый объект состоит из трех полей:

  • inter - имя интерфейса
  • hwaddr - физический адрес интерфейса
  • ipv4 - назначенный интерфейсу ip-адрес.

На стороне Smart Beat Manager пока не используется.

Полезная информация

Параметр rotation.log_level может принимать значения trace, debug, info, warn, error, fatal.

Для отладки рекомендуется использовать уровень debug.