あなたはあなたのウェブサイトのパフォーマンスを最適化して改善する方法を探していますか? インストールしてみませんか 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
3.最後に、以下のコマンドを実行して、インストールされているJavaのバージョンを確認します。
この記事の執筆時点では、以下の最新バージョンは11.0.14.1ですが、実際のバージョンとは異なる場合があります。 この出力は、Javaが正しくインストールされていることを示しています。
UbuntuにElasticsearchをインストールする
Javaがインストールされたので、サーバーにElasticsearchをインストールできます。 ElasticsearchはUbuntuリポジトリでは利用できないため、サードパーティのソースからインストールします。
1.を実行します apt-get install 以下のコマンドを使用して、apt-transport-httpsパッケージをインストールします。 このパッケージは、Ubuntuサーバーとパッケージリポジトリ間の通信を保護します。
sudo apt-get install apt-transport-https -y
2.次に、以下のcurlコマンドを実行して、Elasticsearch GPGキーをシステムに追加します(apt-keyadd)。 このキーは、Elasticsearchパッケージの信頼性を検証するために使用されます。
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
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を更新するまで新しいリポジトリは使用できません。
4.ここで、 aptアップデート 以下のコマンドを使用して、apt-cacheを更新します。
以下の出力で、Elasticsearchリポジトリがシステムに追加されていることがわかります。
5.最後に、 aptインストール 以下のコマンドを使用して、Elasticsearchをサーバーにインストールします。
sudo apt install elasticsearch -y
Elasticsearchの設定
Elasticsearchを完全にインストールしましたが、Elasticsearchを使用する前に構成する必要があります。 Elasticsearchのメイン設定ファイル(Elasticsearch.yml)はにあります / etc / elasticsearch ディレクトリ。
利用可能なすべての構成オプションは、 Elasticsearch.yml ファイル、およびそれらのほとんどは事前設定されています。 ただし、必要に応じてそれらの一部を変更する必要がある場合があります。 また、このチュートリアルでは、ネットワークホストの設定のみを調整します。
1.お気に入りのテキストエディタでelasticsearch.ymlファイルを開きます。
sudo nano /etc/elasticsearch/elasticsearch.yml
2.以下に示すように、network.hostを読み取る行まで下にスクロールします。
3.先頭の#記号を削除し、その値をlocalhostに置き換えて、network.host行のコメントを解除します。 そうすることで、Elasticsearchインスタンスへの外部アクセスを制限することでセキュリティが向上します。
変更を保存して、エディターを終了します。
このドキュメントに冗長なスペースがあると、解析の問題が発生し、エラーが発生することに注意してください。 行の最初と最後に余分なスペースを追加せず、間にスペースのみを使用してください 辞書のキーと値。
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サービスは、アクティブ(実行中)を示すステータスで開始する必要があります。
6.最後に、以下を実行します netstat Elasticsearchサーバーがポート9200のローカルホストインターフェイスでリッスンしていることを確認するコマンド。
netstat -plntu | grep "9200"
以下に示すように、Elasticsearchプロセスが実行され、ポート9200のIPv6とIPv4の両方のループバックインターフェイスでリッスンしていることがわかります。 18718 / javaは、ElasticsearchプロセスのプロセスID(PID)です。
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
今、実行します ufw status
以下のコマンドを使用して、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のインストールに関する問題をデバッグできます。
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." }'
インデックス名は小文字のみである必要があることに注意してください。 インデックス名に大文字を使用することはできません。、/、*、?、“、<、>、|、 “(スペース文字)などの特殊文字についても同様です。 無効な名前でインデックスを作成しようとすると、次のようなエラーメッセージが表示されます。
3.次のcurlコマンドを実行して、ステップ2で作成したばかりのドキュメントを、より簡潔で人間が読める形式のJSON出力(?pretty)で検索します。
curl -X GET 'http://localhost:9200/ata/task/1?pretty'
次のようなJSON形式の出力が表示されます。
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"
6.最後に、以下のコマンドを実行して、ataインデックスがまだ使用可能かどうかを確認します。
curl -X GET 'http://localhost:9200/ata?pretty'
以下に示すように、404「見つかりません」というメッセージが表示されます。これは、ataインデックスが正常に削除されたことを示します。
結論
この記事では、UbuntuにElasticsearchをインストールする方法を学びました。 インデックスにドキュメントを追加し、ドキュメントを更新し、未使用のインデックスを削除しました。
Elasticsearchは、JSONおよびYAML形式で人間が読める形式の出力を提供する単なる検索エンジンではありません。 多くのデータアナリスト、DevOpsエキスパート、およびマーケティングプロフェッショナルは、Elasticsearchを定期的に使用しています。
Elasticsearchの旅はまだ始まったばかりです。 始めてみませんか スターウォーズ映画のテキスト分析を実行する 発見できる洞察を確認するには? 力があなたと共にありますように!
The post 次のレベルの検索のためにUbuntuにElasticsearchをインストールする appeared first on Gamingsym Japan.