Logstash grok 与特定字段不匹配
Logstash grok doesn't match for specific field
我有制表符分隔的字符串,我想使用 grok 插件提取每个字段。
制表符分隔的字符串类似于
http://www.allaboutpc.co.kr 2016110913 d6123c6caa12f08852c82b876bdd3ceceb166d5e 0 0 1 0 /Event/QuizChoice.asp?IdxEvent=3141
我想将每个字段作为 url、datetime、hashvalue、count1、count2、count3、count4 , 路径.
我使用 %{DATA:hashvalue} 作为第三个字段来提取 hashvalue 但 logstash 没有打印 hashvalue
这是我的配置文件
input {
stdin { }
file {
path => "/Users/Projects/webmastermrinput/20161021/17/*"
codec => plain
}
}
filter {
# tab to space
mutate {
gsub => ["message", "\t", " "]
}
grok {
match => {
'message' => "%{DATA:url} %{NUMBER:datetime2} %{DATA:hashvalue} % {NUMBER:count1} %{NUMBER:count2} %{NUMBER:count3} %{NUMBER:count4} % {URIPATHPARAM:path}'
}
}
}
output {
stdout { codec => rubydebug }
}
输入的 Logstash 输出:“http://www.allaboutpc.co.kr 2016110913 d6123c6caa12f08852c82b876bdd3ceceb166d5e 0 0 1 0 /Event/QuizChoice。asp?IdxEvent=3141”
{
"@timestamp" => 2016-11-11T02:26:01.828Z,
"@version" => "1",
"host" => "MacBook-Air-10.local",
"datetime" => "2016110913",
"message" => "http://www.allaboutpc.co.kr 2016110913 d6123c6caa12f08852c82b876bdd3ceceb166d5e 0 0 1 0 /Event/QuizChoice.asp?IdxEvent=3141",
"url" => "http://www.allaboutpc.co.kr"
}
你的 grok 工作得很好,你只需要删除 % {NUMBER:count1}
和 % {URIPATHPARAM:path}
中 %
和 {
之间的空格
'message' => "%{DATA:url} %{NUMBER:datetime2} %{DATA:hashvalue} % {NUMBER:count1} %{NUMBER:count2} %{NUMBER:count3} %{NUMBER:count4} % {URIPATHPARAM:path}'
^ ^
| |
here and here
我有制表符分隔的字符串,我想使用 grok 插件提取每个字段。 制表符分隔的字符串类似于
http://www.allaboutpc.co.kr 2016110913 d6123c6caa12f08852c82b876bdd3ceceb166d5e 0 0 1 0 /Event/QuizChoice.asp?IdxEvent=3141
我想将每个字段作为 url、datetime、hashvalue、count1、count2、count3、count4 , 路径.
我使用 %{DATA:hashvalue} 作为第三个字段来提取 hashvalue 但 logstash 没有打印 hashvalue
这是我的配置文件
input {
stdin { }
file {
path => "/Users/Projects/webmastermrinput/20161021/17/*"
codec => plain
}
}
filter {
# tab to space
mutate {
gsub => ["message", "\t", " "]
}
grok {
match => {
'message' => "%{DATA:url} %{NUMBER:datetime2} %{DATA:hashvalue} % {NUMBER:count1} %{NUMBER:count2} %{NUMBER:count3} %{NUMBER:count4} % {URIPATHPARAM:path}'
}
}
}
output {
stdout { codec => rubydebug }
}
输入的 Logstash 输出:“http://www.allaboutpc.co.kr 2016110913 d6123c6caa12f08852c82b876bdd3ceceb166d5e 0 0 1 0 /Event/QuizChoice。asp?IdxEvent=3141”
{
"@timestamp" => 2016-11-11T02:26:01.828Z,
"@version" => "1",
"host" => "MacBook-Air-10.local",
"datetime" => "2016110913",
"message" => "http://www.allaboutpc.co.kr 2016110913 d6123c6caa12f08852c82b876bdd3ceceb166d5e 0 0 1 0 /Event/QuizChoice.asp?IdxEvent=3141",
"url" => "http://www.allaboutpc.co.kr"
}
你的 grok 工作得很好,你只需要删除 % {NUMBER:count1}
和 % {URIPATHPARAM:path}
%
和 {
之间的空格
'message' => "%{DATA:url} %{NUMBER:datetime2} %{DATA:hashvalue} % {NUMBER:count1} %{NUMBER:count2} %{NUMBER:count3} %{NUMBER:count4} % {URIPATHPARAM:path}'
^ ^
| |
here and here