elasticsearch 如何使用grok过滤{quot;foo";:“bar";,“bar";:“foo";}以仅获取foo字段?,elasticsearch,elastic-stack,logstash-grok,grok,elasticsearch,Elastic Stack,Logstash Grok,Grok" /> elasticsearch 如何使用grok过滤{quot;foo";:“bar";,“bar";:“foo";}以仅获取foo字段?,elasticsearch,elastic-stack,logstash-grok,grok,elasticsearch,Elastic Stack,Logstash Grok,Grok" />

elasticsearch 如何使用grok过滤{quot;foo";:“bar";,“bar";:“foo";}以仅获取foo字段?

elasticsearch 如何使用grok过滤{quot;foo";:“bar";,“bar";:“foo";}以仅获取foo字段?,elasticsearch,elastic-stack,logstash-grok,grok,elasticsearch,Elastic Stack,Logstash Grok,Grok,我抄了 {"name":"myapp","hostname":"banana.local","pid":40161,"level":30,"msg":"hi","time":"2013-01-04T18:46:23.851Z","v":0} 并将其另存为my logs.json。我试图通过LogStash将两个字段(name和msg)导入ElasticSearch。问题是我依赖于一种我无法实现的过滤器。嗯,我已经成功地导入了这样的行作为一个单一的消息,但肯定是不值得在我的真实情况 也就是说,我

我抄了

{"name":"myapp","hostname":"banana.local","pid":40161,"level":30,"msg":"hi","time":"2013-01-04T18:46:23.851Z","v":0}
并将其另存为my logs.json。我试图通过LogStash将两个字段(name和msg)导入ElasticSearch。问题是我依赖于一种我无法实现的过滤器。嗯,我已经成功地导入了这样的行作为一个单一的消息,但肯定是不值得在我的真实情况

也就是说,我如何才能只将名称和msg导入ElasticSearch?我测试了几种替代方法,用它们来达到一个有用的过滤器,但没有成功

例如,%{GREEDYDATA:message}会将整行作为一条唯一的消息显示出来,但是如何分割它并忽略除name和msg字段以外的所有字段呢

最后,我计划在这里使用:

input {
    file {
        type => "my_type"
        path => [ "/home/logs/logs.log" ]
        codec => "json"
    }   
}

filter {     

   grok {
            match => { "message" => "data=%{GREEDYDATA:request}"}        
        }   
#### some extra lines here probably
} 

output
{ 
  elasticsearch {
    codec => json
    hosts => "http://127.0.0.1:9200"
    index => "indextest"
  }

    stdout { codec => rubydebug }
} 

我刚刚看了一下名单。这件衣服应该符合你的需要

假设您已安装,您的配置文件应该如下所示:

input {
  file {
    type => "my_type"
    path => [ "/home/logs/logs.log" ]
    codec => "json"
  }
}

filter {
  prune {
    whitelist_names => [
      "@timestamp",
      "type",
      "name",
      "msg"
    ]
  }
} 

output { 
  elasticsearch {
    codec => json
    hosts => "http://127.0.0.1:9200"
    index => "indextest"
  }

  stdout { codec => rubydebug }
} 
请注意,您需要保留
类型
,以便Elasticsearch将其索引为正确的类型<如果要在上查看数据,则需要code>@timestamp