2016-11-11 46 views
0

我有tab分隔的字符串,我想使用grok插件提取每个字段。 该标签分割的字符串是像Logstash grok与特定字段不匹配

http://www.allaboutpc.co.kr 2016110913 d6123c6caa12f08852c82b876bdd3ceceb166d5e 0 0 1 0 /Event/QuizChoice.asp?IdxEvent=3141

我想获得每个字段URL日期时间散列值COUNT1COUNT2共3个记录count4path

我用%{DATA:散列值}的第3场提取散列值但logstash没有打印散列值

这里是我的conf文件

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" 
} 

回答

0

你神交工作得很好,你只需要删除% {NUMBER:count1}%{% {URIPATHPARAM:path}

'message' => "%{DATA:url} %{NUMBER:datetime2} %{DATA:hashvalue} % {NUMBER:count1} %{NUMBER:count2} %{NUMBER:count3} %{NUMBER:count4} %  {URIPATHPARAM:path}' 
                   ^                  ^
                    |                   | 
                   here                 and here 
之间的空间