Elasticsearch每个节拍多个指数?

时间:2016-12-16 16:22:34

标签: elasticsearch logstash filebeat metricbeat

我正在使用filebeat,我还想介绍metricbeat。 Filebeat输出在logstash- *中索引但是我需要一个不同的索引,只有来自metricbeat的数据(例如metricbeat-test - %{+ YYYY.MM.dd})这些将在一台服务器上一起运行。

如何指示logstash索引logstash- *中的文件节点内容以及IF是否继续使用另一个索引?

或多或少我需要一个IF声明但是我不确定我应该包含哪些内容!

我的logstash配置如下:

  

输出{elasticsearch {       hosts => “10.0.0.5:9200”       manage_template => “真正”       index => “logstash测试 - %{+} YYYY.MM.DD”       document_type => “阿帕奇”       }}

1 个答案:

答案 0 :(得分:2)

当任何Beat向Logstash发送数据时,它会将目标索引添加到[@metadata][beat]字段。默认情况下,Beat会将此值设置为自己的名称(例如filebeat)。如果要自定义值,可以设置output.logstash.index配置选项。

要利用来自Beats的所有事件中存在的元数据,您必须在Logstash中配置elasticsearch输出,如下所示:

output {
  if [@metadata][beat] {
    elasticsearch {
      hosts => "localhost:9200"
      manage_template => false
      index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
      document_type => "%{[@metadata][type]}"
    }   
  }   
}

这是关于如何在Logstash中使用它们的Beats documentation。我添加了条件,以便此输出仅用于Beats数据。您将为通过管道的其他数据配置另一个elasticsearch输出。

最后,因为您使用的是filebeat-*metricbeat-*索引,您必须手动安装提供的索引模板。每个Beat的下载包中都提供了索引模板。 Elasticsearch 2.x和5.x有一个模板,使用适当的模板。

使用curl(docs)安装模板。例如,

curl -XPUT 'http://localhost:9200/_template/filebeat' -d@/etc/filebeat/filebeat.template.json