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

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 на ОС Linux, необходимо открыть терминал под пользователем root для выполнения команд. Перед распаковкой архива, необходимо создать директорию и пользователя под которым будет работать агент:

mkdir /app/smartBeat
useradd --no-create-home --system --user-group smartbeat
Обратите внимание!

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

groupadd smartbeat
usermod -aG smartbeat smartbeat

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

cp $SM_INSTALLER/utils/smartBeat/smartBeat-linux-x64-* /app/smartBeat/smartBeat
chmod +x /app/smartBeat/smartBeat

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

/app/smartBeat/smartBeat install
chown -Rf smartbeat:smartbeat /app/smartBeat
Обратите внимание!

Структура файлов и директорий создаётся только во время запуска Smart Beat. Если какой-нибудь файл уже существует, то он не будет создан.

Для запуска Smart Beat, выполните следующую команду:

systemctl start smartBeat.service

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

systemctl status smartBeat.service

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

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

Для использования готовых сертификатов и закрытого ключа 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>
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-адрес агента. Используется в случае нескольких сетевых интерфейсов для выбора отправляемого в Smart Beat Manager ip-адреса агента. Указанный ip-адрес должен быть назначен одному из сетевых интерфейсов хоста, иначе параметр заполнится значением по умолчанию. Необязательный параметр.IP-адрес сетевого интерфейса хоста, через который проходит запрос к Smart Beat Manager.
agent.tagsМассив меток агента. На стороне Smart Beat Manager пока не используется. Не обязательный параметр.[]
agent.send_addrsВключение отправки информации о сетевых интерфейсах хоста. Если значение true, то в Smart Beat Manager будет отправляться массив объектов addrs, где каждый объект состоит из трех полей inter - имя интерфейса, hwaddr - физический адрес интерфейса, ipv4 - назначенный интерфейсу ip-адрес. На стороне Smart Beat Manager пока не используется. Не обязательный параметр.true
rotation.rotation_timeЧастота ротации файла логирования.24h (24 часа)
rotation.max_ageВремя жизни файла логирования.168h (1 неделя)
rotation.max_sizeОграничение размера файла логирования.10485760 (10 Мб)
rotation.log_levelУровень логирования. Может принимать значения trace, debug, info, warn, error, fatal. Для отладки рекомендуется использовать уровень debug.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