我使用logstash在elasticsearch中输入我的日志。每天,它创建一个新的索引
这是我的logstash配置文件的输出部分
output {
stdout { codec => rubydebug }
elasticsearch {
hosts => ["127.0.0.1"]
index => "logstash-%{+YYYY.MM.dd}"
}
}
我希望一些字段不被分析。但是每天当一个新的索引被创建时,一个新的映射被创建,所有的字段都被分析。如何在每次创建新索引时强制elasticsearch使用特定的映射?
您可以通过分配模板并管理它们来做到这一点,例如我的配置:
elasticsearch {
hosts => ["localhost:9200"]
index => "XXX-%{+YYYY.ww}"
template => "/opt/logstash/templates/XXX.json"
template_name => "XXX"
manage_template => true
}
我相信我的配置可能有点过时,因为我们可悲的是在旧版本的logstash…所以在文档中阅读这些内容会很有帮助:https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html
这在logstash中是绝对可能的。
阿图尔
您可以使用ES索引模板,然后在创建索引时使用:https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-templates.html.
在你的例子中,模板应该是这样的:
{
"template": "logstash-*",
"mappings": {
"_default_": {
...
}
}
}