2016-05-04 11 views
0

Ich habe eine Datei mit dem Namen „Job Code.txt“Erstellen neuer Bereich mit logstash

job_id=0001,description=Ship data from server to elknode1,result=OK 
job_id=0002,description=Ship data from server to elknode2,result=Error: Msg... 
job_id=0003,description=Ship data from server to elknode3,result=OK 
job_id=0004,description=Ship data from server to elknode4,result=OK 

Hier ist der Filter ein Teil meiner Conf-Datei, aber es funktioniert nicht. Wie kann ich neue Feld erzeugt, das heißt jobID, Beschreibung, zur Folge haben, wie in Kibana

filter{ 
grok{ match => {"message" => ["JobID: %{NOTSPACE:job_id}","description: %{NOTSPACE:description}","result: %{NOTSPACE:message}"]} 
add_field => { 
"JobID" => "%{job_id}" 
"Description" => "%{description}" 
"Message" => "%{message}" 
} 
} 
if [job_id] == "0001" { 
aggregate { 
task_id => "%{job_id}" 
code => "map['time_elasped']=0" 
map_action => "create" 
} 
} 
if [job_id] == "0003" { 
aggregate { 
task_id => "%{job_id}" 
code => "map['time_elasped']=0" 
map_action => "update" 
} 
} 
if [job_id] == "0002" { 
aggregate { 
task_id => "%{job_id}" 
code => "map['time_elasped']=0" 
map_action => "update" 
} 
} 

Antwort

0

ich gesehen zu werden wissen, dass dies ein paar Tage alt ist, vielleicht benötigen Sie noch eine Antwort. Ändern Sie Ihre Grok-Anweisung zu:

grok { 
     match => { "message" => "job_id=%{DATA:job_id},description=%{DATA:description},result=%{GREEDYDATA:message}" } 
} 

Sie werden nicht die Option add_field benötigen, grok wird sie für Sie erstellen. Die Option add_field dient zum Hinzufügen beliebiger Felder. Überprüfen Sie das Muster bei https://grokdebug.herokuapp.com

Auch, wenn es andere Nachrichten, die Sie übereinstimmen möchten, ich glaube nicht, die Aggregat-Anweisungen, die Sie haben, tun, was Sie wollen.