Elasticsearchは、オープンソースで、広く配布可能で、容易にスケーラブルなエンタープライズグレードの検索エンジンであり、大規模で精巧なAPIを介してアクセスできます。 データ検出アプリケーションをサポートする非常に高速な検索を強化し、「従来の」全文検索、分析ストア、オートコンプリート、スペルチェッカー、アラートエンジン、汎用ドキュメントストアなどのさまざまなユースケースに使用できます。 。 分析ワークロードは、物事を数え、ビッグデータでさえある可能性のある大量のデータを要約する傾向があります。 これは、スペルミスに寛容なあいまい検索に使用できます。 あいまい検索はCPUに負荷がかかるため、検索の変更と改善を現実的な量のデータでテストしてから本番環境に送信することが常に重要です。したがって、すべてのフィールドに追加するのではなく、注意して追加する必要があります。 Elasticsearchは、オートコンプリートとインスタント検索にも役立ちます。 ユーザータイプがさまざまな形で表示される場合の検索は、既存のタグの単純な提案、検索履歴に基づいて検索を予測しようとする、またはすべての抑制されたキーストロークに対してまったく新しい検索を実行するなどです。 Elasticsearchには、match_phrase_prefix、プレフィックスクエリ、インデックスグラム、さまざまなサジェスタのファミリなど、これらの機能の構築を支援するさまざまな機能があります。
この記事では、単一のCentOS7サーバーに複数のElasticsearchノードをインストールする方法について説明します。
ただし、他のLinuxディストリビューションで実行するのと同様の手順を使用できます。
前提条件
単一のサーバーに複数のElasticsearchノードをインストールして構成するというこのタスクを実行するには、rootユーザーの資格情報を使用してサーバーにアクセスする必要があります。CentOS6またはCentOS 7は、環境に使用するサーバーに関係ありません。 サーバーに接続して、最初に非ルートの一般ユーザーを作成しましょう。
#ssh root@server_ip
1)新しいユーザーの追加
rootユーザーを使用してログインした後、以下のコマンドを使用して、インストール中に使用する新しい汎用ユーザーを作成します。
# adduser elasticsearch
Changing password for user elasticsearch.
New password:****
Retype new password: ****
passwd: all authentication tokens updated successfully.
新しいユーザーを「wheel」グループに追加して、 sudo 特権。
# usermod -aG wheel elasticsearch
2)システムアップデート
次に、CentOS 7サーバーで以下のコマンドを使用して、アップデートとセキュリティパッチでシステムをアップデートします。
# yum update -y
システムに前提条件の準備ができたら、システムにJavaバージョン8をインストールするための次のステップに進みます。
3)Java(JVM)バージョン8のインストール
Elasticsearchは、実行するために少なくともJava8を必要とするJavaを使用して構築されています。 OracleのJavaとOpenJDKのみがサポートされています。 すべてのElasticsearchノードとクライアントで同じJVMバージョンを使用する必要があります。 したがって、Javaバージョン1.8.0_121以降をインストールすることをお勧めします。インストールしないと、他のバージョンのJavaが使用されている場合、Elasticsearchは起動を拒否します。
必要なバージョンのJAVAをインストールするには、以下のコマンドを使用できます。
$sudo yum install java-1.8.0-openjdk.x86_64
インストールが完了したら、以下のコマンドを実行して、インストールされているJavaのバージョンを確認します。
$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
Elasticsearchが使用するJavaのバージョンは、「JAVA_HOME」環境変数を設定することで構成できます。 前提条件が完了したら、ネットセッションに移動して、ノードをダウンロード、インストール、および構成します。
Elasticsearchをダウンロードする方法
Elasticsearchは複数のパッケージ形式で提供されますが、「zip」および「tar.gz」パッケージはどのシステムへのインストールにも適しています。これは、Elasticsearchを使い始めるための最も簡単な選択です。 ‘rpm’パッケージは、Red Hat、Centos、SLES、OpenSuSE、およびその他のRPMベースのシステムへのインストールに適しています。 Elasticsearch Webサイトから、または「wget」コマンドを使用してRPMリポジトリからダウンロードできます。
CentOS7にインストールする2つの異なるバージョンのElastisearchパッケージをダウンロードしてみましょう。
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.tar.gz
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.1.tar.gz
これで、2つの異なるバージョンのElasticsearchパッケージをインストールできるようになりました。 アーカイブを抽出し、抽出したフォルダーに移動して、パッケージをコンパイルおよびインストールします。
$ tar -zxf elasticsearch-5.0.1.tar.gz
$ tar -zxf elasticsearch-5.2.2.tar.gz
Elasticsearchの最初のノードを構成します
次に、最初にインストールするElasticsearchの最新バージョンから始めます。 ‘config’ディレクトリに配置されたコマンドラインエディタを使用して、デフォルトの設定ファイルを開きましょう。
$ vim elasticsearch-5.2.2/config/elasticsearch.yml
‘i’を押して挿入モードに切り替え、ファイルに次の構成パラメーターを挿入します。
cluster.name: elastic_cluster1
node.name: node-1
node.master: true
node.data: true
transport.host: localhost
transport.tcp.port: 9300
http.port: 9200
network.host: 0.0.0.0
ここで、http.portとtransport.portはデフォルト構成で指定されていません。ESは、起動時に次に使用可能なポートを選択しようとします。HTTPの場合は9200、内部トランスポートの場合は9300です。 保存してみましょう close ‘:wq!’を使用した構成ファイル次に、セカンダリノードを構成します。
セカンダリノードを構成する
セカンダリノードを構成するには、アーカイブのデフォルトの場所にある同じ構成ファイルを開き、エディターを使用して次の内容を挿入します。
$ vim elasticsearch-5.0.1/config/elasticsearch.yml
cluster.name: elastic_cluster1
node.name: node-2
#node.master: true
node.data: true
transport.host: localhost
transport.tcp.port: 9302
http.port: 9202
network.host: 0.0.0.0
Save と close ファイルを作成し、次のセクションに移動してサービスを開始します。
Elasticsearchサービスを開始する方法
Elasticsearchの両方のノードを異なるバージョンで構成したので、CentOS7サーバーでバイナリスクリプトを実行して両方を起動する必要があります。
$ cd elasticsearch-5.2.2
$ bin/elasticsearch -d
これにより、elasticsearchプロセスがバックグラウンドで開始されます。 次に、ディレクトリをelasticsearchのセカンダリノードに変更し、同じコマンドを実行します。
$ cd elasticsearch-5.0.1
$ bin/elasticsearch -d
これで、リスニングポートのステータスをチェックして、両方のノードが構成に記載されている特定のポートで実行されていることを確認できます。
$ netstat -tlnp
$ ps -ef | grep elastic
次のコマンドを使用して、サービスが正常に開始されたことを確認することもできます。
$ curl -X GET 'https://localhost:9200'
{
"name" : "node-1",
"cluster_name" : "elastic_cluster1",
"cluster_uuid" : "yrMHCKfJS2msgvQj-HWkag",
"version" : {
"number" : "5.2.2",
"build_hash" : "f9d9b74",
"build_date" : "2017-02-24T17:26:45.835Z",
"build_snapshot" : false,
"lucene_version" : "6.4.1"
},
"tagline" : "You Know, for Search"
}
同様に、ポート ‘9202’で実行されているセカンダリノードの場合は、以下のコマンドを使用します。
$ curl -X GET 'https://localhost:9202'
{
"name" : "node-2",
"cluster_name" : "elastic_cluster1",
"cluster_uuid" : "I4Xk5Yr3RTuyp0Q0IsmxNQ",
"version" : {
"number" : "5.0.1",
"build_hash" : "080bb47",
"build_date" : "2016-11-11T22:08:49.812Z",
"build_snapshot" : false,
"lucene_version" : "6.2.1"
},
"tagline" : "You Know, for Search"
}
結論
それでおしまい。 この記事では、単一のCentOS7サーバーに複数のelasticsearchノードをインストールする方法について学習しました。 これで、Logstashのさまざまな構成、一部の分析の使用、大規模なインデックスでのユーザー向け検索の強化、および多くの内部アプリケーションでElasticsearchを使用できます。 大きなヒープを持つJVMの管理は、ガベージコレクションの実行時間のために恐ろしいビジネスです。 ヒープダンプのキャプチャと分析が簡単になるため、ヒープをさらに小さくすることをお勧めします。 Luceneの最適なパフォーマンスを得るには、インデックスファイルのOSファイルキャッシングに十分なRAMを使用できるようにすることも重要です。 小さなヒープで単一のノードを実行すると、CPUとRAMの両方が無駄になります。