elasticsearch生命週期管理

2022-06-08 02:15:12 字數 1609 閱讀 3099

使用索引生命週期管理實現熱溫冷架構

官方文件

elasticsearch 集群從 3 節點擴容到溫熱架構的搭建攻略

(1) 當索引達到約定大小、索引文件數量達到約定數量,自動建立新的索引

(2) 安裝指定週期(1 天,1 周,1 個月)建立索引,將之前的索引存檔

(3) 強制刪除過期的索引,以達到保留一定日期範圍的資料

乙個生命週期策略定義了:

(1) 適用於哪些階段

(2) 每個適用階段中有哪些行為

(3) 什麼時候,由當前階段進入下乙個階段

定義: 索引正在頻繁寫入和查詢

行為:set priority, unfollow, force merge, rollover

定義: 索引只能查詢,無法寫入

行為:set priority, unfollow, read-only, allocate, shrink, force merge

定義: 索引相對較少查詢,無法寫入

行為:set priority, unfollow, allocate, freeze, searchable snapshot

定義: 索引可以被徹底刪除

行為:wait for snapshot, delete

由階段 a 進入階段 b,需要:

(1) 階段 a 中所有行為完成

(2) 索引的 age 必須大於階段 b 中定義的最小時間

示例:

# 建立策略

put _ilm/policy/yztest_policy}},

"delete": }}

}}}

# 建立索引模版,應用上面的策略

put _template/yztest_template

}

# 建立索引

put yztest-000001

}}

當乙個索引進入乙個新的階段,將會首先快取新的階段的定義到索引 metadata 中

# 將時間間隔更新為10s,預設是10m

put _cluster/settings

}

一般做法是, 先建立乙個生命週期策略、乙個索引模版,將生命週期策略應用於索引模版上,所有符合模版的索引都會使用相同的生命週期策略

如果只是對於當前索引(按照時間滾動),指定乙個生命週期策略,則滾動後建立的新索引不會使用之前的生命週期策略

即使集群狀態是 yellow, 具體索引仍然會按照生命週期策略中定義,正常進行階段轉移,

但是,因為集群非 green 狀態,會有一些清理任務無法完成,所以可能會產生負作用

Elasticsearch索引生命週期管理方案

在 elasticsearch 的日常中,有很多如儲存 系統日誌 行為資料 等方面的應用場景,這些場景的特點是資料量非常大,並且隨著時間的增長 索引 的數量也會持續增長,然而這些場景基本上只有最近一段時間的資料有使用價值或者會被經常使用 熱資料 而歷史資料幾乎沒有作用或者很少會被使用 冷資料 這個時...

Elasticsearch索引生命週期管理方案

在elasticsearch的日常中,有很多如儲存系統日誌 行為資料等方面的應用場景,這些場景的特點是資料量非常大,並且隨著時間的增長索引的數量也會持續增長,然而這些場景基本上只有最近一段時間的資料有使用價值或者會被經常使用 熱資料 而歷史資料幾乎沒有作用或者很少會被使用 冷資料 這個時候就需要對索...

elasticsearch配置詳解

elasticsearch的config資料夾裡面有兩個配置檔案 elasticsearch.yml和logging.yml,第乙個是es的基本配置檔案,第二個是日誌配置檔案,es也是使用log4j來記錄日誌的,所以logging.yml裡的設定按普通log4j配置檔案來設定就行了。下面主要講解下e...