UbuntuVPSにElasticsearchをインストールする方法
ステータス:非推奨
この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。
理由:
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.
代わりに参照してください:このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。
Elasticsearch は、分散型のRESTful検索および分析のためのプラットフォームです。 必要に応じて拡張でき、単一のDigitalOceanドロップレットですぐに使用を開始できます。 このチュートリアルでは、UbuntuでElasticsearchをダウンロードしてインストールし、使用を開始します。 提供されている手順は、現在、Ubuntu12.04.3×64およびUbuntu13.10×64でテストされています。
依存関係
まず、apt-get update
を実行して、使用可能なパッケージのリストを更新します。
次に、Javaランタイムをインストールする必要があります。 ここには2つのオプションがあります。
- Ubuntuが提供するOpenJDKランタイムをインストールします。
- Elasticsearchが推奨するJavaランタイムであるOracleJavaをインストールします。
最初のオプションは、Elasticsearchに慣れたり、ノードの小さなコレクションを実行したりする場合に、完全に機能します。 後者のオプションは、互換性を保証するためにElasticsearchが推奨するオプションです。
OpenJDK
最初のオプションを実行するには、apt-get install openjdk-6-jre
を実行するだけです。
Oracle Java
2番目のオプションについては、Elasticsearchドキュメントの手順に従います。 まず、OracleJavaランタイムを含むリポジトリを追加する必要があります
sudo add-apt-repository ppa:webupd8team/java
次に、apt-get update
を実行して、この新しいリポジトリからパッケージ情報を取得する必要があります。 その後、OracleJavaランタイムをインストールできます。
sudo apt-get install oracle-java7-installer
上記のコマンドを実行する際には、Oracleバイナリライセンスに同意する必要があります。 ライセンスに同意しない場合は、代わりにOpenJDKランタイムをインストールできます。
Javaインストールをテストします
次に、java -version
を実行して、Javaがインストールされていることを確認できます。
今のところ必要な依存関係はこれですべてなので、Elasticsearchの取得とインストールを始めましょう。
ダウンロードとインストール
Elasticsearchは、zip、tar.gz、deb、またはrpmパッケージでサイトから直接ダウンロードできます。 以下のテキストで必要なファイルをダウンロードするため、事前にこれを行う必要はありません。
インストール
Elasticsearchが提供するダウンロードオプションを考えると、いくつかのオプションがあります。
- zipまたはtar.gzアーカイブからインストールします。
- debパッケージからインストールします。
- rpmパッケージからインストールします。
最後のオプションはUbuntuの方法ではないため、無視します。
Elasticsearchを少し試してみたい場合は、zipまたはtar.gzアーカイブからインストールするのが最適です。 これらのオプションのいずれかからインストールすると、Elasticsearchの実行に必要なバイナリが利用可能になります。 debパッケージからインストールすると、Elasticsearchが完全にインストールされ、サーバーがすぐに実行されます。 これには、起動時にElasticsearchを起動するinitスクリプトを/etc/init.d/elasticsearch
にインストールすることが含まれます。 Elasticsearchを試してみたいだけの場合は、zipまたはtar.gzからインストールすることをお勧めします。 そうすれば、サーバーを自由に起動および停止しながら、Elasticsearchを見つけることができます。
zipまたはtar.gzアーカイブからのインストール
zipとtar.gzのダウンロードには、Elasticsearch用にコンパイル済みのバイナリが含まれています。
まず、便利な場所にソースをダウンロードします。 アーカイブを抽出すると、結果のディレクトリから直接バイナリを実行できるようになるため、Elasticsearchにアクセスするすべてのユーザーがアクセスできる場所にバイナリを配置する必要があります。 このチュートリアルでは、現在のユーザーのディレクトリにダウンロードします。 /tmp
にダウンロードした場合、VPSを再起動すると消えてしまう可能性があります。 これが必要な場合は、先に進んでダウンロードをそこに配置してください。 mktemp -d
を実行すると、/tmp
に新しい一時ディレクトリをすばやく作成できます。
いずれの場合も、先に進む前に、Elasticsearchを抽出するディレクトリにいることを確認してください。
アーカイブをダウンロードする
どちらかを実行します
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.7.zip
また
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.7.tar.gz
最初のコマンドはzipアーカイブをダウンロードし、2番目のコマンドはtar.gzアーカイブをダウンロードします。 zipパッケージをダウンロードした場合は、以前にapt-get install unzip
を実行したことを確認してから実行してください
unzip elasticsearch-0.90.7.zip
または、tar.gzパッケージをダウンロードした場合は、
tar -xf elasticsearch-0.90.7.tar.gz
どちらのオプションでも、elasticsearch-0.90.7ディレクトリが作成されます。 cd elasticsearch-0.90.7
と入力してそのディレクトリに移動すると、bin
フォルダにバイナリがあります。
Debianソフトウェアパッケージからのインストール
Ubuntu用にダウンロードするのに最適なパッケージはdebパッケージです。 RPMは機能しますが、最初に変換する必要があります。ここではその変換については説明しません。 を実行してdebパッケージを取得します
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.7.deb
Debianパッケージから直接インストールするには、
dpkg -i elasticsearch-0.90.7.deb
これにより、Elasticsearchが/usr/share/elasticsearch
に正しくインストールされます。 Debianパッケージからインストールすると、/etc/init.d/elasticsearch
にinitスクリプトがインストールされ、起動時にElasticsearchサーバーが起動することを思い出してください。 サーバーは、インストール後すぐに起動されます。
構成ファイル
zipまたはtar.gzアーカイブからインストールした場合、構成ファイルは結果のディレクトリーのconfigフォルダーにあります。 Debainパッケージからインストールする場合、構成ファイルは/etc/elasticsearch
にあります。
いずれの場合も、elasticsearch.ymlとlogging.ymlの2つの主要な構成ファイルがあります。 前者はElasticsearchサーバー設定を構成し、後者は当然のことながら、Elasticsearchで使用されるロガー設定を構成します。
「elasticsearch.yml」には、デフォルトではコメントしか含まれていません。
「logging.yml」は、基本的なロギングの構成を提供します。 結果のログは/var / log /elasticsearchにあります。
Elasticsearchパブリックアクセスを削除する
続行する前に、Elasticsearchを構成して、パブリックインターネットにアクセスできないようにする必要があります。Elasticsearchにはセキュリティが組み込まれておらず、HTTPAPIにアクセスできるすべてのユーザーが制御できます。 これは、elasticsearch.yml
を編集することで実行できます。 パッケージとともにインストールしたと仮定して、次のコマンドで構成を開きます。
sudo vi /etc/elasticsearch/elasticsearch.yml
次に、network.bind_host
を指定する行を見つけ、コメントを外して値をlocalhost
に変更し、次のようにします。
network.bind_host: localhost
次に、ファイルのどこかに次の行を挿入して、動的スクリプトを無効にします。
script.disable_dynamic: true
保存して終了。 次に、Elasticsearchを再起動して、変更を有効にします。
sudo service elasticsearch restart
他の基本的な設定オプションについては後で説明しますが、最初に最も基本的なElasticsearchのインストールをテストする必要があります。
Elasticsearchのインストールをテストする
これで、zipまたはtar.gzアーカイブをディレクトリに抽出するか、DebianパッケージからElasticsearchをインストールしました。 どちらの方法でも、Elasticsearchバイナリを使用でき、サーバーを起動できます。 zipまたはtar.gzアーカイブを使用した場合は、結果のディレクトリにいることを確認してください。 Debianパッケージを使用してインストールした場合、Elasticsearchサーバーはすでに実行されているはずなので、以下に示すようにサーバーを起動する必要はありません。
すべてが機能していることを確認しましょう。 走る
./bin/elasticsearch
これで、Elasticsearchはポート9200で実行されているはずです。 Elasticsearchが完全に開始するには時間がかかるため、以下のcurlコマンドをすぐに実行すると失敗する可能性があることに注意してください。 応答を開始するのに10秒以上かかることはないため、以下のコマンドが失敗した場合は、他の問題が発生している可能性があります。
を実行してサーバーが起動していることを確認します
curl -X GET 'http://localhost:9200'
次の応答が表示されます
{
"ok" : true,
"status" : 200,
"name" : "Xavin",
"version" : {
"number" : "0.90.7",
"build_hash" : "36897d07dadcb70886db7f149e645ed3d44eb5f2",
"build_timestamp" : "2013-11-13T12:06:54Z",
"build_snapshot" : false,
"lucene_version" : "4.5.1"
},
"tagline" : "You Know, for Search"
}
上記のような応答が表示された場合、Elasticsearchは正常に機能しています。 または、次のWebサイトにアクセスして、ブラウザーからElasticsearchのインストールを照会することもできます。
zipまたはtar.gzアーカイブでインストールした場合は、RESTfulAPIを使用してサーバーを停止できます。
curl -X POST 'http://localhost:9200/_cluster/nodes/_local/_shutdown'
上記のコマンドは、Debianパッケージを使用してElasticsearchをインストールした場合にも機能しますが、service elasticsearch stop
を使用してサーバーを停止することもできます。 対応するservice elasticsearch start
を使用してサーバーを再起動できます。
Elasticsearchの使用
Elasticsearchが稼働しています。 次に、いくつかの基本的な構成と使用法について説明します。
基本構成
zipまたはtar.gzアーカイブでインストールした場合、構成ファイルは、結果のディレクトリ内のconfigフォルダーにあります。 Debianパッケージを介してインストールする場合、設定ファイルは/etc/elasticsearch/
にあります。 見つかる2つの構成ファイルはelasticsearch.ymlとlogging.ymlです。 1つ目は、一般的なElasticsearch構成です。 提供されたファイルにはコメントしか含まれていないため、デフォルト設定が使用されます。 ファイルを読むと、オプションの概要がわかりますが、以下にいくつかの提案をします。 設定は必要ありません。 以下を実行しなくてもElasticsearchを使用できますが、これは未加工の開発環境になります。
「cluster.name」の設定は、Elasticsearchが自動検出を提供する方法です。 これが意味するのは、同じネットワーク上のElasticsearchサーバーのグループが同じクラスター名を共有している場合、それらは自動的にお互いを検出するということです。 これはElasticsearchのスケーリングが非常に簡単ですが、デフォルトのクラスター名を維持し、ネットワーク上に制御できない他のElasticsearchサーバーがある場合、悪い状態になる可能性があることに注意してください。
基本的な使い方
Elasticsearchのインストールにデータを追加しましょう。 ElasticsearchはRESTfulAPIを使用します。これは、通常のCRUDコマンド(作成、読み取り、更新、破棄)に応答します。
エントリを追加するには
curl -X POST 'http://localhost:9200/tutorial/helloworld/1' -d '{ "message": "Hello World!" }'
次の応答が表示されます
{“ ok”:true、“ _ index”:“ tutorial”、“ _ type”:“ helloworld”、“ _ id”:“ 1”、“ _ version”:1}
私たちが行ったことは、HTTPPOSTリクエストをElasticserachサーバーに送信することです。 リクエストのURIは/tutorial / helloworld /1でした。 ここでパラメータを理解することが重要です。
- 「チュートリアル」は、Elasticsearchのデータのインデックスです。
- 「helloworld」はタイプです。
- 「1」は、上記のインデックスとタイプの下にあるエントリのIDです。
上記のcurlコマンドに対する応答を確認した場合は、次のデータをクエリできます。
curl -X GET 'http://localhost:9200/tutorial/helloworld/1'
で応答する必要があります
{"_index":"tutorial","_type":"helloworld","_id":"1","_version":1,"exists":true, "_source" : { "message": "Hello World!" }}
成功! Elasticsearchにデータを追加してクエリを実行しました。
注意すべき点の1つは、クエリに?pretty=true
を追加することで、より良い出力を取得できることです。 これを試してみましょう
curl -X GET 'http://localhost:9200/tutorial/helloworld/1?pretty=true'
どちらが応答する必要があります
{
"_index" : "tutorial",
"_type" : "helloworld",
"_id" : "1",
"_version" : 1,
"exists" : true, "_source" : { "message": "Hello World!" }
}
これははるかに読みやすいです。 Elasticsearch構成ファイルでformat=yaml
を設定している場合は、クエリ文字列を追加しなくても出力がきれいに出力されます。
結論
これで、Elasticsearchをインストール、構成し、使用を開始しました。 基本的なRESTfulAPIに応答するため。 アプリケーションからElasticsearchを使用して、データの追加とクエリを簡単に開始できるようになりました。