2016-05-04 2 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, но он не работает. Как может я создал новое поле, т.е. JobId, описание, результат, как видно в 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 { 
     match => { "message" => "job_id=%{DATA:job_id},description=%{DATA:description},result=%{GREEDYDATA:message}" } 
} 

Вам не потребуется опция add_field, grok создаст их для вас. Опция add_field заключается в добавлении произвольных полей. Проверьте шаблон на https://grokdebug.herokuapp.com

Кроме того, если нет других сообщений, которые вы хотите сопоставить, я не думаю, что агрегированные заявления, которые у вас есть, будут делать то, что вы хотите.