Ubuntu20.04にElasticsearchをインストールして使用する方法

Elasticsearchは、ApacheLucene上に構築されたオープンソースの分散分析エンジンです。 さまざまな場所から非構造化データを取得し、ユーザー指定のマッピングに従って保存し、インデックスを作成します。 RESTful操作をサポートし、大量のデータをリアルタイムで検索および分析できるようにします。

このチュートリアルでは、Ubuntu20.04にElasticsearchをインストールする方法を紹介します。

前提条件

  • Ubuntu20.04サーバーを実行しているサーバー。
  • ルートパスワードはサーバーで構成されます。

入門

開始する前に、システムを最新バージョンに更新する必要があります。 次のコマンドで更新できます。

apt-get update -y

システムが更新されたら、次のコマンドを使用して他の必要なパッケージをインストールします。

apt-get install curl gnupg2 apt-transport-https unzip -y

すべてのパッケージがインストールされたら、次のステップに進むことができます。

Elasticsearchをインストールします

デフォルトでは、ElasticsearchパッケージはUbuntuのデフォルトリポジトリでは利用できません。 そのため、Elasticsearchリポジトリをシステムに追加する必要があります。 まず、次のコマンドを使用してGPGキーをインポートします。

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -

次に、次のコマンドを使用してElasticsearchリポジトリを追加します。

sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'

リポジトリが追加されたら、リポジトリキャッシュを更新し、次のコマンドを使用してElasticsearchをインストールします。

apt-get update -y
apt-get install elasticsearch -y

インストールが完了したら、Elasticsearchサービスを開始し、システムの再起動時に開始できるようにします。

systemctl start elasticsearch
systemctl enable elasticsearch

次のコマンドを使用して、Elasticsearchサービスのステータスを確認できるようになりました。

systemctl status elasticsearch

次の出力が得られるはずです。

? elasticsearch.service - Elasticsearch
     Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-01-09 11:13:09 UTC; 5s ago
       Docs: https://www.elastic.co
   Main PID: 5110 (java)
      Tasks: 65 (limit: 2353)
     Memory: 1.2G
     CGroup: /system.slice/elasticsearch.service
             ??5110 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl>
             ??5304 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

Jan 09 11:12:50 ubuntu2004 systemd[1]: Starting Elasticsearch...
Jan 09 11:13:09 ubuntu2004 systemd[1]: Started Elasticsearch.

Elasticsearchを確認する

デフォルトでは、Elasticsearchはポート9200でリッスンします。次のコマンドを使用して確認できます。

ss -antpl | grep 9200

次の出力が得られるはずです。

LISTEN   0        4096        [::ffff:127.0.0.1]:9200                  *:*       users:(("java",pid=5110,fd=257))                                               
LISTEN   0        4096                     [::1]:9200               [::]:*       users:(("java",pid=5110,fd=255))     

以下のコマンドを使用してElasticsearchを確認することもできます。

curl -X GET "localhost:9200/"

次の応答が返されます。

{
  "name" : "ubuntu2004",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "mToloP2UQGilY7nUCeBnjg",
  "version" : {
    "number" : "7.10.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa",
    "build_date" : "2020-12-05T01:00:33.671820Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Elasticsearchを構成する

Elasticsearchのメイン設定ファイルは/etc/elasticsearch/elasticsearch.ymlにあります。 このファイルを編集することで、クラスター名、ポートを設定し、リモート接続を許可できます。

nanoエディターでelasticsearch.ymlファイルを開きます。

nano /etc/elasticsearch/elasticsearch.yml

次の行を変更します。

cluster.name: my-cluster
network.host: 172.16.0.10
discovery.seed_hosts: 172.16.0.10

ファイルを保存して閉じ、Elasticsearchサービスを再起動して構成を適用します。

systemctl restart elasticsearch

この時点で、Elasticsearchはリモートホストからの接続を受け入れるように構成されています。 これで、次のステップに進むことができます。

UFWファイアウォールを構成する

デフォルトでは、UFWはUbuntu20.04にインストールされます。 インストールされていない場合は、次のコマンドでインストールできます。

apt-get install ufw -y

UFWをインストールしたら、次のコマンドを使用して、リモートホスト(172.16.0.100)のSSH接続とElasticsearchポートを許可します。

ufw allow ssh
ufw allow from 172.16.0.100 to any port 9200

次に、次のコマンドでUFWファイアウォールを有効にします。

ufw enable

次に、次のコマンドを使用してUFWファイアウォールルールのステータスを確認します。

ufw status

次の出力が得られるはずです。

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere                  
9200                       ALLOW       172.16.0.100              
22/tcp (v6)                ALLOW       Anywhere (v6)             

結論

おめでとう! Elasticsearchが正常にインストールされ、Ubuntu20.04サーバーにリモート接続できるように構成されました。 これで、Elasticsearchをアプリケーションと統合できます。 ご不明な点がございましたら、お気軽にお問い合わせください。

Hope this helps!

Source link