2016-09-21 58 views
0

我有一堆日誌,我該如何處理logstash。在每個條目之間,都有一條只有雙引號的惱人的行,我的模式無法解析並導致grokparsefailure。忽略/刪除它的最好方法是什麼?如何刪除帶引號的行

我輸入

2016-09-18 00:00:02,013 UTC, idf="639b26a731284b43beac8b26f829bcab", message="24308 * thread http-nio-8443-exec-4 
24308 > host: localhost:8443 
24308 > user-agent: curl/7.40.0 
" 
2016-09-18 00:02:35,555 UTC, idf="7d65da6966ec4c26a685b04ec7bfd851", message="24309 * thread http-nio-8443-exec-1 
24309 > host: example.com 
24309 > user-agent: Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/) 
24309 > x-forwarded-for: 69.162.124.236 
" 
2016-09-18 00:07:35,591 UTC, idf="8998b9c5f2de414182ce3143b4ec39af", message="24310 * thread http-nio-8443-exec-10 
24310 > HEAD https://example.com/status 

我試過在開頭添加另一個神交過濾,然後除去場

grok { 
    match => { "message" => "(?<onlyquote>\")"} 
    remove_field => [ "onlyquote" ] 
    } 

而且GSUB

mutate { 
    gsub => [ "message" , "\" \n" , "" ] 
    } 

但這兩種方法導致在更多的失敗。任何想法?

+0

是你的事件多前把它? – Fairy

+0

@Fairy是的,我加入以[\ d] +開頭的行,但不加引號。 – garci560

+0

我測試了自己替換'\ n',看起來他們根本沒有拿到。似乎逃跑被打破? – Fairy

回答

0

使用drop過濾器:

if (/^"$/) { // match line contains only " 
    drop {} 
} 

而且你grok過濾