2016-09-21 51 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过滤