我有一个用于索引日志记录的Elasticsearch实例。当然,数据随着时间的推移而增长,我想限制它的大小(大约10GB)。像mongoDb上限的集合。
我对旧的日志记录不感兴趣。
我还没有找到任何配置,我不确定我是否可以删除数据文件。
有什么建议吗?
答案 0 :(得分:2)
处理“旧”数据的Elasticsearch“方式”是创建基于时间的索引。意思是,您可以为每天或每周创建索引。索引该索引中属于该日/周的所有内容。
您可以决定要保留多少天并坚持使用该号码。假设7天的数据计为10 GB。在第8天,像往常一样创建新索引,然后从8天前删除索引。
您的群集7索引中的所有时间。
建议不要使用ttl
作为其他海报建议,因为远更难以对集群造成额外压力。 ttl
机制会检查过期文档的每indices.ttl.interval
(默认为60秒),它会从中创建批量请求并删除它们。这意味着不必要的请求将进入群集。
相反,删除索引非常简单快捷。
答案 1 :(得分:1)
据我所知,MongoDB中的上限集合只是一个循环缓冲区类型的集合,当没有空间时会删除最旧的条目?不幸的是,在ElasticSearch中没有这样的开箱即用,您必须通过使用ES的API删除单个文档(或批量文档)来自己添加此功能。在retiring data.
下的文档中描述了一种更高效的方式答案 2 :(得分:1)
您可以按如下方式提供每个索引/类型的默认_ttl(生存时间)值:
{
"tweet" : {
"_ttl" : { "enabled" : true, "default" : "1d" }
}
}
您可以在此处获得更多详细信息:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-ttl-field.html
此致 阿兰