Elasticsearchは、Javaで記述された強力な本番環境対応の検索エンジンです。 Webのスタンドアロン検索エンジンとして、またはeコマースWebアプリケーションの検索エンジンとして使用できます。
eBay、Facebook、およびNetflixは、このプラットフォームを使用している企業の一部です。 Elasticsearchは、単なる検索エンジンではないため、非常に人気があります。また、強力な分析エンジンであり、ログ管理および取得システムでもあります。それについての最もよい部分は、それがオープンソースであり、自由に使用できることです。 Kibanaは、elasticが提供する視覚化ツールです。
このチュートリアルでは、Elasticsearchのインストール手順を実行した後、Kibanaをインストールします。次に、Kibanaを使用してデータを保存および取得します。
1Javaのインストール
ElasticsearchはJavaで記述されているため、最初にインストールする必要があります。以下のコマンドを使用して、JREおよびJDKのオープンソースバージョンをインストールします。
sudo apt-get install default-jre
sudo apt-get install default-jdk
これらの2つのコマンドは、最新のopen-jreとopen-jdkをシステムにインストールします。ここではJAVA8を使用します。次の画像は、Javaをインストールせずに上記のコマンドを実行した場合に得られる出力を示しています。
2Elasticsearchをインストールします
Elasticsearch5が最近リリースされました。以前のバージョンの2.xと比較して、いくつかの大幅な変更があります。この記事の執筆時点では、バージョン5.2.2が最新リリースであり、これをインストールする予定です。したがって、以下の手順に従ってインストールしてください。
mkdir elasticsearch; cd elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.deb
これにより、.debファイルのダウンロードが開始されます。下の画像のようになります:
ダウンロードが正常に完了したら、次のコマンドを実行してインストールできます。インストールが成功した場合の出力は次のとおりです。
sudo dpkg -i elasticsearch-5.2.2.deb
3Elasticsearchを構成して実行する
Elasticsearchはバックグラウンドプロセスとして実行されます。ただし、起動する前に、構成ファイルを編集して、現在のシステムをエンジンを実行しているホストとして追加する必要があります。次のコマンドを使用して、構成ファイルを開きます。
sudo gedit /etc/elasticsearch/elasticsearch.yml
エディターが開いたら、次の行のコメントを解除する必要があります:
#network.host: 192.168.0.1
次に、下の画像に示すように、IPをローカルホストに変更します。
これで、プロセスを実行する準備が整いました。次のコマンドを使用します:
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl restart elasticsearch
これらの3つのコマンドは、Elasticsearchプロセスをシステムデーモンに追加して、システムの起動時に自動的に起動し、プロセス自体を再起動するようにします。システムが稼働しているかどうかをテストするには、次のコマンドを使用します。出力は、以下に示す画像のようになります。
curl -XGET "http://localhost:9200"
4Kibanaをインストールする
次のコマンドを使用して、debファイルをダウンロードしてインストールします。
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.2.2-amd64.deb
sudo dpkg -i kibana-5.2.2-amd64.deb
2番目のコマンドの実行中に、既存のKibana構成ファイルを変更するように求められた場合は、Enterキーを押してデフォルトを維持し、競争を終了することができます。インストールすると、下の画像のようになります。
5Kibanaを構成して実行する
Kibana構成ファイルで、次の行のコメントを解除します。
server.port:
server.host:
server.name:
elasticsearch.name:
kibana.index:
次のコマンドを使用して、構成ファイルを開きます。変更を加えた後のファイルは、次の画像のようになります。
sudo gedit /etc/kibana/kibana.yml
「server.name」は何でもかまいませんので、自由に変更してください。これらの変更が行われたら、ファイルを保存して閉じます。最後に、Kibanaプロセスをシステムプロセスリストに追加して、システムが起動するたびに自動的に起動するようにします。次のコマンドを実行します:
sudo systemctl daemon-reload
sudo systemctl enable kibana
sudo systemctl start kibana
これらのコマンドを実行したら、ウェブブラウザを開き、次のURLを使用して正しくインストールされているかどうかをテストできます。下の画像は、どのように表示されるかを示しています。
http://localhost:5601
それでおしまい。これで、KibanaとElasticsearchが正常にインストールされました。
6基本的な使用法
Kibanaが提供する「DevTools」ユーティリティを使用して、Elasticsearchと通信できます。コマンドをJSONオブジェクトとして実行するためのクリーンでシンプルなインターフェイスを提供します。 RESTインターフェースを介してコアエンジンと対話します。
をクリックして「開発ツール」に移動します 左側のパネルにあるアイコン。次のURLを使用することもできます:
http://localhost:5601/app/kibana#/dev_tools/
ロードされると、UIの「WelcometoConsole」の概要が表示されます。それを読むか、「仕事に取り掛かる」をクリックするだけです。 「イントロの下部にあるボタン。そのボタンをクリックすると、UIは次の画像のようになります。
左側にコマンドを入力し、右側のパネルに出力を表示します。いくつかのデータを検索エンジンに送信して保存してみましょう。
6.1インデックスを作成する
データはインデックスに保存されます。インデックスを作成するには、PUTコマンドを使用します。リクエストJSONには、インデックスの名前と、提供できるいくつかのオプション設定が含まれます。次のコマンドは、「student」というインデックスを作成する例です。
PUT student
{
"settings": {
"number_of_shards": 3
}
}
これを「開発ツール」に入力し、横にある緑色の再生ボタンを押して実行できます。出力は次の画像のようになります:
6.2インデックスにデータを挿入する
POST呼び出しを使用して、インデックスにデータを挿入します。挿入されるデータはJSONの形式であるため、インデックスに生徒を追加してみましょう。コマンドは:
POST student/course
{
"name":"james",
"course": "mathematics"
}
上記のコマンドで、「course」はインデックス付けされているデータのタイプを示します。応答から、このエントリにも一意のIDがあることがわかります。以下のコマンドでは、「course」の後に別のパラメーターがあることがわかります。これは、この学生エントリのIDを指定する方法です。このように、elasticsearchはわざわざIDを作成することはありませんが、これをこのレコードのIDとして使用します。
POST student/course/2
{
"name":"tina",
"course": "physics"
}
以下は、両方のコマンドを実行したときの検索エンジンからの応答を示す画像です。
6.3インデックスからデータを取得
保存されたレコードまたはエントリからさまざまなフィールドのデータをフェッチすることもできます。前のステップで保存した各エントリは、Elasticsearchではドキュメントと呼ばれます。 GET呼び出しを使用して、インデックスからドキュメントをフェッチします。 「名前」フィールドを使用して1つのドキュメントを取得する方法は次のとおりです。
GET student/course/_search
{
"query": {
"term": {
"name": {
"value": "james"
}
}
}
}
このコマンドは、「学生」を検索します "タイプ"コースのドキュメントのインデックス "そして、用語をフィールド名" name と一致させようとします 「ジェームズ」という値を持つ「 "。インデックスにJamesという名前の生徒がいるため、下の画像に示すような応答が返されます。
これらは単なる基本でした。Elasticsearchで実行できることはたくさんあり、このフレームワークをマスターしてその機能を最大限に活用するには、多くの調査が必要です。