2016-05-04 42 views
0

我有一个名为“作业Code.txt”创建新的领域与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 

这里是我的.conf文件的过滤器的一部分,但它不工作的文件。我怎样才能创建新的领域,即作业ID,说明,导致在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" 
} 
} 

回答

0

待观察我知道这是一两天的时候,或许你仍需要一个答案。将您的grok语句更改为:

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

您不需要add_field选项,grok会为您创建它们。 add_field选项是添加任意字段。检查模式在https://grokdebug.herokuapp.com

另外,除非有其他消息,你想匹配,我不认为你的汇总语句会做你想做的。