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 нужно выполнить следующие действия:
- Остановить службу Smart Beat через
systemd
- В директории
${SB_HOME}/cert/
удалить все существующие сертификаты и закрытые ключи - В эту же директорию
${SB_HOME}/cert/
перенести существующий сертификат ЦС, сертификат и закрытый ключ Smart Beat - Отредактировать при необходимости конфигурационный файл
${SB_HOME}/config/config.yaml
:ssl.cert_ca
- указать имя сертификата x509 ЦСssl.node_cert
- имя файла сертификата x509 Smart Beatssl.node_key
- имя файла закрытого ключа Smart Beatssl.enable: true
- включить SSL/TLSssl.verify: true
- включить проверку на валидность сертификата сервера Smart Beat Manager
- Запустить службу 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 можно использовать с шифрованием, но без проверки самих сертификатов, достаточно выставить следующие параметры:
ssl.node_cert
- имя файла сертификата x509 Smart Beatssl.node_key
- имя файла закрытого ключа Smart Beatssl.enable: true
- включить SSL/TLSssl.verify: false
- отключить проверку на валидность сертификата сервера Smart Beat Manager
Изменение пользователя
Для того, чтобы сменить пользователя, под которым работает Smart Beat, нужно сделать следующие действия:
- Выключить сервис Smart Beat через
systemd
- Сменить владельца директории
${SB_HOME}
и всех вложенных файлов и папок, например:chown -R $USER:$USER $SB_HOME/
- Добавить разрешение на чтение всех необходимых файлов новому пользователю Smart Beat
- Отредактировать файл
/etc/systemd/system/smartBeat.service
и исправить полеUser
на нового пользователя - Запустить сервис
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, нужно выполнить следующие действия:
- Остановить службу Smart Beat через
systemd
- Удалить файл
${SB_HOME}/config/guid.yml
- Отредактировать конфигурационный файл
${SB_HOME}/config/config.yaml
и внести изменения в параметрguid_salt
- указать необходимую "соль", рекомендуется использовать значение из токенов<IP> <MAC>
- Запустить службу 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.ip | IP-адрес агента. Используется в случае нескольких сетевых интерфейсов для выбора отправляемого в 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 |