Refine DHCP filter to always keep error:/warn: lines

Dropping every "[DHCPv4 " line unconditionally would also swallow a
genuine DHCP-side problem (pool exhaustion, lease timeout) if accel-ppp
ever logs one at error/warn level. Verified the refined condition against
sample lines before writing it: plain info-level DHCP still drops, RADIUS
lines are unaffected, and DHCP lines tagged error:/warn: now pass through.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
byrsapty 2026-07-23 15:57:29 +03:00
parent 071d92000c
commit 624db7510f

View file

@ -153,21 +153,25 @@
мережевий трафік, ні дисковий IO/CPU Graylog на індексацію того, що мережевий трафік, ні дисковий IO/CPU Graylog на індексацію того, що
однаково ніхто не шукає. однаково ніхто не шукає.
Додайте `filter`-transform між `format_for_graylog` і `sinks`: Додайте `filter`-transform між `format_for_graylog` і `sinks`. Умова
навмисно **не** дропає DHCP-рядки, якщо вони позначені як `error:` чи
`warn:` — щоб реальна проблема (наприклад, вичерпання DHCP-пулу чи
таймаут оренди) не загубилась разом зі звичайним шумом:
```yaml ```yaml
transforms: transforms:
format_for_graylog: format_for_graylog:
# ... як у кроці 2, без змін ... # ... як у кроці 2, без змін ...
# Прибирає DHCP-обмін (Discover/Request/Offer/Ack) - основний обсяг # Прибирає рутинний DHCP-обмін (Discover/Request/Offer/Ack), АЛЕ
# шуму, не потрібний для RADIUS/accounting-аналітики. Умова true = # залишає DHCP-рядки, позначені error:/warn: - щоб не втратити реальну
# повідомлення проходить далі; тут - "якщо НЕ містить маркер DHCPv4". # проблему (вичерпання пулу, таймаут оренди тощо) разом зі звичайним
# шумом. Умова true = повідомлення проходить далі.
drop_dhcp_noise: drop_dhcp_noise:
type: "filter" type: "filter"
inputs: inputs:
- "format_for_graylog" - "format_for_graylog"
condition: '!contains(string!(.message), "[DHCPv4 ")' condition: '!contains(string!(.message), "[DHCPv4 ") || contains(string!(.message), "error:") || contains(string!(.message), "warn:")'
sinks: sinks:
graylog_out: graylog_out: