2015-02-11 47 views
0

所以我现在写了几个正在工作的日志模式。现在的事情是,我将这些多个日志以多种模式存储在一个文件中。 logstash如何知道日志中哪些行需要使用哪种模式? (我正在使用grok进行过滤)如果你们会超级友善,你能否给我链接到文档,因为我无法找到任何关于此的信息:/一个日志中的多个模式

回答

5

您可以使用多种模式你神交过滤器,

grok { 
    match => ["fieldname", "pattern1", "pattern2", ..., "patternN"] 
} 

,他们将为了应用,但一)它不是最好的选择性能明智和b)你可能想不同反正对待不同类型的日志,所以我建议你使用基于消息类型或标签的条件:

if [type] == "syslog" { 
    grok { 
    match => ["message", "your syslog pattern"] 
    } 
} 

在输入插件中设置类型。

当前发布的Logstash版本的文档为http://logstash.net/docs/1.4.2/。它可能没有具体解决你的问题,但可以推断。

0

首先写的最具体的神交,并使用此语法:

grok { 
    match => { 
     "message" => [ 
     #Most specific grok: 
     "%{TIMESTAMP_ISO8601:temp_date}%{SPACE}%{LOGLEVEL:log_level}%{UUID:user_id}", 
     #Less specific: 
     "%{TIMESTAMP_ISO8601:temp_date}%{SPACE}%{GREEDYDATA:log_message}" 
    ] 
    } 
}