Elasticsearchは、オープンソースの分散型全文検索および分析エンジンです。 RESTful操作をサポートし、大量のデータをリアルタイムで保存、検索、分析できるようにします。
Elasticsearchは、大規模なeコマースストアや分析アプリケーションなど、複雑な検索要件を持つアプリケーションを強化する最も人気のある検索エンジンの1つです。
このチュートリアルでは、Debian9にElasticsearchをインストールするプロセスについて説明します。
前提条件#
Debianサーバーにパッケージをインストールするには、sudo権限を持つユーザーとしてログインする必要があります。
Elasticsearchのインストール#
DebianにElasticsearchをインストールする最も簡単な方法は、公式のElasticsearchリポジトリを使用することです。この記事を書いている時点で、Elasticsearchの最新バージョンは7.0.0
です。 システムにJava8をインストールする必要があります。
パッケージインデックスを更新し、apt-transport-https
をインストールすることから始めます HTTPS経由でリポジトリにアクセスするために必要なパッケージ:
sudo apt update
sudo apt install apt-transport-https
OpenJDK 8をインストールします:
sudo apt install openjdk-8-jdk
Javaバージョンを印刷して、Javaのインストールを確認します。
java -version
出力は次のようになります。
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
次のステップは、Elasticsearchリポジトリを追加することです。
次のwget
を使用して、リポジトリの公開鍵をインポートします コマンド:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
上記のコマンドはOK
を出力するはずです これは、キーが正常にインポートされ、このリポジトリからのパッケージが信頼できると見なされることを意味します。
次に、次のコマンドを実行して、Elasticsearchリポジトリをシステムに追加します。
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
別のバージョンのElasticsearchをインストールする場合は、7.x
を変更してください 上記のコマンドで、必要なバージョンを使用します。 パッケージインデックスを更新し、Elasticsearchエンジンをインストールします:
sudo apt update
sudo apt install elasticsearch
インストールプロセスが完了したら、次のコマンドを使用してサービスを開始し、有効にします。
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
Elasticsearchが実行されていることを確認するには、次のcurl
を使用して、ローカルホストのポート9200にHTTPリクエストを送信します。 コマンド:
curl -X GET "localhost:9200/"
出力は次のようになります。
{
"name" : "stretch",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "Nj2W3PswRuWvJW8JG75O1Q",
"version" : {
"number" : "7.0.0",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "b7e28a7",
"build_date" : "2019-04-05T22:55:32.697037Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.7.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
サービスの開始には5〜10秒かかる場合があります。 curl: (7) Failed to connect to localhost port 9200: Connection refused
、数秒待ってからもう一度お試しください。
Elasticsearchサービスによってログに記録されたメッセージを表示するには、以下のコマンドを使用します:
sudo journalctl -u elasticsearch
それでおしまい。 ElasticsearchがDebianサーバーにインストールされました。
Elasticsearchの構成#
Elasticsearchデータは/var/lib/elasticsearch
に保存されます ディレクトリ。構成ファイルは/etc/elasticsearch
にあります およびJava起動オプションは、/etc/default/elasticsearch
で構成できます。 ファイル。
デフォルトでは、Elasticsearchはローカルホストでのみリッスンするように設定されています。データベースに接続しているクライアントも同じホストで実行されており、単一ノードクラスタを設定している場合は、リモートアクセスを有効にする必要はありません。
すぐに使用できるElasticsearchは認証を実装していないため、HTTPAPIにアクセスできるすべてのユーザーが認証にアクセスできます。 Elasticsearchサーバーへのリモートアクセスを許可する場合は、ファイアウォールを構成し、信頼できるクライアントからのみElasticsearchポート9200へのアクセスを許可する必要があります。
選択したファイアウォールツールとしてUFWを使用している場合は、次のコマンドを実行して、リモートの信頼できるIPアドレスからポート9200で評価できるようにします。
sudo ufw allow from 192.168.100.20 to any port 9200
192.168.100.20
を変更することを忘れないでください リモートIPアドレスを使用します。 それ以外の場合、プレーンな古いiptablesを使用している場合は、次のコマンドを実行します。
sudo iptables -A INPUT -p tcp -s 192.168.100.20 --dport 9200 -j ACCEPT
ファイアウォールが構成されたら、次のステップは構成を編集し、外部接続をリッスンするように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サーバーに接続できるはずです。