输出到 ElasticSearch 多个索引和映射
有时,你需要在 ElasticSearch 中输出到多个索引,或者在它们滚入时具有要应用于新索引的自定义映射。
有两种方法可以应用自定义映射。一种方法是上传 ElasticSearch 模板。请参阅 ElasticSearch 文档。另一种方法是在 elasticsearch {}
输出中指定映射。这就是这里显示的内容。
output {
if [type] == 'metrics' {
# The 'metrics' index rotates weekly.
# The 'metrics-mapping.json' file defines the custom mappings.
elasticsearch {
hosts => [ 'localhost' ]
index => "metrics-%{xxxx.ww}"
manage_template => true
template => "/etc/logstash/metrics-mapping.json"
template_overwrite => true
}
}
}
这会将 metrics
事件输出到 ElasticSearch 上的 metrics-
索引,它将使用 ISO 周每周轮换一次。用于新索引的模板定义为此配置的一部分。定义模板具有将字段类型强制为统一类型的优点。这在较大的配置中很有用,其中多种类型可能尝试将字段定义为稍微不同的数据类型。
此方法在登台和 QA 环境中很有用,因为 ElasticSearch 模板由 LogStash 代码定义,不必作为 ElasticSearch 集群设置的一部分单独配置。