logstash无法匹配grok筛选器
我卡住了。我不明白为什么grok不能匹配logstash下的简单正则表达式。 grok作为一个独立的东西工作得很好。 对我来说唯一有效的模式是“*”其他一切都失败了logstash无法匹配grok筛选器,logstash,Logstash,我卡住了。我不明白为什么grok不能匹配logstash下的简单正则表达式。 grok作为一个独立的东西工作得很好。 对我来说唯一有效的模式是“*”其他一切都失败了 $ cat ./sample2-logstash.conf input { stdin {} } filter { grok { match => [ "message1", "foo.*" ] add_tag => [ "this_is_foo" ] t
$ cat ./sample2-logstash.conf
input {
stdin {}
}
filter {
grok {
match => [ "message1", "foo.*" ]
add_tag => [ "this_is_foo" ]
tag_on_failure => [ "STUPID_LOGSTASH" ]
}
}
output {
stdout { codec => json_lines }
}
以下是输出:
$ echo "foo" |~/bin/logstash-1.4.0/bin/logstash -f ./sample2-logstash.conf
{"message":"foo","@version":"1","@timestamp":"2014-05-07T00:32:49.915Z","host":"serega-sv","tags":["STUPID_LOGSTASH"]}
看来我没能在logstash做点什么因为香草果酱很好用:
$ cat grok.conf
program {
file "./sample.log"
match {
pattern: "foo.*"
reaction: "LINE MATCHED! %{@LINE}"
}
}
普莱恩·格罗克的产量:
$ echo "foo" > ./sample.log; grok -f grok.conf
LINE MATCHED! foo
谢谢 您的配置有错误。grok匹配字段是
消息
,而不是消息1
然后,在logstash grok中有一个示例演示如何使用grok。我想你误解了。例如,如果您的日志是
55.3.244.1 GET /index.html 15824 0.043
logstash的grok模式是
%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}
对于
%{IP:client}
,第一个参数(IP)是grok模式,第二个参数(client)是要放置此消息的字段。您的配置有错误。grok匹配字段是消息
,而不是消息1
然后,在logstash grok中有一个示例演示如何使用grok。我想你误解了。例如,如果您的日志是
55.3.244.1 GET /index.html 15824 0.043
logstash的grok模式是
%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}
对于
%{IP:client}
,第一个参数(IP)是grok pattern,第二个参数(client)是要放置此消息的字段。所有@Ben Lim说的内容。文档的下一节将展示如何将语义应用于通用正则表达式语法:
filter {
grok {
match => [ "message",
"^(?<ip>\S+) (?<verb>\S+) (?<request>\S+) (?<bytes>\S+) (?<delay>\S+)$"
]
}
}
过滤器{
格罗克{
匹配=>[“消息”,
“^(?\S+(\S+)(\S+)(\S+)(\S+)$”
]
}
}
本林说的一切。文档的下一节将展示如何将语义应用于通用正则表达式语法:
filter {
grok {
match => [ "message",
"^(?<ip>\S+) (?<verb>\S+) (?<request>\S+) (?<bytes>\S+) (?<delay>\S+)$"
]
}
}
过滤器{
格罗克{
匹配=>[“消息”,
“^(?\S+(\S+)(\S+)(\S+)(\S+)$”
]
}
}
只是想知道,如果我将“foo.*”更改为“.*”,为什么同样的东西即使在“message1”中也能正常工作?只是想知道,如果我将“foo.*”更改为“.*”,为什么同样的东西即使在“message1”中也能正常工作?