GNU/Linux >> Linux の 問題 >  >> OpenSuse

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

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

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

前提条件

  • 推奨OS: openSUSE Leap – 15.x
  • ユーザーアカウント: sudoまたはrootアクセス権を持つユーザーアカウント。

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

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

sudo zypper refresh

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

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

sudo whoami

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

[joshua@opensuse ~]$ sudo whoami
root

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

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

su

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

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

sudo zyper install curl

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

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

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

sudo zypper install java-11-openjdk-devel

Elasticsearchをインストールする

Elasticsearchは利用できません 標準のopenSUSEリポジトリ 、したがって、Elasticsearchリポジトリからインストールする必要があります 。

リポジトリを追加する前に、GPGキーをインポートしてください 次のコマンドを使用します:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

次のステップは、次のようにElasticsearchリポジトリファイルを作成することです。

sudo zypper ar https://artifacts.elastic.co/packages/7.x/yum elasticsearch

次に、次のコマンドを使用してElasticsearchをインストールします。

sudo zypper install elasticsearch

出力例:

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

Elasticsearchをデフォルトで有効にするには、insservパッケージをインストールする必要があります 。

sudo zypper install insserv

デフォルトでは、Elasticsearchサービスは起動時に無効になり、アクティブではありません。サービスを開始してシステム起動時に有効にするには、次のように入力します(systemctl) コマンド:

sudo systemctl enable elasticsearch.service --now

出力例:

Synchronizing state of elasticsearch.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable elasticsearch

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

sudo curl http://localhost:9200?pretty

出力例:

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用にFirewallを設定する

デフォルトでは、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の使用方法

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 zypper remove elasticsearch

出力例:

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


OpenSuse
  1. OpenSUSELeap15.3にMongodb5をインストールする方法

  2. MysqlServer8をOpenSUSELeap15.3にインストールする方法

  3. OpenSUSELeap15.3にJava17をインストールする方法

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

  2. OpenSUSE Leap42.1KDEデスクトップをインストールする方法

  3. OpenSUSELeap15.3にRedis6をインストールして設定する方法

  1. openSUSELeapにSkypeをインストールする方法

  2. openSUSE Leap 15.1にApache、MariaDB、PHP7(LAMP)をインストールする方法

  3. openSUSELeap42.2にTeamViewer12をインストールする方法