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

Elasticsearch:自己管理型 Logstash インスタンスを用いた Alibaba Cloud Elasticsearch とのデータ同期

最終更新日:Mar 26, 2026

ログファイルのデータを Alibaba Cloud Elasticsearch に移行する必要があるが、厳密なリアルタイム性は要求されない場合、Elastic Compute Service (ECS) 上で自己管理型の Logstash インスタンスを構築することが実用的なソリューションです。本トピックでは、ECS 上への Logstash のデプロイ、ログファイルを読み取るパイプラインの構成、およびレコードを Elasticsearch クラスターへストリーミングする方法について説明します。

Logstash パイプラインの仕組み

Logstash パイプラインは、以下の 3 つのステージから構成されます:

[入力] → [フィルター] → [出力]
  • 入力:ログファイルなどのソースからデータを読み取ります

  • フィルター:データを解析・変換します(任意)

  • 出力:処理済みのデータを Elasticsearch などの送信先に書き込みます

本トピックのすべての例では、ファイル入力、任意のフィルター、および Elasticsearch 出力を使用します。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • 自動インデックス作成が有効化された Alibaba Cloud Elasticsearch クラスター(本トピックでは Standard Edition、バージョン V8.5.1 を使用)を準備済みであること。詳細については、「Alibaba Cloud Elasticsearch クラスターの作成」および「Elasticsearch クラスターへのアクセスと構成」をご参照ください。

  • Elasticsearch クラスターと同じリージョン、ゾーン、および仮想プライベートクラウド(VPC)内に ECS インスタンスを準備し、両サービス間でネットワーク接続が可能であること。詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。

  • ECS インスタンスに JDK Temurin 17 以降がインストールされています。詳細については、「JDK のインストール」および「Logstash と JVM の互換性」をご参照ください。

  • 移行対象のログデータを準備済みであること。本トピックでは、ECS のログデータを例として使用します。

手順 1:(任意)ロールおよびユーザーの作成

自己管理型 Logstash クラスターを Alibaba Cloud Elasticsearch に接続するには、Elasticsearch ユーザーが必要です。テスト用途には組み込みの elastic ユーザーを使用できますが、本番環境では専用のユーザーを作成することを推奨します。

重要

本番環境では専用のユーザーを使用してください。elastic ユーザーは制限のないスーパーユーザー権限を持ち、セキュリティリスクを引き起こす可能性があります。

重要

Elasticsearch では、logstash_system ユーザーがデフォルトで無効化されています。logstash_system という名前のユーザーを作成しないでください。代わりに、ユーザーを作成し、logstash_system ロールを割り当ててください。

ロールの作成

logstash-* インデックスに対する読み取りおよび書き込み権限を持つロールを作成します。

  1. Elasticsearch クラスターの Kibana コンソールにログインします。詳細については、「Kibana コンソールへのログイン」をご参照ください。

  2. 左上隅の image アイコンをクリックし、管理 > スタック管理 を選択します。

  3. 左側ナビゲーションウィンドウで、セキュリティ > ロール を選択します。

  4. ロールの作成 をクリックします(ロール ページの右上隅)。以下のパラメーターを設定します:

    パラメーター説明
    ロール名ロールのカスタム名
    インデックスlogstash-*
    権限readwritecreatedeletecreate_index
  5. ロールの作成 をクリックします。

ユーザーの作成

Logstash のモニタリング用ユーザーを作成し、logstash_system ロールを割り当てます。Kibana コンソールまたは CLI のいずれかを使用できます。

オプション 1:Kibana コンソールを使用

  1. Kibana コンソールにログインします。詳細については、「Kibana コンソールへのログイン」をご参照ください。

  2. image アイコンをクリックし、管理 > スタック管理 を選択します。

  3. 左側ナビゲーションウィンドウで、セキュリティ > ユーザー を選択します。

  4. ユーザーの作成 をクリックします(ユーザー ページの右上隅)。

  5. 以下のパラメーターを設定します:

    パラメーター説明
    ユーザー名ユーザーのカスタム名(例:logstash_system_monitor
    ロールlogstash_system
  6. ユーザーの作成 をクリックします。

オプション 2:CLI を使用

以下のコマンドを ECS インスタンスから実行してユーザーを作成します。プレースホルダーを実際の値に置き換えてください。

curl -u elastic:<es-password> -XPOST http://<instanceId>.elasticsearch.aliyuncs.com:9200/_xpack/security/user/logstash_system_monitor -d '{"password" : "<logstash-monitor-password>","roles" : ["logstash_system"],"full_name" : "<your full name>"}'
プレースホルダー説明
<es-password>elastic ユーザーのパスワード(Kibana へのログインにも使用)
<instanceId>Elasticsearch クラスターの ID(基本情報 ページに記載)
<logstash-monitor-password>logstash_system_monitor ユーザーのパスワード
<your full name>ユーザーの表示名

ユーザーが作成されると、以下の図に示す結果が返されます。

添加用户成功

手順 2:ECS インスタンスへの Logstash のインストール

  1. ECS インスタンスに接続してください。「ECS インスタンスへの接続」をご参照ください。

  2. Elastic のウェブサイトから、ご使用の Elasticsearch クラスターのバージョンに対応する Logstash パッケージをダウンロードします。Logstash V8.5.1 の場合:

    wget https://artifacts.elastic.co/downloads/logstash/logstash-8.5.1-linux-x86_64.tar.gz

    Logstash V7.4.0 の場合:

    wget https://artifacts.elastic.co/downloads/logstash/logstash-7.4.0.tar.gz
  3. パッケージを展開します:

    tar -xzvf logstash-8.5.1-linux-x86_64.tar.gz

手順 3:Logstash パイプラインの構成および実行

  1. Logstash ディレクトリに移動します:

    cd logstash-8.5.1
  2. パイプライン構成ファイルを作成します:

    touch test.conf
  3. test.conf に以下の構成を追加します:

    パラメーター説明
    path監視対象のログファイルのパス(例:/var/log/messages
    hostsElasticsearch クラスターエンドポイント。プレースホルダー <instanceId> を実際のクラスター ID に置き換えます(例:http://es-cn-45xxxxxxxxxxxxju.elasticsearch.aliyuncs.com:9200
    indexターゲットインデックス名。手順 1 で作成したロール権限に一致させるため、logstash-* を使用します
    userElasticsearch のユーザー名。特殊文字によるエラーを回避するため、値を二重引用符で囲んでください
    passwordElasticsearch のパスワード。特殊文字によるエラーを回避するため、値を二重引用符で囲んでください
    input {
      file {
        path => "/var/log/messages"
      }
    }
    filter {
    }
    output {
      elasticsearch {
        hosts => ["http://<instanceId>.elasticsearch.aliyuncs.com:9200"]
        index => "<index-name>"
        user => "<user-name>"
        password => "<logstash-password>"
      }
    }

    Logstash は多様な入力、フィルター、および出力プラグインをサポートしています。完全な構成構文については、「構成ファイルの構造」をご参照ください。

  4. パイプラインを起動します:

    bin/logstash -f test.conf

    Logstash は構成済みのログファイルを監視し、新規の行が書き込まれると、それを Elasticsearch へ送信します。

手順 4:移行済みデータの確認

  1. Kibana コンソールにログインします。詳細については、「Kibana コンソールへのログイン」をご参照ください。

  2. image アイコンをクリックし、管理 > Dev Tools を選択します。

  3. コンソール タブで、以下のコマンドを実行します:

    GET /logstash-*/_search

    結果より、ログデータが Elasticsearch に正しくインデックス化されていることが確認できます。

手順 5:(任意)Logstash ノードのモニタリング

X-Pack モニタリングを有効化することで、Kibana の スタックモニタリング ダッシュボードで Logstash のメトリックを確認できます。

  1. モニタリング構成ファイルを開きます:

    vim logstash-8.5.1/config/logstash.yml
  2. 以下のパラメーターのコメントを解除し、値を設定します:

    パラメーター説明
    xpack.monitoring.enabledモニタリングを有効化するには true を設定します。デフォルト値:false
    xpack.monitoring.elasticsearch.usernameLogstash モニタリング用に作成したユーザー名(本例では elastic ユーザーを使用)
    xpack.monitoring.elasticsearch.passwordモニタリングユーザーのパスワード
    xpack.monitoring.elasticsearch.hostsElasticsearch クラスターエンドポイント(例:http://es-cn-nwy3fwjp8xxxxxxx.elasticsearch.aliyuncs.com:9200
    xpack.monitoring.enabled: true
    xpack.monitoring.elasticsearch.username: "<user-name>"
    xpack.monitoring.elasticsearch.password: "<logstash-password>"
    xpack.monitoring.elasticsearch.hosts: ["http://es-cn-nwy3fwjp8xxxxxxx.elasticsearch.aliyuncs.com:9200"]
  3. 更新後の構成で Logstash を再起動します:

    cd logstash-8.5.1
    bin/logstash -f test.conf
  4. Kibana コンソールにログインし、image アイコンをクリックして 管理 > スタックモニタリング を選択します。

  5. (任意)ルールの作成 ダイアログボックスで OK をクリックします。

  6. クラスター概要 ページで、Logstash のモニタリングデータを確認します。

次のステップ

参照