GNU/Linux >> Linux の 問題 >  >> AlmaLinux

AlmaLinux8にElasticsearchをインストールする方法

Elasticsearch は拡張性の高いオープンソースの全文検索および分析エンジンです。 。一般に、複雑な検索機能と要件を備えたアプリケーションを強化するのは、基盤となるエンジン/テクノロジーです。このソフトウェアは、大量のデータを迅速かつほぼリアルタイムで保存、検索、分析できるRESTful操作をサポートしています。 Elasticsearchは、Luceneライブラリに基づく強力な検索エンジンであるため、システム管理者や開発者の間で人気があり、人気があります。

次のチュートリアルでは、AlmaLinux8にElasticSearchをインストールする方法を学習します。 。

前提条件
  • 推奨OS: AlmaLinux8。
  • ユーザーアカウント: sudo特権を持つユーザーアカウント またはrootアクセス(suコマンド)

オペレーティングシステムの更新

AlmaLinuxを更新します 既存のすべてのパッケージが最新であることを確認するためのオペレーティングシステム:

sudo dnf upgrade --refresh -y

チュートリアルでは、sudoコマンドを使用します およびsudoステータスがあると仮定

アカウントのsudoステータスを確認するには:

sudo whoami

sudoステータスを示す出力例:

[joshua@localhost ~]$ sudo whoami
root

既存または新規のsudoアカウントを設定するには、AlmaLinuxでSudoersにユーザーを追加する方法のチュートリアルにアクセスしてください。 。

rootアカウントを使用するには 、rootパスワードを指定して次のコマンドを使用してログインします。

su

CURLパッケージのインストール

CURL このガイドの一部にはコマンドが必要です。このパッケージをインストールするには、次のコマンドを入力します。

sudo dnf install curl -y

Javaパッケージのインストール

正常にインストールし、さらに重要なことに、 Elasticsearchを使用するには 、 Javaをインストールする必要があります 。プロセスは比較的簡単です。

次のコマンドを入力して、 OpenJDKをインストールします パッケージ:

sudo dnf install java-11-openjdk-devel

インストールされる依存関係の例:

「Y」と入力します 次に、「ENTERキー」を押します。 インストールを続行します。

次のコマンドを使用して、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をインストールする

Elasticsearchは利用できません 標準のAlmaLinux8アプリストリーム 、したがって、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

出力例:

「Y」と入力します 、次に「ENTERキー」を押します インストールを続行するには

デフォルトでは、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.

curlコマンドを使用して、Elasticsearchが正しく実行されていることを確認します HTTPリクエストを送信するには ポート9200 ローカルホスト 次のように:

curl -X GET "localhost:9200/"

出力例:

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はlocalhostで実行されるため、デフォルト設定は主に単一のオペレーティングサーバーに適しています。 それだけ。ただし、クラスターをセットアップする場合は、リモート接続を許可するように構成ファイルを変更する必要があります。

リモートアクセスの設定(オプション)

デフォルトでは、Elasticsearchはlocalhostのみをリッスンします。これを変更するには、次のように構成ファイルを開きます。

sudo nano /etc/elasticsearch/elasticsearch.yml

56行目まで下にスクロールします ネットワークセクションを見つけて、コメント解除(#) 次の行を次のように内部プライベートIPアドレスまたは外部IPアドレスに置き換えます。

この例では、コメントを外しました(#) (network.host) 上記のように内部プライベートIPアドレスに変更しました。

セキュリティ上の理由から、アドレスを指定するのに理想的です。ただし、サーバーにアクセスする複数の内部または外部IPアドレスがある場合は、ネットワークインターフェイスを変更して、(0.0.0.0)を入力してすべてをリッスンします。 次のように:

構成ファイルを保存します(CTRL + O)、 次に、(CLTR + X)を終了します 。

変更を有効にするには、次のコマンドを使用してElasticsearchサービスを再起動する必要があります。

sudo systemctl restart elasticsearch

Elasticsearchの使用方法

curlコマンドを使用して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パラメータの1つの巨大な文字列よりも、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

出力例:

「Y」と入力します 、次に「ENTERキー」を押します Elasticsearchの削除を続行します。


AlmaLinux
  1. Debian9にElasticsearchをインストールする方法

  2. AlmaLinux8にMongoDBをインストールする方法

  3. AlmaLinux8にlighttpdをインストールする方法

  1. Almalinux8にPrestaShopをインストールする方法

  2. AlmaLinux8にNginxをインストールする方法

  3. AlmaLinux8にPython3.10をインストールする方法

  1. AlmaLinux8にMariaDB10.6をインストールする方法

  2. AlmaLinux8にPHP8.0をインストールする方法

  3. AlmaLinux8にNtopngをインストールする方法