ES索引生命周期管理配置的關鍵點


索引的生命周期策略是ELK中非常有意義的功能,一般用於熱(hot)、溫(warm)、冷(clod)數據的索引和分片管理,以及定期刪除過期的數據,以確保ES的健康運行。

划重點:

生命周期有四個重要階段:

hot: 索引需被頻繁的寫入和查詢(快)

warm: 索引不可寫入,但是仍需查詢(中)

cold: 索引不可寫入,很少被查詢(慢)

delete: 索引已無價值,干掉完事

 

需要注意理解索引生命周期策略的執行邏輯,通常我們會使用滾動更新,並希望當前寫操作的索引處於hot階段以提供最優服務,同時該索引會被記錄為rollover(rollover翻譯過來是“轉換”或“翻轉”的意思,意思就是該索引可轉為warm階段)。

以冷(溫)熱分離為例,若滿足策略hot階段的任一rollover觸發條件時,系統會自動把當前hot階段的索引rollover為warm階段索引(通常會觸發數據遷移至warm節點),同時根據模板創建一個新的索引提供寫入操作,若在轉換為warm時啟用了壓縮則原索引會被命名為shrink開頭,並保留原索引的別名。

 

配置步驟入下:

1、配置索引生命周期策略(傻瓜式UI操作就不舉例了)

為了盡快看到效果,可以通過調整索引生命周期策略的檢測間隔為10s來看效果,即索引中數據寫入且觸發refresh動作10s后會觸發生命周期檢測與執行,命令如下:

PUT /_cluster/settings
{
  "transient": {
    "indices.lifecycle.poll_interval": "10s"    //系統原默認值是10分鍾
  }
}

 

2、配置索引模板(請根據需要自行配置Mapping部分)

PUT _template/test_template
{
  "index_patterns": ["test-*"],                 
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 1,
    "index.lifecycle.name": "test_policy",    //第一步配置的策略名稱    
    "index.lifecycle.rollover_alias": "test",    //策略執行時對rollover狀態的index設置別名

"index.routing.allocation.require.temperature": "hot" //請根據ES集群的配置參數設置紅色部分,如temperature你配置的是是叫box_type,那請改成box_type } }

  

3、接着就是創建新索引(需匹配上面創建的模板),寫入數據,刷新索引后等待10s觀察是否觸發策略

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM