2017-04-10 1 views
1

Je suis complètement nouveau à Logstash. Je viens de commencer à travailler dessus aujourd'hui. Je n'ai pas trouvé de bons tutoriels. Donc, je poste ma requête ici.Logstash - Basic Grok Pattern ne fonctionne pas

Je dispose d'un fichier de base conf:

input { 
    file{ 
     path => "C:/software/logstash-5.3.0/logstash-5.3.0/bin/test1.txt" 
     type => "Text File" 
     start_position => "beginning" 
    } 
} 

filter { 

    grok { 
     match => [ "message", "%{WORD:File Name} %{WORD:Method Name} %{NUMBER:testing Number} %{NUMBER:testing second number}" ] 
    } 
} 

output{ 

    file { 
     path => "C:/software/logstash-5.3.0/logstash-5.3.0/bin/test_op1.txt" 
     codec => line { format => "File Name is: %{File Name} and Method Name is: %{Method Name}" 
     }  
    } 

    stdout {} 
} 

J'ai fait ce fichier en voyant quelques conf exemples dans la recherche google.

Mon fichier d'entrée contient une seule ligne: testFile testMethod 123 345

J'essaie simplement de comprendre comment fonctionne Logstash ici.

J'ai exécuté le fichier journal en utilisant le fichier conf et le fichier d'entrée ci-dessus. Il a commencé à s'exécuter avec succès. Et "testFile testMethod 123 345" a été imprimé sur la console. Et "nom de fichier est:% {nom de fichier} et le nom de la méthode est:% {Nom de la méthode} " a été imprimé dans le fichier de sortie. Attendu que la sortie attendue est: "Nom de fichier est: testFile et Nom de méthode est: testMethod"

Après avoir ajouté codec => rubydebug à la sortie du fichier de configuration, la sortie est attachée en tant qu'image. output

Pourriez-vous s'il vous plaît me suggérer où je me suis trompé. Ai-je besoin de créer un fichier de signatures ou existe-t-il un fichier de configuration par défaut pour grok?

Toute aide serait grandement appréciée.

Merci.

+0

Basé sur ce [thread de soutien élastique.co] (https://discuss.elastic.co/t/discover-field-names-with-spaces/37467/4), je découragerais l'utilisation d'espaces et de stratégies de capitalisation incohérentes dans vos noms de champs –

+0

Veuillez lancer ceci avec 'stdout {codec =>" rubydebug "}' et ajouter les résultats à votre question –

+0

Ajout des résultats sous forme d'image à la question –

Répondre

2

Identification du problème. Le problème est dû aux conventions de dénomination que j'ai utilisées dans le modèle GROK. L'utilisation d'espaces dans le modèle GROK a causé le problème.

Rectifié Motif Grok

grok { 
    match => [ "message", "%{WORD:FileName} %{WORD:MethodName} %{NUMBER:Number1} %{NUMBER:Number2}" ] 
} 

En utilisant ce modèle de GROK, mon problème est résolu. Merci pour la suggestion https://stackoverflow.com/users/5216668/will-barnwell