【问题标题】:Creating new field with logstash使用 logstash 创建新字段
【发布时间】:2016-05-04 15:01:59
【问题描述】:

我有一个名为“Job Code.txt”的文件

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 文件的过滤器部分,但它不起作用。如何创建新字段,即在 kibana 中看到的 jobID、描述、结果

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

【问题讨论】:

    标签: logstash logstash-grok logstash-file


    【解决方案1】:

    我知道这已经有几天了,也许您仍然需要答案。将您的 grok 语句更改为:

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

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

    此外,除非您要匹配其他消息,否则我认为您拥有的聚合语句不会做您想做的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多