Elasticsearch索引生命週期管理方案

2022-01-09 21:46:07 字數 2508 閱讀 2214

在 elasticsearch 的日常中,有很多如儲存 「系統日誌」、「行為資料」等方面的應用場景,這些場景的特點是資料量非常大,並且隨著時間的增長 索引 的數量也會持續增長,然而這些場景基本上只有最近一段時間的資料有使用價值或者會被經常使用(熱資料),而歷史資料幾乎沒有作用或者很少會被使用(冷資料),這個時候就需要對 索引 進行一定策略的維護管理甚至是刪除清理,否則隨著資料量越來越多除了浪費磁碟與記憶體空間之外,還會嚴重影響 elasticsearch 的效能;

在 elastic stack 6.6 版本後推出了新功能 index lifecycle management(索引生命週期管理),支援針對索引的全生命週期託管管理,並且在 kibana 上也提供了一套 ui 介面來配置策略。本文主要介紹 elasticsearch 索引生命週期管理如何配置和使用。

索引生命週期分為4個階段:hot、warm、cold、delete,其中hot主要負責對索引進行rollover操作。

rollover:滾動更新建立的新索引將新增到索引別名,並被指定為寫索引。

索引根據時間引數min_age進入生命週期階段,若未設定,預設是0ms。min_age通常是從建立索引的時間開始計算,如果索引被設定為滾動索引,那麼min_age是從索引滾動開始計算。注意,在檢查min_age引數並進入下乙個階段前,當前階段的操作必須完成。

下面以索引 syslog-2020.10.01 為例子,在索引建立 1 天後轉為 warm 階段,30 天後轉為 cold 階段,30 天後刪除

假設 policy 設定如下:

關聯策略有兩種方式,分別是使用索引模板關聯和索引直接關聯

索引模板來建立所需的索引,並關聯ilm策略

}'為現有的索引單獨關聯策略

3.3. 檢視索引所處階段

http://$ip:9200/my-test-*/_ilm/explain
上述的步驟,大部分都可以在 kibana 中以圖形化介面的方式進行操作

ilm service 會在後台輪詢執行 policy,預設間隔時間為 10 分鐘,為了測試更快地看到效果,可將其修改為1秒。

}'

get  _ilm/status
如果請求沒有遇到錯誤,您將收到以下結果:

「ilm的操作模式」:

可以暫停ilm服務,以便使用stop api不再執行其他步驟。

post  _ilm/stop
停止後,所有其他政策措施都將停止。這將反映在狀態api中

然後,ilm服務將非同步地將所有策略執行到可以安全停止的位置。在ilm確認它是安全的之後,它將移至該stopped模式

要啟動ilm並繼續執行策略,請使用start api。

post  _ilm/start
start api將向ilm服務傳送請求,以立即開始正常操作。

Elasticsearch索引建議

背景 最近在做日誌收集,用到elasticsearch作為儲存層,因為日誌量比較大,一天近2t,所以每時每刻都會有大量的插入操作。又由於是給開發人員查日誌使用,所以查詢的量比較小。受限於儲存空間,目前僅保留7天的日誌,多數為乙個業務模組乙個索引,按天切分索引。關於索引和型別的取捨,建立多個索引還是乙...

elasticsearch 建立索引

介紹 分詞器 analyzer 包括乙個分解器 tokenizer 和多個詞元過濾器 filter 詞元過濾器的作是對分詞器提取的詞元進一步處理,比如轉成小寫,使用edge ngram,同義詞等,處理之後成為索引詞 term 文件正包含了幾個這樣的term成為frequency 詞頻 分解器 tok...

Elasticsearch 索引例項

elasticsearch包含了一系列的感念,比如索引 indexing 搜尋 search 以及聚合 aggregations 現在我們主要介紹indexing。在elasticsearch中,文件歸屬於一種型別 type 而這些型別存在於索引 index 中,我們可以畫一些簡單的對比圖來模擬傳統...