すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:Curator の使用

最終更新日:Jan 11, 2025

Curator は、オープンソースの Elasticsearch によって提供されるインデックス管理ツールです。 このツールを使用すると、インデックスの作成、削除、無効化、およびインデックスセグメントのマージを実行できます。 このトピックでは、Curator のインストール方法と提供される機能について説明します。 Curator を使用して、シングルトン コマンドライン インターフェース(CLI)の実行、crontab を使用したタスクのスケジュール、ホットデータとコールドデータの分離、ホットノードからウォームノードへのインデックスの移行を実行できます。

Curator のインストール

前提条件

  • Alibaba Cloud Elasticsearch クラスタが作成されていること。

    詳細については、「Alibaba Cloud Elasticsearch クラスタの作成」をご参照ください。

  • Alibaba Cloud Elastic Compute Service (ECS) インスタンスが作成され、Python 環境が準備されていること。

    この例では、64 ビット CentOS 7.3 を実行する ECS インスタンスを使用します。 作成された ECS インスタンスは、Elasticsearch クラスタと同じリージョン、ゾーン、および仮想プライベートクラウド (VPC) に存在する必要があります。 詳細については、「[カスタム起動] タブでインスタンスを作成する」をご参照ください。

手順

  1. ECS インスタンスに接続します。 詳細については、「パスワードまたはキーを使用して Linux インスタンスに接続する」をご参照ください。

    説明

    この例では、通常のユーザーを使用します。

  2. 次のコマンドを実行して、Curator をインストールします:

    sudo pip install elasticsearch-curator
    説明
    • Curator 5.6.0 をインストールすることをお勧めします。 このバージョンは、Alibaba Cloud Elasticsearch V5.5.3 および V6.3.2 クラスタをサポートしています。 Curator のバージョンと Alibaba Cloud Elasticsearch のバージョンの互換性については、「バージョンの互換性」をご参照ください。

    • Curator の詳細については、「Curator」をご参照ください。

  3. Curator をインストールした後、次のコマンドを実行してバージョンを確認します:

    sudo curator --version

    コマンドが正常に実行されると、次の結果が返されます。

    curator, version 5.6.0

シングルトン CLI の使用

curator_cli コマンドを実行して、単一の操作を実行できます。 詳細については、「シングルトン コマンドライン インターフェース」をご参照ください。

説明
  • curator_cli コマンドでは、一度に 1 つの操作のみを実行できます。

  • エイリアスやリストアなどの一部の操作は、シングルトン CLI を使用して実行することはできません。

crontab を使用したタスクのスケジュール

crontab コマンドと curator コマンドを使用して、タスクの操作をスケジュールできます。

次のコードは、curator コマンドの例を示しています。

curator [OPTIONS] ACTION_FILE
Options:
  --config PATH  Path to configuration file. Default: ~/.curator/curator.yml  // 設定ファイルへのパス。デフォルト: ~/.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 ファイルを指定する必要があります。

ホットデータとコールドデータの分離

詳細については、「Elasticsearch 5.x での「ホットウォーム」アーキテクチャ」をご参照ください。

ホットノードからウォームノードへのインデックスの移行

  1. config.yml ファイルを /usr/curator/ ディレクトリに作成します。 次のコードを参考にしてファイルを構成できます。

    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  // Elasticsearch クラスタにアクセスするために使用するユーザー名とパスワード
      timeout: 30
      master_only: False
    logging:
      loglevel: INFO
      logfile:
      logformat: default
      blacklist: ['elasticsearch', 'urllib3']
    • hosts: Elasticsearch クラスタの内部エンドポイントまたはパブリックエンドポイントに設定します。 この例では、内部エンドポイントを使用します。

    • http_auth: Elasticsearch クラスタにアクセスするために使用するユーザー名とパスワードに設定します。

  2. action.yml ファイルを /usr/curator/ ディレクトリに作成します。 次のコードを参考にしてファイルを構成できます。

    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

    curator コマンドが正常に実行されると、次のコードのような情報が返されます。

    2019-02-12 20:11:30,607 INFO      Preparing Action ID: 1, "allocation" // アクション ID 1、「割り当て」を準備しています
    2019-02-12 20:11:30,612 INFO      Trying Action ID: 1, "allocation": Apply shard allocation filtering rules to the specified indices // アクション ID 1、「割り当て」を試行しています:指定されたインデックスにシャード割り当てフィルタリングルールを適用します
    2019-02-12 20:11:30,693 INFO      Updating index setting {'index.routing.allocation.require.box_type': 'warm'} // インデックス設定 {'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. // アクション ID 1、「割り当て」が完了しました。
    2019-02-12 20:12:57,925 INFO      Job completed. // ジョブが完了しました。
  4. 次のコマンドを実行して、curator コマンドを 15 分間隔で実行できるようにします。

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