我有一個用於索引日誌記錄的Elasticsearch實例。數據自然會隨着時間而增長,我想限制它的大小(大約10GB)。像mongoDb封頂的集合。是否可以限制Elasticsearch索引的大小?
反正我對舊的日誌記錄不感興趣。
我還沒有找到任何配置,我不知道我可以刪除數據文件。
有什麼建議嗎?
我有一個用於索引日誌記錄的Elasticsearch實例。數據自然會隨着時間而增長,我想限制它的大小(大約10GB)。像mongoDb封頂的集合。是否可以限制Elasticsearch索引的大小?
反正我對舊的日誌記錄不感興趣。
我還沒有找到任何配置,我不知道我可以刪除數據文件。
有什麼建議嗎?
的Elasticsearch「辦法」涉及的「舊」的數據是創建基於時間的索引。意思是說,每天或每週你創建一個索引。在該索引中索引屬於該日/周的所有內容。
您決定要保留多少天並堅持這個數字。假設7天的數據計爲10 GB。在第8天,像往常一樣創建新索引,然後從8天前刪除索引。
所有的時間你會在你的羣集7個指數。 使用ttl
作爲另一張海報建議不推薦,因爲是遠更困難,它會給羣集帶來額外的壓力。 ttl
機制會檢查每個indices.ttl.interval
(默認爲60秒)是否已過期的文檔,它會從中創建批量請求並刪除它們。這意味着對集羣的不必要的請求。
相反,刪除索引非常簡單快捷。
從我記得在MongoDB中加蓋的集合只是一個循環緩衝區類型的集合,刪除最舊的條目時,沒有更多的空間?不幸的是,在ElasticSearch中沒有這種開箱即用的功能,您必須通過使用ES的API刪除單個文檔(或批處理文檔)自己添加此功能。更高性能的方法是在其文檔中下retiring data.
描述您可以提供每個索引/類型默認_ttl(生存時間)值,如下所示:
{
"tweet" : {
"_ttl" : { "enabled" : true, "default" : "1d" }
}
}
你在這裏更多的細節:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-ttl-field.html
問候, 阿蘭
現在我剛添加acrontab任務,每天運行一次並刪除基於時間的索引:curl -XDELETE http:// localhost:9200/log-2015.09.10 – gilp