18
Benim günlükleri böyle biçimlendirilir:Logstash grok satırlı mesaj
2014-06-19 02:26:05,556 INFO ok
2014-06-19 02:27:05,556 ERROR
message:space exception
at line 85
solution:increase space
remove files
olayların 2 tipi vardır:
-log gibi birden hattında ilk
-log gibi tek satırda ikincisi
Bir satır olayını işleyebiliyorum, ancak iletiyi bir değişkende ve başka bir çözümde depolamak istediğim ikinci tür işleyemiyorum. . Yani bu benim yaptığım budur
input {
file {
path => ["logs/*"]
start_position => "beginning"
codec => multiline {
pattern => "^%{TIMESTAMP_ISO8601} "
negate => true
what => previous
}
}
}
filter {
#parsing of one line event
grok {
patterns_dir => "./patterns"
match=>["message","%{TIMESTAMP_ISO8601:timestamp} %{WORD:level} ok"]
}
#the parsing fail, so we assumed we are in multiline events, now I process them and I am stuck when I am getting to the new line.
if "_grokparsefailure" in [tags] {
grok {
patterns_dir => "./patterns"
match=>["message","%{TIMESTAMP_ISO8601:timestamp} %{WORD:level}\r\n"]
}
}
}
ve ben şu benim konsol çıkışı istiyorum:
Bu
benim yapılandırma olduğunu ben istiyorum,{
"@timestamp" => "2014-06-19 00:00:00,000"
"path" => "logs/test.log"
"level"=>"INFO"
},
{
"@timestamp" => "2014-06-19 00:00:00,000"
"path" => "logs/test.log"
"level"=>"ERROR"
"message" => "space exception at line 85"
"solution"=>"increase space remove files"
}
Somut İki ifade arasındaki tüm ifadeleri ("ileti" ve "ileti" için "çözüm", "çözüm" ve çözüm değişkeni için olayın sonu), ve ifadenin bir veya daha fazla satırda olmasının önemi yoktur.
filter
{
multiline
{
pattern => "^ "
what => "previous"
}
}
Bu boşluk ile başlayan tüm çizgi birleştirecek: Sen doğru multilines birleştirmek gerekir
: İki sorunlar var gibi önceden
Teşekkür
sadece 'mesaj denediniz: (?. *) çözüm :( *)'?.? Bilmiyorum grok içinde newline ile eşleşir veya değil - eğer '' yerine [. \ r \ n] * 'koyamazsanız. *' –
Alcanzar