2015-09-17 87 views
1

我有一個用於索引日誌記錄的Elasticsearch實例。數據自然會隨着時間而增長,我想限制它的大小(大約10GB)。像mongoDb封頂的集合。是否可以限制Elasticsearch索引的大小?

反正我對舊的日誌記錄不感興趣。

我還沒有找到任何配置,我不知道我可以刪除數據文件。

有什麼建議嗎?

+0

現在我剛添加acrontab任務,每天運行一次並刪除基於時間的索引:curl -XDELETE http:// localhost:9200/log-2015.09.10 – gilp

回答

2

的Elasticsearch「辦法」涉及的「舊」的數據是創建基於時間的索引。意思是說,每天或每週你創建一個索引。在該索引中索引屬於該日/周的所有內容。

您決定要保留多少天並堅持這個數字。假設7天的數據計爲10 GB。在第8天,像往常一樣創建新索引,然後從8天前刪除索引。

所有的時間你會在你的羣集7個指數。 使用ttl作爲另一張海報建議不推薦,因爲是更困難,它會給羣集帶來額外的壓力。 ttl機制會檢查每個indices.ttl.interval(默認爲60秒)是否已過期的文檔,它會從中創建批量請求並刪除它們。這意味着對集羣的不必要的請求。

相反,刪除索引非常簡單快捷。

看看this以及如何使用Curator輕鬆管理基於時間的索引。

1

從我記得在MongoDB中加蓋的集合只是一個循環緩衝區類型的集合,刪除最舊的條目時,沒有更多的空間?不幸的是,在ElasticSearch中沒有這種開箱即用的功能,您必須通過使用ES的API刪除單個文檔(或批處理文檔)自己添加此功能。更高性能的方法是在其文檔中下retiring data.

相關問題