Hallo zusammen,
für unseren ELK-Server habe ich einen Grok-Pattern für die Verarbeitung von lcsam-Meldungen erarbeitet.
Code
filter {
if [program] == "lcsam" {
grok {
match => [
'message', '%{IP:client_ip}: %{WORD:lcsam_action} \(%{WORD:lcsam_result} %{NUMBER:lcsam_score}/%{NUMBER:lcsam_warn}/%{NUMBER:lcsam_reject} %{NOTSPACE:lcsam_tests}\), From: %{DATA:lcsam_from}, To: %{DATA:lcsam_to}, Subject: %{GREEDYDATA:lcsam_subject}'
]
}
if [client_ip] {
geoip {
source => "client_ip"
}
}
mutate {
split => [
'lcsam_tests', ','
]
convert => [
# list of float fields
'lcsam_score', 'float',
'lcsam_warn', 'float',
'lcsam_reject', 'float'
]
}
}
}
Alles anzeigen
Setzt voraus, dass ein Syslog-Input existiert und die Nachricht sich im Feld "message" befindet.
Somit lassen sich die Meldungen schön filtern und aufbereiten.
Viele Grüße,
Anton