总结:我想在 logstash 中的日志中附加一个 TTL 字段,并将它们发送到 Elastic 搜索。
我已经阅读了文档,但没能了解太多,因为它不是很清楚。
这是我在 logstash 中的配置文件。
input {
stdin {
type => "stdin-type"
}
}
output {
stdout { debug => true debug_format => "json"}
elasticsearch {}
}
现在假设对于读取的每个日志,我想附加一个 TTL,比如 5 天。
我知道如何在 Elasticsearch 中激活 TTL 选项。但是我不是很清楚 Elasticsearch 配置文件中必须进行哪些更改。 文档要求查找 mappings 文件夹,但在 elastic search 下载文件夹中没有。
寻求专家帮助。
最佳答案
看看here如果你想把映射放在文件系统上。您必须转到 config
文件夹并在此处创建一个名为 mappings
的文件夹,以及另一个以 mappings
中的索引名称命名的文件夹。由于 logstash 默认情况下每天创建一个索引,因此您最好为文件夹使用 _default
名称,这样映射将应用于所有索引。
您在该文件夹下创建的文件必须具有您要应用映射的类型的名称。我不记得 logstash 使用的确切类型,因此我会使用 _default_
映射定义。只需调用文件 _default_.json
并将以下内容放入其中:
{
"_default_" : {
"_ttl" : { "enabled" : true }
}
}
如您所见,类型的名称必须出现在文件名及其内容中。
否则,您可以避免将内容放入文件系统。你可以创建一个 index template包含您的自定义映射,如下所示:
{
"template" : "logstash-*",
"mappings" : {
"_default_" : {
"_ttl" : { "enabled" : true }
}
}
}
然后映射将应用于名称与模板模式匹配的所有索引。如果您使用 _default_
映射定义映射将默认应用于将要创建的所有类型。
关于elasticsearch - 为通过 logstash 发送到 Elasticsearch 的每个日志附加一个 TTL 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16486095/