Elastalert2 - правило плоской линии выходит из-под контроля
Я пытаюсь отслеживать внешнюю систему, которая отправляет пульс в мое приложение, используя elastalert2 2.2.1.
Внешняя система будет каждые 10 минут отправлять пульс на конечную точку API, и я преобразовываю этот пульс в сообщение журнала, которое отправляется в ELK.
Моя идея такова: я получаю событие журнала каждые 10 минут, поэтому каждые 25 минут должно быть найдено как минимум 2 события. Насколько я понимаю, путь с elastalert - это правило прямой линии :
cpi_heartbeat: |-
name: CPI Heartbeat missing
type: flatline
index: app-filebeat-*
threshold: 2
timeframe:
minutes: 25
filter:
- term:
logs.level: info
- term:
kubernetes.labels.app: sap-erp-adapter
- term:
logs.message: Heartbeat
alert:
- opsgenie
Я пытался заставить это работать почти весь день, но я просто не могу правильно настроить конфигурацию. Тем не менее, я могу подтвердить, что фильтры верны и соответствуют
Пример, показанный выше, будет:
- быстро обнаруживать отсутствующие сердечные сокращения и срабатывать
- будет продолжать срабатывать вечно - даже если сердцебиение вернется (где я ожидаю, что правило перестанет выдавать предупреждения)
- в конечном итоге просто перейдет в «сумасшедший режим», где он начнет сообщать об отсутствии сердцебиения каждую минуту, хотя все в порядке.
Когда я настраивал правило, я либо доходил до точки, когда оповещение никогда не срабатывало, либо когда оповещение срабатывало постоянно.
Что я здесь делаю неправильно?