是否可以限制Elasticsearch索引的大小?

时间:2015-09-17 16:30:41

标签: elasticsearch

我有一个用于索引日志记录的Elasticsearch实例。当然,数据随着时间的推移而增长,我想限制它的大小(大约10GB)。像mongoDb上限的集合。

我对旧的日志记录不感兴趣。

我还没有找到任何配置,我不确定我是否可以删除数据文件。

有什么建议吗?

3 个答案:

答案 0 :(得分:2)

处理“旧”数据的Elasticsearch“方式”是创建基于时间的索引。意思是,您可以为每天或每周创建索引。索引该索引中属于该日/周的所有内容。

您可以决定要保留多少天并坚持使用该号码。假设7天的数据计为10 GB。在第8天,像往常一样创建新索引,然后从8天前删除索引。

您的群集7索引中的所有时间。 建议不要使用ttl作为其他海报建议,因为更难以对集群造成额外压力。 ttl机制会检查过期文档的每indices.ttl.interval(默认为60秒),它会从中创建批量请求并删除它们。这意味着不必要的请求将进入群集。

相反,删除索引非常简单快捷。

查看this以及如何使用Curator轻松管理基于时间的索引。

答案 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

此致 阿兰