Настройка конфигурации correlator-ng
В KUMA 4.2 представлена бета-версия correlator-ng, которая предназначена для технического ознакомления. До выхода полнофункциональной версии коррелятора API методы, алгоритмы, синтаксис условий и другие функции и характеристики могут быть изменены.
Коррелятор correlator-ng разворачивается как отдельный сервис KUMA. Его работа определяется конфигурационными файлами в формате YAML и параметрами запуска процесса. После запуска сервис устанавливает соединение с Ядром KUMA, получает конфигурацию правил и контейнеров и начинает обработку событий.
Коррелятор может быть развернут:
- на одном сервере;
- в кластере RAFT для обеспечения отказоустойчивости и масштабирования.
В этом разделе описывается структура конфигурации сервиса и назначение файлов конфигурации.
Коррелятор correlator-ng управляется через набор YAML-файлов. Ниже приводится описание каждого файла.
Конфигурационные файлы correlator-ng
Файл | Описание |
|---|---|
config.yaml | Содержит базовую информацию о сервисе, включая имя коррелятора, описание и общие параметры работы. |
correlation-rules.yaml | Содержит конфигурацию правил корреляции, включая типы правил: standard, simple, operational и periodical. |
selector-includes.yaml | Содержит вложенные фильтры, которые привязываются к правилам корреляции для их повторного использования. |
active-lists.yaml
| Содержит конфигурацию активных листов. |
context-tables.yaml | Содержит конфигурацию контекстных таблиц. |
dictionaries.yaml | Содержит статические словари для использования в селекторах и правилах корреляции. |
global-variables.yaml | Содержит глобальные переменные, доступные в правилах корреляции и селекторах. |
destinations.yaml | Содержит точки назначения событий ( |
Файлы загружаются при запуске коррелятора в следующем порядке: сначала config.yaml, затем файлы с правилами и селекторами, затем файлы с активными листами, контекстными таблицами, словарями и глобальными переменными. Файл с точками назначения загружается последним, чтобы гарантировать правильную маршрутизацию событий.
Systemd-unit и запуск коррелятора
Для запуска коррелятора как системного сервиса используется unit-файл systemd, который определяет параметры запуска, остановки и перезапуска correlator-ng.
Пример файла:
[Unit]
Description=KUMA Correlator NG
StartLimitIntervalSec=1
After=network.target
[Service]
Type=simple
Restart=always
RestartPreventExitStatus=99
TimeoutSec=0
RestartSec=5
Environment="RUST_BACKTRACE=full"
User=kuma
Group=kuma
ExecStart=/opt/kuma correlator --id <идентификатор_сервиса_коррелятора> --core https://<FQDN_Ядра_KUMA>:7210 --wd /opt/correlator-ng --api.port <API-порт_коррелятора>
LimitFSIZE=infinity
LimitCPU=infinity
LimitAS=infinity
LimitNOFILE=500000
LimitNPROC=64000
LimitMEMLOCK=infinity
TasksMax=infinity
TasksAccounting=false
[Install]
WantedBy=multi-user.target
Журналирование correlator-ng
Уровень журналирования correlator-ng задается параметром запуска --logger.filter. Параметр принимает те же значения уровней журналирования, что и стандартная переменная RUST_LOG: trace, debug, info, warn, error.
Пример:
--logger.filter debug
Дополнительно можно использовать переменную окружения RUST_BACKTRACE. При значении full включается расширенное отображение информации об ошибках.