全部產品
Search
文件中心

Elasticsearch:Curator操作指南

更新時間:Jun 30, 2024

Curator是Elasticsearch官方提供的一個索引管理工具,提供了刪除、建立、關閉、段合并索引等功能。本文介紹Curator的使用方法,包括安裝Curator、單命令列介面、crontab定時執行、冷熱資料分離實踐以及跨節點遷移索引。

安裝Curator

前提條件

  • 建立Elasticsearch執行個體。

    詳情請參見建立Elasticsearch執行個體

  • 建立阿里雲ECS執行個體,並準備Python環境。

    本文以CentOS 7.3 64位的ECS為例,所購買的執行個體需要與阿里雲ES執行個體在同一地區和可用性區域,以及同一Virtual Private Cloud(Virtual Private Cloud)下。詳情請參見自訂購買執行個體

操作步驟

  1. 串連ECS執行個體。具體操作請參見通過密碼或密鑰認證登入Linux執行個體

    說明

    本文檔以普通使用者權限為例。

  2. 執行以下命令安裝Curator。

    sudo pip install elasticsearch-curator
    說明
    • 建議您安裝5.6.0版本的Curator,它可以支援阿里雲ES 5.5.3和6.3.2版本。關於Curator版本與Elasticsearch版本的相容性,請參見Version Compatibility

    • 更多關於Curator的詳細說明請參見Curator

  3. 安裝成功後,執行以下命令查看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節點

  1. /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執行個體的帳號和密碼。

  2. /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檔案。

  3. 執行以下命令,驗證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.
  4. 執行以下命令,使用crontab實現每隔15分鐘定時執行curator命令。

    crontab -e
    */15 * * * * curator --config /usr/curator/config.yml /usr/curator/action.yml