Фильтрация событий на коллекторах и Normalize-коллектор
Фильтрация событий на коллекторах
Начиная с версии 4.6, фильтрацию событий на коллекторах можно включать и отключать. Это позволяет оптимизировать и перераспределять нагрузку между узлами системы.
Если фильтрация на коллекторе включена, события обрабатываются непосредственно на этом коллекторе. Если выключена, события передаются в специальный фильтрующий сервис (Normalize-коллектор), который берет на себя задачу фильтрации.
Поток событий в интеграционной шине
Фильтрация включена на коллекторе
Когда фильтрация включена, коллектор самостоятельно применяет фильтры и направляет события по двум потокам:
- EVENTS — коллектор передает события в
komrad-processor, который записывает их в базу данных. Далееkomrad-serverиспользует БД для поиска и отображения событий. - FILTERS — коллектор передает отфильтрованные события в
komrad-correlatorдля корреляции.
Фильтрация выключена на коллекторе
Когда фильтрация на коллекторе выключена, события направляются через промежуточный фильтрующий сервис:
- Коллектор отправляет события в поток UNFILTERED.
- Фильтрующий сервис (Normalize-коллектор) вычитывает события из UNFILTERED, применяет фильтры и распределяет их:
- EVENTS — далее в
komrad-processorи БД. - FILTERS — далее в
komrad-correlator.
- EVENTS — далее в
Normalize-коллектор как фильтрующий сервис
Фильтрующий сервис реализован в виде специально сконфигурированного Normalize-коллектора. Он подключается к указанным серверам NATS, вычитывает события из заданных тем (subject) и отправляет их по интеграционной шине.
Чтобы Normalize-коллектор работал как фильтрующий сервис, необходимо сконфигурировать его на подключение к интеграционной шине и чтение из потока UNFILTERED. После применения фильтров события автоматически передаются в потоки EVENTS и FILTERS.
Пример конфигурации
collector:
type: normalize
value:
sources:
- stream: UNFILTERED
subject: unfiltered.>
source:
servers:
- nats://localhost:3490
user: komrad
password: pass
user-credentials: ""
tls:
disable: false
ServerName: ""
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/client.pem
CertKey: /var/lib/echelon/komrad/certs/client-key.pem
system-pool: false
min-version: "1.3"
client-auth: require-and-verify-client-cert
tuning:
connect-timeout: 10s
max-reconnects: 1000000
max-wait: 0s
ping-interval: 2m
max-pings-outstanding: 2
publish-async-max-pending: 0
reconnect-interval: 5s
reconnect-wait: 1s
retry-on-failed-connect: false
replicas: 1
Описание параметров
| Параметр | Описание |
|---|---|
type | Тип коллектора — normalize |
sources[].stream | Имя NATS JetStream-потока для чтения событий |
sources[].subject | NATS subject для подписки (поддерживается wildcard >) |
source.servers | Список адресов серверов NATS |
source.user / password | Учетные данные для подключения к NATS |
source.tls | Настройки TLS-соединения с NATS |
source.tuning | Параметры настройки соединения (таймауты, повторные подключения, пинги) |
replicas | Количество реплик для обеспечения отказоустойчивости |
Вынос фильтрации на отдельный Normalize-коллектор полезен при высокой нагрузке, когда необходимо разгрузить коллекторы-источники и централизовать фильтрацию на выделенном узле.