Установка Smart Beat Manager
Начиная с версии 4.0.0 изменилась схема взаимодействия между Smart Beat и Smart Beat Manager, но у Smart Beat Manager осталась обратная совместимость со старыми агентами.
Начиная с версии 4.2.0 Обновилось API взаимодействия без сохранения обратной совместимости, версия Smart Monitor должна быть не менее 4.2.0.
Начиная с версии 4.3.0 файл снапшота clients.yml является устаревшим. Хранение данных перенесено во встраиваемую БД. При первом запуске Smart Beat Manager будет произведена миграция данных из файла clients.yml с последующим переименованием файла clients.yml в clients_old.yml.
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 Managerhelp– справка о любой команде
Если указать команду 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.
В версии Smart Beat Manager 4.3.0:
- параметр
updateSnapshotявляется устаревшим и не будет учитываться при работе - параметр
portForSmartBeatпереименован вportForBeat - параметр
smartBeatTLSLevelпереименован вTLSLevel
Пример стандартной настройки конфигурационного файла 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
portForBeat: '7767'
portForVisual: '7769'
bindAddress: 127.0.0.1
enableSnapshot: false
enableDeletion: false
timeoutDeletion: 24h
disableGroupsCache: false
badClientConnHours: 1h
logs:
logPath: ./logs
logMaxAge: 7d
logRotate: 24h
ssl:
enabled: true
TLSLevel: 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.portForBeat | Порт RestAPI для подключения агентов Smart Beat. | 7767 |
basic.portForVisual | Порт RestAPI для подключения Smart Monitor Web. | 7769 |
basic.bindAddress | На каком адресе принимать подключения. | 127.0.0.1 |
basic.enableSnapshot | Включение снапшотов для сохранения списка подключенных агентов. При работе повышается нагрузка на жёсткий диск. | false |
basic.enableDeletion | Удалять ли старые записи агентов в снапшоте. | false |
basic.timeoutDeletion | Время жизни записи об агенте в снапшоте. | 24h |
basic.disableGroupsCache | Отключение кэша групп приложений. | false |
basic.badClientConnHours | Время, после которого считается, что с клиентом нет соединения. | 1h |
basic.disableClientBatch | Отключение пакетной вставки данных по клиентам | false |
basic.clientBatchConfig.maxClients | Количество клиентов, после которых происходит запись. | 50 |
basic.clientBatchConfig.timeLimit | Лимит по времени, после которого происходит запись клиентов. | 10s |
logs.logPath | Директория логов. | ./logs |
logs.logMaxAge | Время хранения логов. | 7d |
logs.logRotate | Частота ротации логов. | 24h |
ssl.enabled | Включает SSL. | true |
ssl.TLSLevel | Уровень проверки сертификатов: 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- путь до сертификата ЦС или цепочки сертификатов в формате x509authorization.opensearch.host- адрес сервера OpenSearch начинаться должен наhttpsssl.enabled- должен быть установлен вtruessl.TLSLevel- выберите нужный режим проверки сертификатовssl.certPath- путь до файла сертификата Smart Beat Manager в формате x509ssl.keyPath- путь до файла закрытого ключа Smart Beat Manager в формате x509
Сертификаты рекомендуется сгенерировать с параметрами:
keyUsage = critical, digitalSignature, keyEnciphermentextendedKeyUsage = serverAuth, clientAuthSubject Alternative Name- указать все возможные IP и доменные имена сервера, где установлен агент
У Smart Beat Manager должен быть доступ до указанных файлов и директорий
Настройка конфигураций сбора логов для агентов Smart Beat
Для отправки конфигурационных файлов сбора данных на агенты необходимо настроить файл $SBM_HOME/etc/serverclasses.yml, который может содержать несколько групп настроек для агентов. Доступные параметры группы приведены ниже:
| Параметр | Описание |
|---|---|
name | Название группы. Обязательный параметр. |
filters | Список фильтров для подключаемых агентов, могут использоваться значения полей ip, DNS имя, hostname и guid агента. Можно использовать маски в списке. Между условиями используется логическое ИЛИ, т.е. для соответствия достаточно выполнения любого из перечисленных условий. Обязательный параметр. |
apps | Список названий конфигураций (названия директорий) ElasticBeats. Обязательный параметр. |
binaries | Список архивов ElasticBeats, которые требуются для выполнения конфигураций перечисленных в apps. В одной группе нельзя указать несколько версий одного ElasticBeat. Обязательный параметр. |
systems | Список фильтров по платформе сервера, на котором запущен агент Smart Beat. В списке используется логическое ИЛИ, т.е. агент попадает хотя бы в один из фильтров. Используется как дополнительный фильтр с полем filters с логической операцией И. |
excludes | Список фильтров агентов для исключения из группы по ip, DNS имя, hostname, guid. Можно использовать маски в списке. Между условиями используется логическое ИЛИ, т.е. для соответствия достаточно выполнения любого из перечисленных условий. Используется как дополнительный фильтр с полем filters с логической операцией И-НЕ. |
В версии Smart Beat Manager 4.3.0 для приложений, созданных через интерфейс управления Smart Beat, будет храниться файл с информацией о свойствах приложения, в том числе и о типе агента ElasticBeat.
Для старых приложений, созданных до версии 4.3.0, и не имеющих файла с информацией о свойствах приложения сохранена обратная совместимость, то есть шаблон имени будет соответствовать <elasticbeat_name>_<apps_name>, где <elasticbeat_name> - название ElasticBeat в нижнем регистре, <apps_name> - название приложения.
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