2013-05-14 76 views
0

我正在使用Logstash来解析日志。Logstash解析不同日志的不同操作

现在我想处理与特定正则表达式匹配的日志,而不是不同的日志。

Logstash是可以实现的。

我该怎么办?

我的配置文件是:

input { 
stdin { 
    type => "stdin-type" 
    } 
} 
filter { 

    grok { 
    type => "stdin-type" 
    patterns_dir=>["./patterns"] 
    pattern => "%{PARSE_ERROR}" 
    add_tag=>"%{type1},%{type2},%{slave},ERR_SYSTEM" 
    } 
date 
{ 
replace=>["%{ts}","yyyy/MM/dd-HH:mm:ss.SSS"] 
custom_timestamp=>[%{ts}] 
} 

mutate 
{ 
    type=>"stdin-type" 
    replace => ["@message", "%{message}" ] 

} 


} 
output { 
    stdout { debug => true debug_format => "json"} 
    elasticsearch 
{ 
} 
} 

说,我不希望把这些日志中搜索弹性不匹配正则表达式。可能吗?怎么样?

+0

你要什么用原木做的,唐不匹配?放下它们或将它们输出到别的地方? – nickethier 2013-05-14 22:24:07

+0

@nickethier我想把它们放在一个项目中,然后在另一个项目中关联一些不同的标签,并将它们输出到弹性搜索以及...请向我解释这两个 – user2359303 2013-05-15 03:51:22

回答

0

是的,你可以用条件或者在你的过滤器{}部或输出{}部分做到这一点:

filter { 
    if [field] == "value" { 
     drop{} 
    } 
} 

output { 
    if [field] != "value" { 
     elasticsearch { 
       ... 
     } 
    } 
}