Logstash は、リアルタイムでデータをフィルタリングし、転送できるオープンソースのデータ収集エンジンです。データ移行のリアルタイム性能に対する要件が高くない場合は、Logstash を使用してデータを移行できます。このトピックでは、Alibaba Cloud Elastic Compute Service (ECS) を使用してセルフマネージド Logstash クラスターをデプロイする方法、および Logstash クラスターを使用してログファイル内のデータを Alibaba Cloud Elasticsearch クラスターに移行する方法について説明します。
前提条件
Alibaba Cloud Elasticsearch クラスターが作成され、クラスターの自動インデックス作成機能が有効になっていること。
説明この例では、Standard Edition の Elasticsearch V8.5.1 クラスターを使用します。
詳細については、「Alibaba Cloud Elasticsearch クラスターの作成」および「Elasticsearch クラスターへのアクセスと設定」をご参照ください。
ECS インスタンスが作成されていること。ECS インスタンスは、Elasticsearch クラスターとセルフマネージド Logstash クラスターの両方に接続できる必要があります。詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
説明Elasticsearch クラスターと同じリージョン、ゾーン、および virtual private cloud (VPC) 内に ECS インスタンスを作成することを推奨します。
ECS インスタンスに JDK がインストールされていること。詳細については、「JDK のインストール」をご参照ください。
説明JDK は Temurin 17 以降である必要があります。Java JDK のバージョンと Logstash のバージョンの互換性の詳細については、「Logstash と JVM の互換性」をご参照ください。
移行対象のデータが準備されていること。この例では、ECS のログデータを使用します。
操作手順
ステップ 1: (任意) ロールとユーザーの作成
セルフマネージド Logstash インスタンスが Elasticsearch クラスターにアクセスし、Kibana コンソールで Logstash のモニタリングデータを表示するには、Elasticsearch アカウントが必要です。組み込みの elastic ユーザーまたはカスタムユーザーのいずれかを使用できます。
実際の業務では、カスタムユーザーを使用することを推奨します。カスタムユーザーを使用する前に、必要な権限を持つロールをユーザーに割り当てる必要があります。実際の業務で elastic ユーザーを使用すると、システムのセキュリティが確保できません。
ロールの作成
このセクションでは、logstash-* パターンに一致するインデックスに対する読み取りおよび書き込み権限を持つロールを作成する方法について説明します。
Elasticsearch クラスターの Kibana コンソールにログインします。
詳細については、「Kibana コンソールへのログイン」をご参照ください。
表示されたページの左上隅にある
アイコンをクリックし、管理 > スタック管理 を選択します。左側のナビゲーションウィンドウで、セキュリティ > ロール を選択します。
ロール ページで、ロールの作成 をクリックし、ロールのパラメーターを設定します。
次の表に、表示される一部のパラメーターを示します。
パラメーター
説明
ロール名
ロールの名前。カスタム名を入力します。
インデックス
管理するインデックス。logstash-* を選択します。
権限
ロールに付与する権限。read、write、create、delete、create_index を選択します。
ロールの作成 をクリックします。
ユーザーの作成
この例では、Logstash をモニタリングするためのユーザーを作成します。次のいずれかの方法でユーザーを作成できます。
デフォルトでは、Alibaba Cloud Elasticsearch は組み込みの logstash_system ユーザーを無効にします。新しいユーザーを作成し、そのユーザーに logstash_system ロールを割り当てる必要があります。新しいユーザーに logstash_system という名前を付けないでください。
方法 1: Kibana コンソールでユーザーを作成する
Elasticsearch クラスターの Kibana コンソールにログインします。
詳細については、「Kibana コンソールへのログイン」をご参照ください。
表示されたページの左上隅にある
アイコンをクリックし、管理 > スタック管理 を選択します。左側のナビゲーションウィンドウで、セキュリティ > ユーザー を選択します。
ユーザー ページで、右上隅にある ユーザーの作成 をクリックします。
ユーザーの作成 ページで、パラメーターを設定します。
次の表に、表示される一部のパラメーターを示します。
パラメーター
説明
ユーザー名
ユーザーの名前。カスタム名を入力します。例:logstash_system_monitor。
ロール
ユーザーに割り当てられるロール。logstash_system を選択します。
ユーザーの作成 をクリックします。
方法 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
Elasticsearch クラスターのパスワード。このパスワードは、クラスターの Kibana コンソールへのログインにも使用されます。
<instanceId>
Elasticsearch クラスターの ID。クラスター ID は、Elasticsearch クラスターの [基本情報] ページで照会できます。
<logstash-monitor-password>
logstash_system_monitorユーザーのパスワード。<your full name>
ユーザーのフルネーム。
ユーザーが作成されると、次の図に示す結果が返されます。

ステップ 2: ECS インスタンスへの Logstash のインストール
ECS インスタンスに接続します。
詳細については、「接続方法」をご参照ください。
Logstash インストールパッケージをダウンロードします。
Elastic の Web サイトにアクセスし、Elasticsearch クラスターと同じバージョンの Logstash インストールパッケージをダウンロードします。
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.5.1-linux-x86_64.tar.gz説明Logstash V7.4 のコマンド:
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.4.0.tar.gzLogstash インストールパッケージを解凍します。
この例では、Logstash V8.5.1 を使用します。
tar -xzvf logstash-8.5.1-linux-x86_64.tar.gz
ステップ 3: Logstash パイプラインの設定と実行
Logstash ディレクトリに移動します。
cd logstash-8.5.1.conf ファイルを作成します。
touch test.conftest.conf ファイルを設定します。
次のサンプルコードは設定例です。
input { file { path => "/your/file/path/xxx" } } filter { } output { elasticsearch { hosts => "<http://<instanceId>.elasticsearch.aliyuncs.com:9200>" index => "<index-name>" user => "<user-name>" password => "<logstash-password>" } }パラメーター
説明
pathログファイルのパス。この例では、/var/log/messages を使用します。
hostsご利用の Alibaba Cloud Elasticsearch クラスターのエンドポイント。
instanceIdをご利用のインスタンスの ID に置き換えます。例:http://es-cn-45xxxxxxxxxxxxju.elasticsearch.aliyuncs.com:9200。indexログファイル内のデータが書き込まれるインデックスの名前。カスタム名を指定できます。
userElasticsearch クラスターへのアクセスに使用するユーザー名。この例では、elastic を使用します。
重要システムのセキュリティを確保するため、実際の業務では elastic ユーザーの代わりにカスタムユーザーを使用することを推奨します。
Logstash パイプラインを実行する際に、ユーザー名に含まれる特殊文字による潜在的なエラーを回避するため、ユーザー名は二重引用符 (") で囲む必要があります。
passwordElasticsearch クラスターへのアクセスに使用するパスワード。
重要Logstash パイプラインを実行する際に、パスワードに含まれる特殊文字による潜在的なエラーを回避するため、パスワードは二重引用符 (") で囲む必要があります。
Logstash はさまざまな入力、フィルター、出力プラグインを提供しています。データ転送のためにこれらのプラグインを簡単に設定するだけで済みます。詳細については、「設定ファイルの構造」をご参照ください。
Logstash パイプラインを実行します。
bin/logstash -f test.confコマンドが正常に実行されると、Logstash はログファイルの変更を自動的に検出し、その変更を Elasticsearch クラスターに同期します。監視対象のログファイルにデータが追加されるたびに、Logstash は自動的にデータを Elasticsearch クラスターに同期します。
ステップ 4: 移行されたデータの表示
Elasticsearch クラスターの Kibana コンソールにログインします。
詳細については、「Kibana コンソールへのログイン」をご参照ください。
表示されたページの左上隅にある
アイコンをクリックし、管理 > 開発ツール を選択します。表示されたページの コンソール タブで、次のコマンドを実行します。
GET /logstash-*/_search
ステップ 5: (任意) Logstash ノードのモニタリング
Logstash ディレクトリ内の config フォルダに移動します。
cd logstash-8.5.1/configlogstash.yml ファイルを設定します。
logstash.yml ファイルを開きます。
vim logstash.ymllogstash.yml ファイルで、次の表にリストされているパラメーターのコメントを解除し、パラメーターを設定します。
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"]パラメーター
説明
xpack.monitoring.enabledこのパラメーターを
trueに設定します。デフォルト値はfalseです。xpack.monitoring.elasticsearch.usernameLogstash のモニタリング用に作成したユーザーの名前。この例では、elastic ユーザーを使用します。
重要システムのセキュリティを確保するため、実際の業務では elastic ユーザーの代わりにカスタムユーザーを使用することを推奨します。
xpack.monitoring.elasticsearch.passwordLogstash のモニタリング用に作成したユーザーのパスワード。
xpack.monitoring.elasticsearch.hostsご利用の Alibaba Cloud Elasticsearch クラスターのエンドポイント。例:
http://es-cn-45xxxxxxxxxxxxju.elasticsearch.aliyuncs.com:9200。
Logstash ディレクトリに移動し、Logstash サービスを起動します。
cd ../ bin/logstash -f test.confElasticsearch クラスターの Kibana コンソールにログインします。
詳細については、「Kibana コンソールへのログイン」をご参照ください。
表示されたページの左上隅にある
アイコンをクリックし、管理 > スタックのモニタリング を選択します。(任意) ルールの作成 ダイアログボックスで、OK をクリックします。
クラスターの概要 ページで、Logstash のモニタリングデータを表示します。
参考資料
Alibaba Cloud Elasticsearch プラグインは、安定性、クエリと書き込みのパフォーマンス、トークン化されたクエリ、データ取得など、クラスターの機能を強化します。詳細については、「プラグインの概要」をご参照ください。