我正在使用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 => “阿帕奇” }}
答案 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