阿里云Elasticsearch 7.10內核增強版(Indexing Service)將索引構建寫入部分全部托管在云端的Elasticsearch集群中,以滿足海量時序日志數據的快速寫入要求。本文介紹如何通過索引管理功能實現云端索引管理。
使用限制
僅開啟Indexing Service索引構建服務或Openstore存儲的7.10版本實例支持在ES控制臺使用索引管理功能。
如果通用商業版實例要使用索引管理功能,可以登錄Kibana控制臺,進入Management頁面使用Kibana的索引管理功能進行索引管理。由于不同版本的Kibana操作頁面有差異,進入索引管理頁面的路徑均不同,使用時可以參考對應版本的Kibana官方文檔。
注意事項
開啟Indexing Service索引構建服務后,默認為所有索引開啟云端寫入托管(系統索引除外)。集群中的數據流Data Stream索引以及非Data Stream數據集的獨立索引均默認在云端服務進行寫入托管。
Indexing Service按照寫入托管索引總大小和寫入流量進行按量計費,業務上建議使用數據流(Data Stream)和索引生命周期管理(ILM)滾動策略實現云端托管空間最優化。
Indexing Service托管索引默認3天將自動取消托管,請根據具體業務場景評估取消托管時間,支持在控制臺上手動關閉和API關閉。
Indexing Service場景,索引處于托管狀態,不兼容ILM Action中的shrink操作,建議當索引處于未托管狀態時,執行shrink配置。詳細信息,請參見ILM-shrink。
Indexing Service內核增強版實例與用戶集群進行數據同步時,依賴于apack/cube/metadata/sync任務(可通過
GET _cat/tasks?v
命令獲取該任務信息),不建議手動清理該任務。如果被清理,請盡快使用POST /_cube/meta/sync
命令恢復,否則會影響業務寫入。頻繁的Put Mapping將消耗大量的計算資源,對托管服務穩定性影響極大。建議您寫數據前提前定義索引模板,降低Put Mapping操作。
操作步驟
- 登錄阿里云Elasticsearch控制臺。
- 在左側導航欄,單擊Elasticsearch實例。
- 進入目標實例。
- 在頂部菜單欄處,選擇資源組和地域。
- 在Elasticsearch實例中單擊目標實例ID。
在左側導航欄,選擇 。
單擊索引管理頁簽,查看并管理集群中的索引。
系統默認展示全部索引,您也可以根據需求篩選或查找對應索引:
對于OpenStore自定義冷熱存儲版本,您可以通過僅查看托管中的索引和查看OpenStore冷索引篩選相關索引。
對于OpenStore智能混合存儲版本,只支持通過僅查看托管中的索引篩選相關索引,且索引管理頁面最上方會展示OpenStore索引總大小及索引個數。
關鍵參數
說明
僅查看托管中的索引
說明僅7.10內核增強版Indexing Service系列支持此參數。
選中該選項時,支持查看以下信息:
云端托管索引總大小:當前時刻,正處于云端寫入托管中的索引總大小。
索引個數:當前時刻,正處于云端寫入托管中的索引總個數。該數值為當前系統中的實時數值。
說明云端托管索引總大小與索引個數均為實時變化數值,不是歷史數值。
查看OpenStore冷索引
說明僅7.10內核增強版實例開啟OpenStore自定義冷熱存儲功能后,支持此參數。
選中該選項時,支持查看以下信息:
OpenStore索引總大小:當前時刻,正處于OpenStore冷階段存儲的索引總大小。
索引個數:當前時刻,正處于OpenStore冷節點存儲的索引總個數。該數值為當前系統中的實時數值。
說明如果是非數據流場景,數據寫入到OpenStore存儲后,索引名稱將以
openstore-*
開頭,不影響業務查詢。當前生命周期階段
用于查看索引當前生命周期狀態的信息,例如當前執行的階段、在每個階段中執行的操作等。顯示每個索引何時進入運行階段、運行階段的定義以及有關任何故障的信息。詳情請參見Explain lifecycle API。
說明開啟OpenStore智能混合存儲功能的索引僅支持熱階段和刪除階段,不支持冷階段。
寫入托管狀態
說明僅7.10內核增強版Indexing Service系列支持此參數。
支持以下兩種狀態:
開啟(默認):該索引的云端寫入托管處于開啟狀態。
關閉:取消該索引的云端寫入托管。支持手動關閉,關閉后不支持開啟。
說明在獨立索引的云端寫入托管過程中,索引數據全量存儲在云托管服務Indexing Service中,將會增加云托管費用。請根據業務使用場景(如索引是否仍有數據寫入)評估是否需要手動關閉該索引的寫入托管功能。
手動關閉某一索引的云端寫入托管,數據將直接寫入集群中。請在關閉前確認該索引是否持續有數據寫入,以及集群的負載情況,否則可能出現集群負載高的風險。
業務上建議使用數據流(Data Stream)和索引生命周期管理(ILM)滾動策略,實現云端托管空間最優化。
相關API
取消索引托管。
POST /<yourIndexName>/_cube/unfollow
強制取消索引托管:取消托管過程中索引需完成段合并后才會結束托管,段合并耗時一般與segment數量、數據寫入情況及數據量等有關系,如果耗時較長,對于內核版本為1.6及以上的內核增強版實例可通過如下命令,強制取消索引托管。
POST /<yourIndexName>/_cube/unfollow?force=true
<yourIndexName>:需要替換為您實際的索引名稱。
重要取消/強制取消索引托管API無法批量取消索引托管,頻繁取消索引托管,對托管服務影響較大,建議不要頻繁操作。
僅內核版本為1.6及以上的內核增強版實例支持強制取消索引托管。對于內核版本低于1.6的實例,可升級內核版本,具體操作請參見升級版本。
獲取托管狀態信息。
GET /<yourIndexName>/_cube/stats
<yourIndexName>:需要替換為您實際的索引名稱。
獲取集群托管到Indexing Service的整體狀態。
GET /_cube/stats
將快照恢復到Indexing Service實例。
例如將my_backup倉庫中,snapshot_1快照中的index_1索引數據恢復到Indexing Service實例中,示例如下。
說明實際使用時,您需要將對應信息替換為您實際的信息。
POST /_snapshot/my_backup/snapshot_1/_restore { "indices": "index_1", "ignore_index_settings": [ "index.apack.cube.following_index" ] }
手動觸發數據流Rollover。
POST <yourDatastreamName>/_rollover
<yourDatastreamName>:需要替換為您實際的數據流名稱。