Elasticsearchは、Apache Luceneに基づくエンタープライズレベルのオープンソース検索サーバーであり、RESTfulWebインターフェイスとスキーマフリーのJSONドキュメントを使用してリアルタイムの分散検索と分析を提供します。 ElasticsearchはJavaで開発され、Apacheライセンスの下でリリースされています。現在、最も人気のあるエンタープライズ検索エンジンで、ApacheSolrに次ぐ2番目にランクされています。
このガイドは、Elasticsearchを CentOS 7にインストールするのに役立ちます / Ubuntu 16.04 / Linux Mint 18 。
前提条件
前に述べたように、 Elasticsearch Javaで開発されています。システムに最新のJDKがインストールされていることを確認してください。以下のチュートリアルに従って、LinuxにOracleJDKをインストールします。
読む : Ubuntu 16.04 / LinuxMint18にJavaJDK8をインストールする方法
読む : RHEL 7 /CentOS7にJavaSDK1.8をインストールする方法
システムにインストールされているJDKのバージョンを確認してください。
java -version
出力:
openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11) OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
Elasticsearchをインストールする
Elasticsearchは、公式Webサイトから直接ダウンロードできます。それ以上に、RHELおよびDebian派生物用のビルド済みのバイナリパッケージを提供します。
公開署名キーをダウンロードしてインストールします。
### Debian 9 / Ubuntu 16.04 & Linux Mint 18 ### $ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - ### RHEL 7 / CentOS 7 ### # rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Elasticsearchリポジトリを追加して有効にします。
### Debian 9 / Ubuntu 16.04 & Linux Mint 18 ### $ echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elk.list ### RHEL 7 / CentOS 7 ### # cat <<EOF >> /etc/yum.repos.d/elasticsearch.repo [elasticsearch-5.x] name=Elasticsearch repository for 5.x packages baseurl=https://artifacts.elastic.co/packages/5.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF
次のコマンドを使用してElasticsearchをインストールします。
### Debian 9 / Ubuntu 16.04 & Linux Mint 18 ### $ sudo apt-get update $ sudo apt-get install -y elasticsearch ### RHEL 7 / CentOS 7 ### # yum -y install elasticsearch
システムの起動中に自動起動するようにElasticsearchを設定します。
### Debian 9 / Ubuntu 16.04 & Linux Mint 18 ### $ sudo systemctl enable elasticsearch $ sudo systemctl start elasticsearch ### RHEL 7 / CentOS 7 ### # systemctl daemon-reload # systemctl enable elasticsearch # systemctl start elasticsearch
Elasticsearchの設定
Elasticsearchの設定ファイルは/etc/elasticsearch/ディレクトリにあります。その中には、elasticsearch.ymlとlogging.ymlの2つのファイルしか表示されませんでした。
logging.ymlはelasticsearchのログを管理し、ログファイルは/ var / log/elasticsearchディレクトリに保存されます。
Elasticsearch.ymlはelasticsearchのメイン構成ファイルであり、本番クラスターを実行するためのデフォルト設定が含まれています。
Elasticsearchは、デフォルトですべてのネットワークカード(0.0.0.0)にバインドし、HTTPトラフィックの場合はポート番号9200〜9300で、内部ノード間通信の場合は9300〜9400でリッスンします。範囲は、ポートがビジーの場合、ポートがビジーであることを意味します。自動的に次のポートを試します。
Elasticsearch.ymlファイルを編集します。
# vi /etc/elasticsearch/elasticsearch.yml
Elasticsearchに特定のIPをリッスンさせるには、次の構文にIPアドレスを配置します。パブリックアクセスからelasticsearchを保護するために、ローカルホストでリッスンするように設定できます。
### Listening on particular IPv4 ### network.bind_host: 192.168.0.1 ### Disabling public access ### network.bind_host: 127.0.0.1
Elasticsearchサービスを再起動します。
# service elasticsearch restart
再起動したら、Elasticsearchが完全に開始されるまで少なくとも1分待ちます。そうしないと、テストは失敗します。 Elastisearchは、HTTPリクエストを処理するために9200をリッスンしているはずです。 CURLを使用して応答を取得します。
# curl -X GET 'http://localhost:9200'
以下のような応答が得られるはずです。
{ "name" : "gf5QYAn", "cluster_name" : "elasticsearch", "cluster_uuid" : "S6gZNkMERpSr-MGXqEFUJw", "version" : { "number" : "5.5.2", "build_hash" : "b2f0c09", "build_date" : "2017-08-14T12:33:14.154Z", "build_snapshot" : false, "lucene_version" : "6.6.0" }, "tagline" : "You Know, for Search" }
または、ブラウザを使用してElasticsearchにクエリを実行することもできます。 curlを使用して見たのと同じように表示されるはずです。
Elasticsearchクラスター
クラスター名
設定cluster.name は他のノードを検出して自動参加するために使用されます。同じネットワーク上のElasticsearchサーバーのグループが同じクラスター名を持っている場合、それらはお互いを検出します。制御下にない同じネットワーク上の他のサーバーの自動参加を回避するために、Elasticsearchサーバーのデフォルトのクラスター名を必ず変更してください。
同じネットワーク上で複数のElasticsearchクラスターを実行している場合は、一意のクラスター名を使用していることを確認してください。
cluster.name:<NAME OF YOUR CLUSTER>
ノード名
ノード名はElasticsearchサーバーのホスト名のようなもので、サービスの起動時に動的に生成されます。次の構文を設定することで、独自の名前を設定できます。
node.name: "<NAME OF YOUR NODE>"
Elasticsearchサービスを再起動することを忘れないでください。
# service elasticsearch restart
Elasticsearchの使用
Elasticsearchにデータを追加しましょう。 curlを使用して、RESTfulAPIを使用してポート9200を介してElasticsearchと通信できます。カールを使用すると、APIを使用してデータの読み取り、追加、削除、更新を行うことができます。ドキュメントは次の形式で保存されます
Elasticsearch⇒インデックス⇒タイプ⇒ドキュメント⇒フィールド
インデックス =複数のインデックス。Elasticsearchのデータが保存されます。
タイプ =複数のドキュメントが含まれています。これはデータの種類のようなものです。
ドキュメント =データフィールドが含まれています。
フィールド =実際の詳細データ。
追加
次のcurlコマンドを使用して、Elasticsearchにデータを追加します。
# curl -X POST 'http://localhost:9200/itzgeek/howtos/1' -d '{ "Title" : "Installing Elasticsearch", "Date" : "March 2015", "Tag" : "Ubuntu,CentOS,LinuxMint" }'
次の応答が返されます。
{"_index":"itzgeek","_type":"howtos","_id":"1","_version":1,"created":true}
どこ
「itzgeek」 Elasticsearchクラスターのインデックスです。
「ハウツー」 ドキュメントの種類です
「1」 howtosおよびitzgeekインデックスの下のエントリのIDです。
読む
次のコマンドを使用して、Elasticsearchのデータをクエリできます。
# curl -X GET 'http://localhost:9200/itzgeek/howtos/1'
フォーマットされた出力を取得するには、?pretty=trueを追加します。
# curl -X GET 'http://localhost:9200/itzgeek/howtos/1?pretty=true'
出力は次のようになります。
{ "_index" : "itzgeek", "_type" : "howtos", "_id" : "1", "_version" : 1, "found" : true, "_source":{ "Title" : "Installing Elasticsearch", "Date" : "March 2015", "Tag" : "Ubuntu,CentOS,LinuxMint" } }
更新
ドキュメント全体を更新するには、次のPOSTコマンドを使用します。インデックス、タイプ、およびドキュメントに変更はありません。フィールドには変更されたデータが含まれます。
# curl -X POST 'http://localhost:9200/itzgeek/howtos/1' -d '{ "Title" : "Installing LogStash", "Date" : "March 2015", "Tag" : "Ubuntu,CentOS,LinuxMint" }'
応答は次のようになり、 version:2が含まれている必要があります およびcreated:false ;ドキュメントが更新されたことを意味します。
{"_index":"itzgeek","_type":"howtos","_id":"1","_version":2,"created":false}
削除
次のコマンドを使用して、ドキュメントを削除します。
# curl -X DELETE 'http://localhost:9200/itzgeek/howtos/1'
応答は以下のようになります。ドキュメントが見つかった場合は、 found:trueになります および増分バージョン 。
{"found":true,"_index":"itzgeek","_type":"howtos","_id":"1","_version":3}
ドキュメントが見つからない場合は、 found:falseが表示されます および増分バージョン 。
{"found":false,"_index":"itzgeek","_type":"howtos","_id":"1","_version":4}
これですべてです。Ubuntu14.10/RHEL7 / LinuxMint17にElasticsearchを正常にインストールして構成しました。
リンク:
Elasticsearch =elastisearch.org
SetupGuide=ガイド