elasticsearch Elasticsearch每拍多个索引?,elasticsearch,logstash,filebeat,metricbeat,elasticsearch,Logstash,Filebeat,Metricbeat" /> elasticsearch Elasticsearch每拍多个索引?,elasticsearch,logstash,filebeat,metricbeat,elasticsearch,Logstash,Filebeat,Metricbeat" />

elasticsearch Elasticsearch每拍多个索引?

elasticsearch Elasticsearch每拍多个索引?,elasticsearch,logstash,filebeat,metricbeat,elasticsearch,Logstash,Filebeat,Metricbeat,我正在使用filebeat,我还想介绍metricbeat。Filebeat输出在logstash-*中编制索引,但是我需要一个不同的索引,其中只包含metricbeat中的数据(例如metricbeat测试-%{+YYYY.MM.dd}),这些数据将在单个服务器上一起运行 如何指示logstash在logstash-*中索引filebeat内容,如果是metricbeat,则继续使用另一个索引 或多或少,我需要一个如果声明,但我不知道我应该包括在那里 我的日志存储配置如下所示: 输出{elas

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

如何指示logstash在logstash-*中索引filebeat内容,如果是metricbeat,则继续使用另一个索引

或多或少,我需要一个如果声明,但我不知道我应该包括在那里

我的日志存储配置如下所示:

输出{elasticsearch{ 主机=>“10.0.0.5:9200” 管理_模板=>“真” 索引=>“日志存储测试-%{+YYYY.MM.dd}” 文档类型=>“apache” }}


当任何Beat向Logstash发送数据时,它会将目标索引添加到
[@metadata][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数据。您可以为通过管道传输的其他数据配置另一个elasticsearch输出

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

使用curl()安装模板。比如说,


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

当任何Beat将数据发送到日志存储时,它将向
[@metadata][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数据。您可以为通过管道传输的其他数据配置另一个elasticsearch输出

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

使用curl()安装模板。比如说,


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

我按照你的建议做了,但不起作用。在logstash-->elasticsearch的最后一步之前,一切正常。没有任何东西被编入索引,我也不知道为什么按照你的建议,logstash根本不与elasticsearch对话。我的拓扑是filebeat-->logstash-->redis-->logstash-->es。。在最后一个日志之前,所有的步骤都很好,但elasticsearch没有收到任何东西您在最初的问题中没有提到Redis。使用Redis这个循环,当从Logstash->Redis进入时,
@元数据
可能不包括在内,因此
[@metadata][beat]
可能会丢失。我建议在最终的日志存储中使用
output{stdout{codec=>rubydebug}}
来调试Redis输入的内容。问题在于Logstash的Redis输入上的键值。我不知道为什么它不起作用,因为我的输出配置看起来像'redis{host=>“172.21.0.2”port=>“6379”key=>“%{[@metadata][beat]}”data_type=>“list”,这很好,但是当我设置'key=>“%{[@metadata][beat]}”时“就像在redis input中一样,它不起作用……我不知道这里发生了什么,lolI按照你的建议做了,但它不起作用。在logstash-->elasticsearch的最后一步之前,一切都很正常。没有任何内容被索引,我不确定为什么按照你的建议logstash根本不与elasticsearch对话。我的拓扑结构是文件beat-->logstash-->redis-->logstash-->es..直到最后一个logstash的所有步骤都很好,并且工作正常,但是elasticsearch没有收到任何东西您在最初的问题中没有提到redis。对于redis这个循环,从logstash->redis开始时,
@元数据
可能不包括在内,因此
[@metadata][beat]
可能丢失。我建议在最终日志存储中使用
输出{stdout{codec=>rubydebug}
来调试从Redis传入的内容。问题在于Logstash的Redis输入上的键值。我不知道为什么它不起作用,因为我的输出配置看起来像'Redis{host=>“172.21.0.2”port=>“6379”key=>“%{[@metadata][beat]}”data_type=>“list”'这很好,但是当我在redis input中设置“key=>“%{[@metadata][beat]}”时,它不起作用…我不知道这里发生了什么lol