2016-11-11 1 views
0

J'ai une chaîne séparée par des tabulations et je veux extraire chaque champs en utilisant grok plugin. L'onglet chaîne séparée est commeLogstash grok ne correspond pas pour un champ spécifique

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

Je voudrais obtenir chacun des champs comme url, datetime, valeur de hachage, count1, count2, count3, count4, chemin.

I utilisé % {DATA: valeur de hachage} pour le 3ème champ pour extraire valeur de hachage mais logstash n'a pas imprimer valeur de hachage

Voici mon fichier de configuration

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

de sortie Logstash pour l'entrée: "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" 
} 

Répondre

0

Votre grok fonctionne parfaitement bien, il vous suffit de supprimer les espaces entre % et { dans % {NUMBER:count1} et % {URIPATHPARAM:path}

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