Logstashを活用した Search Engine Clusterのローテーション

Prev Next

VPC環境で利用できます。

LogStashを使用して CentOSが適用された Search Engine Service Clusterを Rockyなどの OSが適用された Search Engine Service Clusterにローテーションする方法を説明します。
ユースケースとして Serverに LogStashを起動した後、Search Engine Service Clusterのデータをレプリケーションしてローテーションする方法を説明しています。

事前ジョブ

このガイドを実行する前に確認する必要があるジョブは、次の通りです。

  • 既存 Search Engine Service Clusterの情報確認(Cent Linuxインストールバージョン)
  • 新規作成した Search Engine Service Clusterの情報確認(Rocky Linuxインストールバージョン)

Custer切り替え順序

新規で作成した Clusterに移行する手順をガイドします。

  1. 下部のガイドに従って VPC Server作成、LogStashインストールと適用、ACG設定を完了します。
  2. 新規で作成した Clusterのデータが LogStashをインストールした Serverで正常にレプリケーションされるか index情報を検索/検証します。
  3. Clusterに保存されたデータを検索する Application Serverを先に新規で作成した Clusterに EndPointを変更します。
  4. Clusterにデータを保存する Application Serverを新規で作成した Clusterに EndPointを変更します。
  5. Application Serverの EndPoint変更が完了したら既存クラスタと新規クラスタの indexとドキュメント数を比較して移行が完了していることを確認/検証します。
  6. LogStashをインストールした VPC Serverを削除します。

VPC Server作成

STEP 1. サーバ作成

LogStashをインストールするサーバを作成します。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、 i_menu > Services > Compute > Serverメニューを順にクリックします。
  2. [サーバ作成] ボタンをクリックしてサーバを作成します。(サーバ作成ガイド)
  3. サーバ作成時に Subnetの種類は Clusterの ManagerNodeと同じか同じタイプ(Private、Public)の Subnetで作成します。
  4. 作成されたサーバの SSHにアクセスし、LogStashインストールを準備します(サーバアクセスガイド)。

LogStashのインストール

Serverに LogStashをインストールするユースケースを説明します。\
インストールプロセスで ElasticeSearchまたは OpenSearchのプロセスが含まれています。\
使用するバージョンに合わせてインストールすることで正常なテストができます。

STEP 1. javaのインストール

  1. 以下のコマンドを入力して javaをインストールします
sudo yum install java-devel -y

STEP 2. LogStashのインストール

LogStashをインストールする方法は次の通りです。
LogStashは、互換性のため利用する Elasticsearchまたは OpenSearchのバージョンに合わせてインストールする必要があります。

1. 以下のコマンドを入力して/rootパスに LogStashをダウンロードします。

# Elasticsearchバージョンの場合(OSSバージョンをインストール)
wget https://artifacts.elastic.co/downloads/logstash/logstash-oss-7.7.0.rpm

# OpenSearchバージョンの場合
wget https://artifacts.opensearch.org/logstash/logstash-oss-with-opensearch-output-plugin-7.16.3-linux-x64.tar.gz

2. ダウンロードしたファイルをインストールするためのコマンドです。

# Elasticsearchバージョンの場合
rpm -ivh logstash-oss-7.7.0.rpm

# OpenSearchバージョンの場合
tar -zxvf logstash-oss-with-opensearch-output-plugin-7.16.3-linux-x64.tar.gz

3. 以下のコマンドと設定ファイルを参照して LogStashが実行するロールを定義します。

  • ElasticSearchバージョンの場合
mv /etc/logstash/logstash-sample.conf /etc/logstash/conf.d/logstash.conf
vi /etc/logstash/conf.d/logstash.conf
  • ElasticSearchバージョン LogStash.conf
input {
  elasticsearch {
    hosts => ["http://A-cluster-address:9200"]
    index => "your-index-*"
  }
}

output {
  elasticsearch {
    hosts => ["http://B-cluster-address:9200"]
    index => "%{[index]}"
  }
}
  • OpenSearchバージョンの場合
# /root/にインストールする場合、{インストールパス}は/root/logstash-7.16.3です。
mv {インストールパス}/config/logstash-sample.conf {イストールパス}/config/logstash.conf
vi {インストールパス}/config/logstash.conf
  • OpenSearchバージョン LogStash.conf
input {
  opensearch {
    hosts => ["http://A-cluster-address:9200"]
    index => "your-index-*"
    user => ${userID}
    password => ${password}
    ssl_certificate_verification => false
  }
}

output {
  opensearch {
    hosts => ["http://B-cluster-address:9200"]
    index => "%{[index]}"
    user => ${userID}
    password => ${password}
    ssl_certificate_verification => false
  }
}
  • LogStash各項目別の説明
["http://A-cluster-address:9200"] - 現在利用中の Clusterの情報を入力します。 
["http://B-cluster-address:9200"] - 新規で作成した Clusterの情報を入力します。
"your-index-*" - 現在利用中の Clusterからレプリケーションする indexの名前です。 
"%{[index]}" - 現在利用中の Clusterでレプリケーションした indexの名前を変数として定義します。
${userID} - Clusterに登録されたユーザー IDです。 
${password} - Clusterに登録されたユーザー PASSWORDです。 
ssl_certificate_verification => false - OpenSearchアクセス時のプライベート証明書合格のための設定です。

4. LogStash実行

LogStashを実行するコマンドのユースケースは次の通りです。適用は状況により異なります。

# Elasticsearchバージョンの場合
systemctl start logstash

# OpenSearchバージョンの場合
# バックグラウンド実行のため nohupを使用します。
# -fオプションを使用して logstash.confのパスを指定する必要があります。
nohup {インストールパス}/bin/logstash -f ~{インストールパス}/config/logstash.conf &

ネットワーク設定

STEP 1. ACG設定

Search Engine Service Cluster 2つのいずれも LogStashがインストールされたサーバから9200ポートにアクセスできるように ACGを設定する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、 i_menu > Services > Big Data & Analytics > Search Engine Serviceメニューを順にクリックします。
  2. Clusterの選択後、マネージャノード ACGの横にある新しいウィンドウを開くボタンをクリックします。
  3. マネージャノード ACGの名前と同じ ACGを選択した後、上部の [ACG設定] ボタンをクリックします。
  4. inboudタブで以下の情報を入力した後、 [追加] ボタンをクリックします。
    • プロトコル: TCP
    • アクセスソース: Logstashが実行されるサーバの IPアドレス
    • 許可ポート: 9200
  5. 下部の [適用] ボタンをクリックします。

同じ方法で現在利用中のクラスタと変更するクラスタのいずれも同じ ACGを登録します。