Windows fluentbit 3.0 GELF -> Graylog 5.2.5 host mező hiánya

Fórumok

Felraktam egy Graylog 5.2 szervert Debian 12-re, egyéb Linux-os gépek (Debian és Ubuntu, vegyes kiadások) rsyslog segítségével átküldik a syslog-ot GELF formátumban UDP-n.

Adódott hogy egy Windows 10 egyedi szoftverének logját is ide kellene átküldeni. Ehhez feltelepítettem a fluentbit 3.0-át a következő konfigurációval - log-ban nincs benne a gépnév, azt külön kell beleraknom FILTER segítségével.

parsers.conf

[PARSER]
    Name EgyediProgramLog
    Format regex
    Regex /(?<time>\d+/\d+/\d+ \d+:\d+:\d+ \+\d+:\d+),(?<message>.*)/
    Time_Key time
    Time_Format %Y/%m/%d %H:%M:%S

fluent-bit.conf

[INPUT]
    Name tail
    Tag EgyediProgram
    Path C:\[log_directory]\*.log
    Parser EgyediProgramLog
    Refresh_Interval 10

[FILTER]
    Name modify
    Match EgyediProgram
    Add hostname ${HOSTNAME}

[OUTPUT]
    Name  stdout
    Match EgyediProgram

[OUTPUT]
    Name                 syslog
    Match    EgyediProgram
    Host                 [graylog-szerver-ip]
    Port                 514
    Mode                 tcp
    Syslog_format        rfc3164
    Syslog_message_key   message
    Syslog_hostname_key  hostname

[OUTPUT]
    Name gelf
    Match EgyediProgram
    Host [graylog-szerver-ip]
    Port 12201
    Mode udp
    Compress false
    Gelf_Short_Message_Key message
    Gelf_Host_Key hostname

stdout kimenete

[0] EgyediProgram: [[1712658673.000000000, {}], {"message"=>"[log_bejegyzes]", "hostname"=>"[Windows_host_neve]"}]

Syslog üzenet megfelelően megérkezik Graylog szerver gyűjtött logjai közé, látszik a teljes üzenet, helyes Windows gépnévvel.

Ha (még Windows-on, Wireshark-al) megnézem a hálózati forgalmat, ez megy át GELF-ként: {"version":"1.1", "short_message":"[log_bejegyzes]", "host":"[Windows_host_neve]", "timestamp":1712658673.000}

Ezt nem fogadja el a Graylog szerver, server.log-ban ez szerepel: 2024-04-09T10:33:29.335+02:00 WARN  [GelfCodec] GELF message <d77d0960-f64b-11ee-812f-000c2929b7fa> (received from <[Windows_host_IP]:56029>) is missing mandatory "host" field.

Mit nézek be? Pláne hogy Linux GELF források mennek, Windows log értelmezés és átalakítás stdout szerint rendben és syslog üzenetként megfelelően át is megy. GELF-ben meg a meglévő host mező hiányára hivatkozik. Plusz infó hogy a kb harminc próbálkozásból két Windows GELF mégis átment (később vettem csak észre), de host neve helyett a Windows gép IP címe van a log-ban - valamilyen közbenső konfigurálási próba eredménye lehet.