はじめに
Elasticsearchは、リアルタイムの全文検索に使用されるプラットフォームです。 大量のデータを分析する必要があるアプリケーション。 Kibana、Logstash、X-Packなどの他のツールと組み合わせて、Elasticsearchはビッグデータを集約および監視できます。 大規模に。
RESTfulAPIサポート 、一般的なHTTPメソッドを使用してデータを簡単に管理できます。その速度と使いやすさにより、HadoopやSparkが処理するより複雑なタスクにも適しています。
このチュートリアルでは、すべてを準備する方法と、Ubuntu18.04にElasticsearchをインストールする方法を紹介します。 。インストール手順は、他のLinuxディストリビューションでも機能するはずです。
前提条件
- Ubuntuベースのシステム(このガイドではUbuntu 18.04を使用)
- 端末またはコマンドラインへのアクセス
- パッケージをインストールするためのsudo権限を持つユーザー
必要な依存関係をインストールする
ElasticsearchはJava上で実行されるため、 Java Development Kit(JDK)をインストールする必要があります。 。
次のコマンドで、JavaがインストールされているかどうかとUbuntuマシンのバージョンを確認できます。
java -version
出力には、インストールされているJavaのバージョンが表示されます。
Javaがインストールされていない場合は、標準のbashメッセージが表示されます。 bash:/ usr / bin / java:そのようなファイルまたはディレクトリはありません 。 事前に、bashコマンドを使用してファイルまたはディレクトリが存在するかどうかを確認するオプションがあることに注意してください。
インストールを続行する前に、パッケージインデックスを更新してください:
sudo apt update
デフォルトのJDKをインストールするには、次のコマンドを実行します。
sudo apt install openjdk-8-jdk
プロセスが終了したら、 java -version
を実行します もう一度コマンドします。この場合、出力には次のバージョンが表示されます。
HTTPS経由でリポジトリにアクセスできるようにするには、APTトランスポートパッケージをインストールする必要があります。
sudo apt install apt-transport-https
上記の出力は、プロセスが完了したときの最後の部分を示しています。
UbuntuにElasticsearchをインストールしてダウンロードする
Javaとapt-transport-https
を確認した後 正常にインストールされたら、Elasticsearchをインストールする手順に進みます。
Elasticsearchリポジトリを追加
まず、GPGキーを更新します Elasticsearchリポジトリ用。
wget
を使用する 公開鍵をプルするコマンド:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
出力にはOK
が表示されます。 すべてが順調に進んだ場合。
次に、このコマンドを使用して、リポジトリをシステムに追加します。
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
上記のコマンドでは、 7.xを使用しました これは、このガイドを書いている時点での最新のElasticsearchバージョンであるためです。
Elasticsearchをインストールする
最後に、Elasticsearchをインストールします。
続行する前に、パッケージインデックスをもう一度更新してください。
sudo apt update
次に、インストールを実行します:
sudo apt install elasticsearch
パッケージは約300MBです。システムにアーカイブをダウンロードさせ、インストールを完了させます。
Elasticsearchサービスを開始する
インストールが完了すると、Elasticsearchは起動するまで実行されません。また、マシンを再起動するときは、Elasticsearchサービスが自動的に開始されないため、再実行する必要があります。
システムの再起動時にElasticsearchを自動的にリロードするには、次のコマンドを使用します。
まず、systemd構成をリロードします:
sudo systemctl daemon-reload
次に、次のコマンドでElasticsearchサービスを有効にします:
sudo systemctl enable elasticsearch.service
最後に、サービスを有効にした後、Elasticsearchを起動します:
sudo systemctl start elasticsearch.service
プロセスを完了させます。少し時間がかかる場合があります。端末からの特定の応答はありません。
これで、システムの電源を入れたり再起動したりするたびにElasticsearchが起動します。
構成ファイルに変更を加えた場合、または何らかの理由でElasticsearchを再起動する必要がある場合は、以下を使用してください:
sudo systemctl restart elasticsearch.service
サービスを停止する必要がある場合は、次のコマンドを使用します。
sudo systemctl stop elasticsearch.service
Elasticsearchのステータスを確認する
コマンドを使用してElasticsearchを開始、再起動、停止したら、サービスのステータスを確認することもできます。
これを行うには、次のように入力します:
service elasticsearch status
出力には、サービスのステータス、タスク、およびその他の情報が表示されます。
Elasticsearchの設定
Elasticsearchは、基本的な使用法のために事前構成されています。セットアップでノードを1つだけ使用する場合は、ツールをあまり再構成する必要はありません。
デフォルトのElasticsearch構成を変更するには 、 elasticsearch.ymlを編集します ファイル。ファイルは/etc / elasticsearchにあります ディレクトリ。
ロギングの構成 /var/log/elasticsearch/logging.ymlにあります ファイル。今のところロギングのデフォルトをそのままにして、必要に応じて後で元に戻すことができます。
リモートアクセスを許可する
デフォルト設定では、他のホストからマシンにアクセスすることはできません。リモートアクセスを許可するには、選択したテキストエディターを使用して、 elasticsearch.ymlを開きます。 ファイル。
vimを使用します :
sudo vim /etc/elasticsearch/elasticsearch.yml
ネットワークまで下にスクロールします セクション。 #network.host
という行を見つけます 。
行のコメントを解除し(ポンド(#)記号を削除)、IPアドレスを 0.0.0.0
に設定します 、次の行を追加します:
transport.host: localhost
transport.tcp.port: 9300
http.port: 9200
セクションは次のようになります:
終了して変更を保存します。 vimで作業している場合 、「 :wq
」と入力します 。
この構成により、リモートホストがこのマシンにアクセスできるようになります。
UFWを使用してElasticsearchを保護する(オプション)
Elasticsearchへのリモートアクセスを許可する場合は、最小限のセキュリティ対策としてUFWツールを使用することを強くお勧めします。
Uncomplicated Firewall(UFW)はLinuxに組み込まれており、デフォルトで無効になっています。 UFWを有効にし、ネットワークの露出を制限するためのいくつかのルールを作成します。
UFWを有効にする前に、必要なルールを追加してください。 SSHを介したリモートアクセスの場合、ポート22(またはデフォルトのSSH構成を変更した場合はカスタムポート)でのアクセスを許可する必要があります。
ターミナルで、次のように入力します。
sudo ufw allow 22
次に、ポート9200でのアクセスを許可する必要があります。 リモートマシン用。 Elasticsearchはそのポートで着信リクエストをリッスンします。
次のコマンドでルールを作成します:
sudo ufw allow from external_IP to any port 9200
external_IP
を変更します Elasticsearchへのアクセスに使用されるリモートマシンのIPを使用します。
最後に、UFWツールを有効にします。
sudo ufw enable
上記のコマンドの出力例は次のとおりです。
ルールを正しく追加したことを確認するには、UFWのステータスを確認してください。
sudo ufw status
このコマンドは、作成したルールのステータスと詳細の両方を表示します。
Elasticsearchのテスト
Elasticsearchサービスがアクティブになり、マシンにリモートでアクセスできるようになり、UFWを有効にしたので、 curl
を使用できます。 ツールが機能するかどうかをテストします。
Elasticsearchのデフォルトのリスニングポートは9200 。したがって、ローカルホストでHTTPリクエストを送信して、応答が得られるかどうかを確認できます。
これを行うには、次のように入力します:
curl localhost:9200
出力は上記のようになります。バージョン情報と、日付、ハッシュなどのその他のフィールドが表示されます。