Hej,
Chcę użyć logstash do oddzielenia odpowiednich logów przez stałą wartość występującą w tych logach (WID2), a następnie podzielić log na kawałki po separatorze ("|") i umieścić go w pliku csv z nagłówkami. Logi, których szukam, są rozpoznawane przez stałą (WID2). Zauważyłem też, że komunikat wyciągnięty przez GREEDYDATA zostaje ucięty po około 85 znakach
Przykładowy log:
2022-01-02 10:32:30,0000001 | WID2 | 3313141414 | Request | STEP_1 | OK | Message
I chcę z tych logów utworzyć plik csv z nagłówkami: TIMESTAMP, VALUE, MESSAGE_TYPE, STEP, STATUS, MESSAGE. Nie chcę zapisywać stałej wartości (WID2) w pliku csv, służy ona tylko do odnalezienia m.in. moich logów.
Napisałem to, ale nie działa:
file {
path => ["path"]
start_position => "beginning"
sincedb_path => "path"
}
}
filter {
grok {
match => {
"message" => "%{GREEDYDATA:SYSLOGMESSAGE}"
}
}
if ([SYSLOGMESSAGE] !~ "WID2"){
drop {}
}
if([SYSLOGMESSAGE] =~ 'WID2") {
csv {
separator => "|"
columns => ["TIMESTAMP", "VALUE", "MESSAGE_TYPE", "STEP", "STATUS", "MESSAGE"]
}
}
}
output{
file {
path => ["path.csv"]
}
}