https://www.linuxcapable.com/ja/how-to-install-elasticsearch-on-rocky-linux-8/
Rocky Linux8にElasticsearchをインストールする方法
最終更新日:30年2021月XNUMX日土曜日 by ジョシュアジェームズ
Elasticsearch 非常にスケーラブルなオープンソースです 全文検索および分析エンジン。 このソフトウェアは、大量のデータを迅速かつほぼリアルタイムで保存、検索、分析できるRESTful操作をサポートしています。 Elasticsearch Luceneライブラリに基づく強力な検索エンジンであるため、システム管理者や開発者の間で人気があり、人気があります。 一般に、複雑な検索機能と要件を備えたアプリケーションを強化するのは、基盤となるエンジン/テクノロジーです。
次のチュートリアルでは、 Rocky Linux8にElasticSearchをインストールする方法.
目次
必須条件
オペレーティングシステムの更新
Curlをインストールする
Javaをインストールする
弾性検索をインストールする
Elasticsearchを構成する方法
リモートアクセスの設定(オプション)
Elasticsearch用にFirewalldを構成する
Elasticsearchの使用方法
インデックスを削除する
すべてのインデックスを一覧表示
すべてのドキュメントをインデックスに一覧表示します
URLパラメータを使用したクエリ
JSONを使用したクエリ(別名ElasticsearchクエリDSL)
リストインデックスマッピング
データを追加
ドキュメントの更新
バックアップインデックス
JSON形式でデータを一括ロード
クラスターの状態を表示する
集約とバケット集約
基本認証でのElasticSearchの使用
プリティプリント
特定のフィールドのみをクエリして返すには
日付でクエリするには
Elasticsearchをアンインストールします
コメントと結論
必須条件
推奨OS: Rocky Linux 8. +.
ユーザーアカウント: sudoまたはrootアクセス権を持つユーザーアカウント。
必要なパッケージ: カール、ジャワ
オペレーティングシステムの更新
あなたの更新 ロッキーLinux 既存のすべてのパッケージが最新であることを確認するためのオペレーティングシステム:
sudo dnf upgrade –refresh -y
チュートリアルでは、 sudoコマンド 及び sudoステータスがあると仮定します.
アカウントのsudoステータスを確認するには:
sudo whoami
sudoステータスを示す出力例:
[joshua@rockylinux ~]$ sudo whoami
root
既存または新規のsudoアカウントを設定するには、次のチュートリアルにアクセスしてください。 RockyLinuxのSudoersにユーザーを追加する方法.
使用するには rootアカウント、rootパスワードを指定して次のコマンドを使用してログインします。
su
Curlをインストールする
カール このガイドの一部に必要です。 このパッケージをインストールするには、次のコマンドを入力します。
sudo dnf install curl -y
Javaをインストールする
正常にインストールし、さらに重要なことに、を使用するには Elasticsearch、あなたはインストールする必要があります Java。 プロセスは比較的簡単です。
次のコマンドを入力して、 OpenJDK パッケージ:
sudo dnf install java-11-openjdk-devel -y
インストールされる依存関係の例:
Rocky Linux8にElasticsearchをインストールする方法
種類 「Y」、 それから “キーを入力してください” インストールを続行します。
最新バージョンのJava16をご希望の場合は、次のガイドをご覧ください。 Rocky Linux16にJava16(OpenJDK 8)をインストールする方法.
次のコマンドを使用して、Javaが正常にインストールされたことを確認します。
java -version
出力例
openjdk version “11.0.12” 2021-07-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.12+7-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.12+7-LTS, mixed mode, sharing)
弾性検索をインストールする
Elasticsearchは利用できません 標準のRockyLinux8アプリストリーム、からインストールする必要があります ElasticsearchRPMリポジトリ.
リポジトリを追加する前に、 GPGキー 次のコマンドを入力します。
sudo rpm –import https://artifacts.elastic.co/GPG-KEY-elasticsearch
次のステップは、Elasticsearchリポジトリファイルを次のように作成することです。
sudo nano /etc/yum.repos.d/elasticsearch.repo
ファイル内に入ると、次の行を追加します。
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
保存する (CTRL + O)、 その後終了します (CTRL + X).
次のコマンドを使用してElasticsearchをインストールします。
sudo dnf install elasticsearch
出力例
Rocky Linux8にElasticsearchをインストールする方法
種類 「Y」次に、 “キーを入力してください” インストールを続行するには
デフォルトでは、Elasticsearchサービスは起動時に無効になり、アクティブではありません。 サービスを開始し、システムの起動時に有効にするには、次のように入力します (systemctl) コマンド:
sudo systemctl enable elasticsearch.service –now
出力例
Executing: /usr/lib/systemd/systemd-sysv-install enable elasticsearch
Created symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service → /usr/lib/systemd/system/elasticsearch.service.
Elasticsearchが正しく実行されていることを確認します。 を使用します curl 送信するコマンド HTTPリクエスト 〜へ ポート9200 on ローカルホスト 次のように:
curl -X GET “localhost:9200/”
出力例
Rocky Linux8にElasticsearchをインストールする方法
Elasticsearchがシステムに記録するシステムメッセージを表示するには、次のコマンドを入力します。
sudo journalctl -u elasticsearch
出力ログの例:
— Logs begin at Sat 2021-08-21 01:54:10 EDT, end at Sat 2021-08-21 02:11:00 EDT. —
Aug 21 02:09:17 localhost.localdomain systemd[1]: Starting Elasticsearch…
Aug 21 02:09:43 localhost.localdomain systemd[1]: Started Elasticsearch.
Elasticsearchを構成する方法
Elasticsearchデータはデフォルトのディレクトリの場所に保存されます (/ var / lib / elasticsearch)。 構成ファイルを表示または編集するには、ディレクトリの場所にあります。 (/ etc / elasticsearch)、およびjava起動オプションは、で構成できます。 (/ etc / default / elasticsearch) 設定ファイル
Elasticsearchはで実行されるため、デフォルト設定は主に単一のオペレーティングサーバーに適しています ローカルホスト それだけ。 ただし、クラスターをセットアップする場合は、リモート接続を許可するように構成ファイルを変更する必要があります。
リモートアクセスの設定(オプション)
デフォルトでは、Elasticsearchはlocalhostのみをリッスンします。 これを変更するには、次のように構成ファイルを開きます。
sudo nano /etc/elasticsearch/elasticsearch.yml
下にスクロールします ライン56 ネットワークセクションを見つけて コメント解除(#) 次の行を次のように内部プライベートIPアドレスまたは外部IPアドレスに置き換えます。
Rocky Linux8にElasticsearchをインストールする方法
この例では、コメントを外しました (#) が待 (network.host) 上記のように内部プライベートIPアドレスに変更しました。
セキュリティ上の理由から、アドレスを指定するのに理想的です。 ただし、サーバーに複数の内部または外部IPアドレスがヒットしている場合は、ネットワークインターフェイスを変更して、入力してすべてをリッスンします。 (0.0.0.0) 次のように:
Rocky Linux8にElasticsearchをインストールする方法
構成ファイルを保存します (CTRL + O)、 その後終了します (CLTR + X).
変更を有効にするには、次のコマンドを使用してElasticsearchサービスを再起動する必要があります。
sudo systemctl restart elasticsearch
Elasticsearch用にFirewalldを構成する
デフォルトでは、Elasticsearchにルールが設定されていないため、問題が発生する可能性があります。
まず、Elasticsearchのfirewalldポリシー用の新しい専用ゾーンを追加します。
sudo firewall-cmd –permanent –new-zone=elasticsearch
次に、Memcachedへのアクセスを許可する許可されたIPアドレスを指定します。
sudo firewall-cmd –permanent –zone=elasticsearch –add-source=1.2.3.4
1.2.3.4をIPに置き換えます 許可リストに追加されるアドレス。
IPアドレスの追加が完了したら、Memcachedのポートを開きます。
たとえば、 TCPポート11211.
sudo firewall-cmd –permanent –zone=elasticsearch –add-port=9200/tcp
上記のファイアウォールポートオープンルールを新しい値に変更すると、構成ファイルのデフォルトポートを変更できることに注意してください。
これらのコマンドを実行した後、ファイアウォールをリロードして新しいルールを実装します。
sudo firewall-cmd –reload
成功した場合の出力例:
success
Elasticsearchの使用方法
を使用してElasticsearchを使用するには カールコマンド 簡単なプロセスです。 以下は、最も一般的に使用されるものの一部です。
インデックスを削除する
インデックスの下には名前が付けられています サンプル.
curl -X DELETE ‘http://localhost:9200/samples’
すべてのインデックスを一覧表示
curl -X GET ‘http://localhost:9200/_cat/indices?v’
すべてのドキュメントをインデックスに一覧表示します
curl -X GET ‘http://localhost:9200/sample/_search’
URLパラメータを使用したクエリ
ここでは、Luceneクエリ形式を使用してq = school:Harvardを記述します。
curl -X GET http://localhost:9200/samples/_search?q=school:Harvard
JSONを使用したクエリ(別名ElasticsearchクエリDSL)
URLのパラメータを使用してクエリを実行できます。 ただし、次の例に示すように、JSONを使用することもできます。 複雑なクエリがある場合、URLパラメータのXNUMXつの巨大な文字列よりも、JSONの読み取りとデバッグが簡単になります。
curl -XGET –header ‘Content-Type: application/json’ http://localhost:9200/samples/_search -d ‘{
“query” : {
“match” : { “school”: “Harvard” }
}
}’
リストインデックスマッピング
すべてのElasticsearchフィールドはインデックスです。 したがって、これにより、インデックス内のすべてのフィールドとそのタイプが一覧表示されます。
curl -X GET http://localhost:9200/samples
データを追加
curl -XPUT –header ‘Content-Type: application/json’ http://localhost:9200/samples/_doc/1 -d ‘{
“school” : “Harvard”
}’
ドキュメントの更新
既存のドキュメントにフィールドを追加する方法は次のとおりです。 まず、新しいものを作成します。 次に、それを更新します。
curl -XPUT –header ‘Content-Type: application/json’ http://localhost:9200/samples/_doc/2 -d ‘
{
“school”: “Clemson”
}’
curl -XPOST –header ‘Content-Type: application/json’ http://localhost:9200/samples/_doc/2/_update -d ‘{
“doc” : {
“students”: 50000}
}’
バックアップインデックス
curl -XPOST –header ‘Content-Type: application/json’ http://localhost:9200/_reindex -d ‘{
“source”: {
“index”: “samples”
},
“dest”: {
“index”: “samples_backup”
}
}’
JSON形式でデータを一括ロード
export pwd=”elastic:”
curl –user $pwd -H ‘Content-Type: application/x-ndjson’ -XPOST ‘https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/0/_bulk?pretty’ –data-binary @<file>
クラスターの状態を表示する
curl –user $pwd -H ‘Content-Type: application/json’ -XGET https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/_cluster/health?pretty
集約とバケット集約
Nginx Webサーバーの場合、これによりユーザー都市ごとのWebヒット数が生成されます。
curl -XGET –user $pwd –header ‘Content-Type: application/json’ https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d ‘{
“aggs”: {
“cityName”: {
“terms”: {
“field”: “geoip.city_name.keyword”,
“size”: 50
}
}
}
}
‘
これにより、NginxWebサーバーログ内の町の製品応答コード数に拡張されます
curl -XGET –user $pwd –header ‘Content-Type: application/json’ https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d ‘{
“aggs”: {
“city”: {
“terms”: {
“field”: “geoip.city_name.keyword”
},
“aggs”: {
“responses”: {
“terms”: {
“field”: “response”
}
}
}
},
“responses”: {
“terms”: {
“field”: “response”
}
}
}
}’
基本認証でのElasticSearchの使用
ElasticSearchでセキュリティをオンにしている場合は、以下に示すようなユーザーとパスワードをすべてのcurlコマンドに指定する必要があります。
curl -X GET ‘http://localhost:9200/_cat/indices?v’ -u elastic:(password)
プリティプリント
JSONをきれいに印刷するには、検索に?pretty = trueを追加します。 このような:
curl -X GET ‘http://localhost:9200/(index)/_search’?pretty=true
特定のフィールドのみをクエリして返すには
特定のフィールドのみを返すには、それらを_source配列に入れます。
GET filebeat-7.6.2-2020.05.05-000001/_search
{
“_source”: [“suricata.eve.timestamp”,”source.geo.region_name”,”event.created”],
“query”: {
“match” : { “source.geo.country_iso_code”: “GR” }
}
}
日付でクエリするには
フィールドのタイプがdateの場合、次のように日付計算を使用できます。
GET filebeat-7.6.2-2020.05.05-000001/_search
{
“query”: {
“range” : {
“event.created”: {
“gte” : “now-7d/d”
}
}
}
}
Elasticsearchをアンインストールします
Elasticsearchが不要になった場合は、次のコマンドでソフトウェアを削除できます。
sudo dnf autoremove elasticsearch
コメントと結論
Elasticsearchの公式リポジトリからElasticsearchをRockyLinux 8にインストールし、チュートリアルで基本を構成する方法を学びました。 全体として、ElasticSearchには多くの人気のある機能があり、チュートリアルの冒頭で言及したものもあれば、ユーザーがXNUMXつのクエリを使用してさまざまなフィールドを検索できるようにする機能もあります。 ElasticSearchは、卓越したレベルのシャーディングを提供します。これは、水平方向のスケーラビリティを意味し、負荷が増加してもパフォーマンスを向上させます。
詳細については、公式をご覧ください ドキュメントページ.

コメント