もっと詳しく

あなたはあなたのウェブサイトのパフォーマンスを最適化して改善する方法を探していますか? インストールしてみませんか Elasticsearch Ubuntuで? Elasticsearchは強力なオープンソースの検索エンジンであり、大量のデータのインデックス作成と検索をすばやく簡単に行うことができます。

この記事では、UbuntuにElasticsearchをインストールして、Webサイトのパフォーマンスを向上させる方法を学びます。

あなたが想像もしなかったようにあなたのウェブサイトを最適化する方法を見つけるために読んでください!

前提条件

このチュートリアルは、実践的なデモンストレーションになります。 フォローしたい場合は、次のものがあることを確認してください。

  • Ubuntuサーバー。 このチュートリアルでは、Ubuntu20.04を使用します。
  • のユーザーアカウント 特権。 これは冗長に示していますが sudo とともに root アカウント、通常は sudo 特権の少ないアカウントにのみ必要です。

UbuntuへのJavaのインストール

Elasticsearchを入手する前に、まずサーバーにJavaをインストールする必要があります。 Elasticsearchを実行するにはJavaのインストールが必要です。

オープンソースのJavaDevelopmentKit(JDK)であるOpenJDKをインストールします。 このJDKは、Elasticsearchに推奨されるJava開発環境です。

Elasticsearchの後にJavaをインストールすることは可能ですが、最初にJavaをインストールすることがベストプラクティスです。 そうすることで、環境が正しくセットアップされ、予期しないエラーが発生しないことが保証されます。

UbuntuマシンにJavaをインストールするには:

1.を実行します aptアップデート Ubuntuパッケージリポジトリが最新であることを確認するコマンド。

2.次に、 aptインストール OpenJDKをインストールするコマンド(default-jdk)。

Javaは他の方法でインストールできますが、UbuntuにJavaをインストールするには、aptパッケージマネージャーを使用することをお勧めします。 aptは、必要なすべての依存関係がインストールされていることを確認します。

sudo apt install default-jdk -y
OpenJDKのインストール
OpenJDKのインストール

3.最後に、以下のコマンドを実行して、インストールされているJavaのバージョンを確認します。

この記事の執筆時点では、以下の最新バージョンは11.0.14.1ですが、実際のバージョンとは異なる場合があります。 この出力は、Javaが正しくインストールされていることを示しています。

インストールされているJavaバージョンの確認
インストールされているJavaバージョンの確認

UbuntuにElasticsearchをインストールする

Javaがインストールされたので、サーバーにElasticsearchをインストールできます。 ElasticsearchはUbuntuリポジトリでは利用できないため、サードパーティのソースからインストールします。

1.を実行します apt-get install 以下のコマンドを使用して、apt-transport-httpsパッケージをインストールします。 このパッケージは、Ubuntuサーバーとパッケージリポジトリ間の通信を保護します。

sudo apt-get install apt-transport-https -y
apt-transport-httpsパッケージのインストール
apt-transport-httpsパッケージのインストール

2.次に、以下のcurlコマンドを実行して、Elasticsearch GPGキーをシステムに追加します(apt-keyadd)。 このキーは、Elasticsearchパッケージの信頼性を検証するために使用されます。

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
ElasticsearchGPGキーの追加
ElasticsearchGPGキーの追加

3. GPGキーを追加した後、以下のコマンドを実行して、最新のElasticsearchリポジトリ(https://artifacts.elastic.co/packages/7.x/apt stable main)をシステムに追加します。

-aフラグは、テキストを/etc/apt/sources.list.d/elastic-7.x.listファイルに追加するために使用されます。 Elastic-7.x.listファイルは、リポジトリのリストを含むファイルのリストであり、aptはインストールするパッケージを探します。

訪問 Elasticsearchリポジトリ Elasticsearchのバージョンが異なる他のリポジトリを見つけるためのページ

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

リポジトリはシステムに追加されますが、apt-cacheを更新するまで新しいリポジトリは使用できません。

Elasticsearchリポジトリの追加
Elasticsearchリポジトリの追加

4.ここで、 aptアップデート 以下のコマンドを使用して、apt-cacheを更新します。

以下の出力で、Elasticsearchリポジトリがシステムに追加されていることがわかります。

apt-cacheを更新する
apt-cacheを更新する

5.最後に、 aptインストール 以下のコマンドを使用して、Elasticsearchをサーバーにインストールします。

sudo apt install elasticsearch -y
UbuntuにElasticsearchをインストールする
UbuntuにElasticsearchをインストールする

Elasticsearchの設定

Elasticsearchを完全にインストールしましたが、Elasticsearchを使用する前に構成する必要があります。 Elasticsearchのメイン設定ファイル(Elasticsearch.yml)はにあります / etc / elasticsearch ディレクトリ。

利用可能なすべての構成オプションは、 Elasticsearch.yml ファイル、およびそれらのほとんどは事前設定されています。 ただし、必要に応じてそれらの一部を変更する必要がある場合があります。 また、このチュートリアルでは、ネットワークホストの設定のみを調整します。

1.お気に入りのテキストエディタでelasticsearch.ymlファイルを開きます。

sudo nano /etc/elasticsearch/elasticsearch.yml

2.以下に示すように、network.hostを読み取る行まで下にスクロールします。

network.host行を検索しています
network.host行を検索しています

3.先頭の#記号を削除し、その値をlocalhostに置き換えて、network.host行のコメントを解除します。 そうすることで、Elasticsearchインスタンスへの外部アクセスを制限することでセキュリティが向上します。

変更を保存して、エディターを終了します。

このドキュメントに冗長なスペースがあると、解析の問題が発生し、エラーが発生することに注意してください。 行の最初と最後に余分なスペースを追加せず、間にスペースのみを使用してください 辞書のキーと値

elasticsearch.ymlファイルの編集
elasticsearch.ymlファイルの編集

4.次に、以下の各systemctlコマンドを実行してデーモンをリロードし、elasticsearchサービスを再起動して、変更を有効にします。

これらのコマンドには出力がありません。 ただし、この時点で、ポート9200のElasticsearchインスタンスは、ローカルネットワーク上のマシンからのトラフィックのみを許可するように構成されています。

ポート9200では、Elasticsearchはデフォルトでどこからでもトラフィックをリッスンします。

# Reload deamon
sudo systemctl daemon-reload
# Restart the elasticsearch service
sudo systemctl restart elasticsearch

5.以下のコマンドを実行してelasticsearchサービスを開始し、サービスが実行されていることを確認します。


sudo systemctl start elasticsearch
systemctl status elasticsearch

以下に示すように、Elasticsearchサービスは、アクティブ(実行中)を示すステータスで開始する必要があります。

Elasticsearchサービスの開始
Elasticsearchサービスの開始

6.最後に、以下を実行します netstat Elasticsearchサーバーがポート9200のローカルホストインターフェイスでリッスンしていることを確認するコマンド。

netstat -plntu | grep "9200"

以下に示すように、Elasticsearchプロセスが実行され、ポート9200のIPv6とIPv4の両方のループバックインターフェイスでリッスンしていることがわかります。 18718 / javaは、ElasticsearchプロセスのプロセスID(PID)です。

Elasticsearchサーバーがローカルホストでリッスンしていることを確認する
Elasticsearchサーバーがローカルホストでリッスンしていることを確認する

UFWファイアウォールを使用したElasticsearchの保護

Elasticsearchサービスが稼働しているので、当然、Elasticsearchのインストールを保護する必要があります。 しかし、どのように? UbuntuのデフォルトのファイアウォールであるUFWは十分に強力であり、十分なはずです。

Elasticsearchサーバーには、ローカルネットワークからのみアクセスできます。これは、開発者およびテスト環境には十分です。 ただし、本番環境では、特定のホストからのみElasticsearchへのアクセスを許可する必要があります。

たとえば、Webサイトが192.168.1.100のサーバーで実行されていても、ネットワーク上の192.168.1.200の別のマシンからElasticsearchデータにアクセスしたい場合があります。 192.168.1.200からのトラフィックのみを許可するルールを追加できます。

次のコマンドを実行してUFWルールを追加し、 192.168.1.200 ポート上のElasticsearchインスタンスに 9200。 IPを交換してください 192.168.1.200 トラフィックを許可するアドレス。

sudo ufw allow from 192.168.1.200 to any port 9200
192.168.1.200からのトラフィックを許可する
192.168.1.200からのトラフィックを許可する

今、実行します ufw status 以下のコマンドを使用して、UFWファイアウォールのステータスを確認してください。

以下の出力は、追加したルールがアクティブであることを示しています。

UFWファイアウォールのステータスを確認する
UFWファイアウォールのステータスを確認する

おそらく、ルールを削除したいでしょう。 その場合は、次のコマンドを実行します。 ファイアウォールを強化し続けるために、未使用のルールを削除することを強くお勧めします。 それに応じてIP_ADDを置き換えます。 sudo ufw delete permit from IP_ADD to any port 9200

Elasticsearchを使用したドキュメントの検索

これでElasticsearchのインストールは安全になりました。お気軽に使用を開始し、 curl -XGET 指図。 ただし、最初に、Elasticsearchインストールの問題をデバッグするために使用できるElasticsearchクラスター内のノード情報をフェッチします。

1.以下のcurlコマンドのいずれかを実行して、Elasticsearchクラスター内のノードに関する情報(-XGET)を人間が読める形式またはYAML形式で取得します。

# Get information about the nodes in your Elasticsearch cluster in human-readable format
curl -XGET 'http://localhost:9200/_nodes?pretty' 
# Get information about the nodes in your Elasticsearch cluster in YAML format
curl -XGET 'http://localhost:9200/_nodes?format=yaml'

JSON形式を選択すると、以下のような出力が表示されます。 以下のJSON出力を使用して、Elasticsearchのインストールに関する問題をデバッグできます。

Elasticsearchクラスターでのノード情報の取得(JSON形式)
Elasticsearchクラスターでのノード情報の取得(JSON形式)

YAML形式を選択すると、代わりに以下の出力が得られます。

Elasticsearchクラスターでのノード情報の取得(YAML形式)
Elasticsearchクラスターでのノード情報の取得(YAML形式)

2.次に、以下のcurlコマンドを実行して、ataというインデックスを追加します。 Elasticsearchのインデックスは、MySQLなどのリレーショナルデータベースの「データベース」のようなものです。

このコマンドは、JSONドキュメント(application / json)をataインデックスに追加し、検索可能にします。 1は、ataインデックス内のドキュメントの一意の識別子です。

インデックス内のドキュメントは通常、JSON(JavaScript Object Notation)形式で保存されます。 たとえば、eコマースWebサイトには、製品データに関連する1つのインデックスと、顧客データに関連する別のインデックスを含めることができます。

curl -H 'Content-Type: application/json' -X POST 'http://localhost:9200/ata/task/1' -d '{ "name": "Go to the mall." }'
ataと呼ばれるインデックスの追加
ataと呼ばれるインデックスの追加

インデックス名は小文字のみである必要があることに注意してください。 インデックス名に大文字を使用することはできません。、/、*、?、“、<、>、|、 “(スペース文字)などの特殊文字についても同様です。 無効な名前でインデックスを作成しようとすると、次のようなエラーメッセージが表示されます。

インデックス命名エラーの取得
インデックス命名エラーの取得

3.次のcurlコマンドを実行して、ステップ2で作成したばかりのドキュメントを、より簡潔で人間が読める形式のJSON出力(?pretty)で検索します。

curl -X GET 'http://localhost:9200/ata/task/1?pretty'

次のようなJSON形式の出力が表示されます。

ataインデックスを検索する
ataインデックスを検索する

4.次に、以下のコマンドを実行して、「スーパーマーケットに行く」を使用してataインデックスに新しい値を入力します。

PUTコマンドは、同じIDを指定している限り、既存のドキュメントのデータを置き換えます。

curl -X PUT "localhost:9200/ata/task/1?pretty" -H 'Content-Type: application/json' -d'
{
"name": "Go to the supermarket"
}
'

今回はバージョン番号が2であることがわかります。インデックスに新しいドキュメントを追加すると、Elasticsearchは_versionフィールドを1に設定します。ドキュメントを更新すると、Elasticsearchは_versionフィールドを2に設定します。

ドキュメントを更新するたびに、バージョン番号が1ずつ増加します。 この動作により、ドキュメントに加えられた変更を追跡できます。

既存のドキュメントを更新する
既存のドキュメントを更新する

5.以下のコマンドを実行して、ataインデックスを削除します。 未使用のインデックスを削除すると、ディスク容量を節約できます。

このコマンドは、ドキュメント、シャード、メタデータなど、指定された未使用のインデックスに関連するすべてのものを削除します。 したがって、このコマンドを使用する前に注意してください。

curl -X DELETE "localhost:9200/ata?pretty"
ataインデックスを削除する
ataインデックスを削除する

6.最後に、以下のコマンドを実行して、ataインデックスがまだ使用可能かどうかを確認します。

curl -X GET 'http://localhost:9200/ata?pretty'

以下に示すように、404「見つかりません」というメッセージが表示されます。これは、ataインデックスが正常に削除されたことを示します。

ataインデックスが削除されたことを確認する
ataインデックスが削除されたことを確認する

結論

この記事では、UbuntuにElasticsearchをインストールする方法を学びました。 インデックスにドキュメントを追加し、ドキュメントを更新し、未使用のインデックスを削除しました。

Elasticsearchは、JSONおよびYAML形式で人間が読める形式の出力を提供する単なる検索エンジンではありません。 多くのデータアナリスト、DevOpsエキスパート、およびマーケティングプロフェッショナルは、Elasticsearchを定期的に使用しています。

Elasticsearchの旅はまだ始まったばかりです。 始めてみませんか スターウォーズ映画のテキスト分析を実行する 発見できる洞察を確認するには? 力があなたと共にありますように!

The post 次のレベルの検索のためにUbuntuにElasticsearchをインストールする appeared first on Gamingsym Japan.