Elasticsearchは、オープンソースの分散型全文検索および分析エンジンです。 RESTful操作をサポートし、大量のデータをリアルタイムで保存、検索、分析できるようにします。 Elasticsearchは、大規模なeコマースストアや分析アプリケーションなど、複雑な検索要件を持つアプリケーションを強化する最も人気のある検索エンジンの1つです。
このチュートリアルでは、ElasticsearchをCentOS7にインストールする方法について説明します。
前提条件#
としてログインしているユーザーは、パッケージをインストールするためにsudo権限を持っている必要があります。
Elasticsearchのインストール#
CentOS 7にElasticsearchをインストールするための推奨される方法は、公式のElasticsearchリポジトリからrpmパッケージをインストールすることです。
この記事を書いている時点で、Elasticsearchの最新バージョンは6.7
です。 Java8以降が必要です。
CentOSシステムにOpenJDK8をインストールするには、次のように入力します。
sudo yum install java-1.8.0-openjdk-devel
Javaバージョンを印刷して、Javaのインストールを確認します。
java -version
出力は次のようになります。
openjdk version "1.8.0_201"
OpenJDK Runtime Environment (build 1.8.0_201-b09)
OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode)
Javaがインストールされたので、次のステップはElasticsearchリポジトリを追加することです。
次のコマンドを使用して、リポジトリのGPGキーをインポートします。
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
テキストエディタを開き、次のリポジトリファイルを作成します。
sudo nano /etc/yum.repos.d/elasticsearch.repo
次のコンテンツをファイルに貼り付けます:
/etc/yum.repos.d/elasticsearch.repo[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
ファイルを保存して、テキストエディタを閉じます。
以前のバージョンのElasticsearchをインストールする場合は、6.x
を変更します 上記のコマンドで、必要なバージョンを使用します。 次のように入力して、Elasticsearchパッケージをインストールできます。
sudo yum install elasticsearch
インストールプロセスが完了したら、次のコマンドを実行してサービスを開始し、有効にします。
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
次のcurlコマンドを使用してローカルホストのポート9200にHTTPリクエストを送信することで、Elasticsearchが実行されていることを確認できます。
curl -X GET "localhost:9200/"
出力は次のようになります。
{
"name" : "fLVNqN_",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "6zKcQppYREaRH0tyfJ9j7Q",
"version" : {
"number" : "6.7.0",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "8453f77",
"build_date" : "2019-03-21T15:32:29.844721Z",
"build_snapshot" : false,
"lucene_version" : "7.7.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
サービスの開始には5〜10秒かかる場合があります。 curl: (7) Failed to connect to localhost port 9200: Connection refused
、数秒待ってからもう一度お試しください。
Elasticsearchサービスによってログに記録されたメッセージを表示するには、以下のコマンドを使用できます:
sudo journalctl -u elasticsearch
この時点で、ElasticsearchがCentOSサーバーにインストールされています。
Elasticsearchの構成#
Elasticsearchデータは/var/lib/elasticsearch
に保存されます ディレクトリ、構成ファイルは/etc/elasticsearch
にあります 。
デフォルトでは、Elasticsearchはローカルホストでのみリッスンするように設定されています。データベースに接続しているクライアントも同じホストで実行されており、単一ノードクラスタを設定している場合は、デフォルトの構成ファイルを変更する必要はありません。
すぐに使用できるElasticsearchは認証を実装していないため、HTTPAPIにアクセスできるすべてのユーザーが認証にアクセスできます。 Elasticsearchサーバーへのリモートアクセスを許可する場合は、ファイアウォールを構成し、信頼できるクライアントからのみElasticsearchポート9200へのアクセスを許可する必要があります。
CentOS 7以降、FirewallDはデフォルトのファイアウォール管理ツールとしてiptablesを置き換えます。
次のコマンドを実行して、ポート9200
のリモートの信頼できるIPアドレスからの評価を許可します。 :
sudo firewall-cmd --new-zone=elasticsearch --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=elasticsearch --add-source=192.168.121.80/32 --permanent
sudo firewall-cmd --zone=elasticsearch --add-port=9200/tcp --permanent
sudo firewall-cmd --reload
192.168.121.80
を変更することを忘れないでください リモートIPアドレスを使用します。 後で、別のIPアドレスからのアクセスを許可する場合は、次を使用します。
sudo firewall-cmd --zone=elasticsearch --add-source=<IP_ADDRESS> --permanent
sudo firewall-cmd --reload
ファイアウォールが構成されたら、次のステップはElasticsearch構成を編集し、Elasticsearchが外部接続をリッスンできるようにすることです。
これを行うには、elasticsearch.yml
を開きます 構成ファイル:
sudo nano /etc/elasticsearch/elasticsearch.yml
network.host
を含む行を検索します 、コメントを外し、値を0.0.0.0
に変更します :
network.host: 0.0.0.0
マシンに複数のネットワークインターフェースがある場合は、Elasticsearchが指定されたインターフェースでのみリッスンするようにするインターフェースIPアドレスを指定できます。
変更を有効にするためにElasticsearchサービスを再起動します:
sudo systemctl restart elasticsearch
それでおしまい。これで、リモートの場所からElasticsearchサーバーに接続できます。