Curator是Elasticsearch官方提供的一個索引管理工具,提供了刪除、建立、關閉、段合并索引等功能。本文介紹Curator的使用方法,包括安裝Curator、單命令列介面、crontab定時執行、冷熱資料分離實踐以及跨節點遷移索引。
安裝Curator
前提條件
建立Elasticsearch執行個體。
詳情請參見建立Elasticsearch執行個體。
建立阿里雲ECS執行個體,並準備Python環境。
本文以CentOS 7.3 64位的ECS為例,所購買的執行個體需要與阿里雲ES執行個體在同一地區和可用性區域,以及同一Virtual Private Cloud(Virtual Private Cloud)下。詳情請參見自訂購買執行個體。
操作步驟
串連ECS執行個體。具體操作請參見通過密碼或密鑰認證登入Linux執行個體。
說明本文檔以普通使用者權限為例。
執行以下命令安裝Curator。
sudo pip install elasticsearch-curator
說明建議您安裝5.6.0版本的Curator,它可以支援阿里雲ES 5.5.3和6.3.2版本。關於Curator版本與Elasticsearch版本的相容性,請參見Version Compatibility。
更多關於Curator的詳細說明請參見Curator。
安裝成功後,執行以下命令查看Curator版本。
sudo curator --version
正常情況下,返回結果如下。
curator, version 5.6.0
單命令列介面
您可以使用curator_cli命令執行單個操作,使用方式請參見Singleton Command Line Interface。
curator_cli命令只能執行一個操作。
並不是所有的操作都適用於單命令列執行,例如Alias和Restore操作。
crontab定時執行
您可以通過crontab和curator命令實現定時執行一系列操作。
curator命令格式如下。
curator [OPTIONS] ACTION_FILE
Options:
--config PATH Path to configuration file. Default: ~/.curator/curator.yml
--dry-run Do not perform any changes.
--version Show the version and exit.
--help Show this message and exit.
執行curator命令時需要指定config.yml檔案和action.yml檔案,詳情請參見config.yml官方文檔和action.yml官方文檔。
冷熱資料分離實踐
詳細操作方法請參見使用Curator進行冷熱資料移轉。
將索引從hot節點遷移到warm節點
在/usr/curator/路徑下建立config.yml檔案,配置內容參考如下樣本。
client: hosts: - http://es-cn-0pxxxxxxxxxxxx234.elasticsearch.aliyuncs.com port: 9200 url_prefix: use_ssl: False certificate: client_cert: client_key: ssl_no_validate: False http_auth: user:password timeout: 30 master_only: False logging: loglevel: INFO logfile: logformat: default blacklist: ['elasticsearch', 'urllib3']
hosts
:替換為對應阿里雲ES執行個體的私網或外網地址(此處以私網地址為例)。http_auth
:替換為對應阿里雲ES執行個體的帳號和密碼。
在/usr/curator/路徑下建立action.yml檔案,配置內容參考如下樣本。
actions: 1: action: allocation description: "Apply shard allocation filtering rules to the specified indices" options: key: box_type value: warm allocation_type: require wait_for_completion: true timeout_override: continue_if_exception: false disable_action: false filters: - filtertype: pattern kind: prefix value: logstash- - filtertype: age source: creation_date direction: older timestring: '%Y-%m-%dT%H:%M:%S' unit: minutes unit_count: 30
以上樣本按照索引建立時間,將30分鐘前建立在
hot
節點以logstash-
開頭的索引遷移到warm
節點中。您也可以根據實際情境自訂配置action.yml檔案。執行以下命令,驗證curator命令能否正常執行。
sudo curator --config /usr/curator/config.yml /usr/curator/action.yml
正常情況下會返回類似如下所示的資訊。
2019-02-12 20:11:30,607 INFO Preparing Action ID: 1, "allocation" 2019-02-12 20:11:30,612 INFO Trying Action ID: 1, "allocation": Apply shard allocation filtering rules to the specified indices 2019-02-12 20:11:30,693 INFO Updating index setting {'index.routing.allocation.require.box_type': 'warm'} 2019-02-12 20:12:57,925 INFO Health Check for all provided keys passed. 2019-02-12 20:12:57,925 INFO Action ID: 1, "allocation" completed. 2019-02-12 20:12:57,925 INFO Job completed.
執行以下命令,使用crontab實現每隔15分鐘定時執行curator命令。
crontab -e */15 * * * * curator --config /usr/curator/config.yml /usr/curator/action.yml