Elasticsearchの簡単インストール【Ubuntu 20.04】

Elasticsearchの簡単インストール【Ubuntu 20.04】 サーバー

ElasticsearchをUbuntu・Debianにインストールする方法を解説しています。
Javaのインストール、PATHを通す作業は不要です。

本記事の内容

  • Elasticsearchとは?
  • Elasticsearchのシステム要件
  • Elasticsearchのインストール
  • Elasticsearchの動作確認

それでは、上記に沿って解説していきます。

Elasticsearchとは?

Elasticsearchとは、分散型で無料かつオープンな検索・分析エンジンです。
この説明は抽象的でなかなかイメージができないかもしれません。

このような抽象的な説明は、具体化すればイメージしやすいです。
Elasticsearchの具体的な用途は、以下。

  • アプリ検索
  • Webサイト検索
  • エンタープライズサーチ
  • ロギングとログ分析
  • インフラメトリックとコンテナー監視
  • アプリケーションパフォーマンス監視(APM)
  • 地理空間データ分析と可視化
  • セキュリティ分析
  • ビジネス分析

一部でよくわからない用語があります。
ただ、かなりElasticsearchのイメージは掴めたのではないでしょうか。

共通して言えるのは、「大量データの中から探す」ことになります。
ここで疑問がわきませんか?

「データベースを検索するのと何が違うのか?」と。

確かに、データベースでも検索はできます。
正規化やインデックスを適切に行えば、ある程度の速度で検索が可能です。

しかし、データが大量になってくると話が変わります
マシンスペックにもよりますが、10万件超えたらオワリみたいな感覚があります。

そこで、Elasticsearchの出番となります。
Elasticsearchは、検索に特化した検索エンジンです。

それなら、検索処理はElasticsearchに任せましょう。
つまり、データベースとElasticsearchは競合ではなく、協力関係にあるのです。

その際、データベースのデータをElasticsearchが扱いやすいように加工します。
加工(転置インデックス)して、別途保存しておきます。

何となくでもElasticsearchのイメージを掴めたら、OKです。
技術なんて、実際に利用してナンボですから。
利用していくうちに、より理解していきましょう。

以上、Elasticsearchの説明をしました。
次は、Elasticsearchのシステム要件を確認します。

Elasticsearchのシステム要件

現時点(2021年6月)での Elasticsearchの最新バージョンは、7.13.1です。
この最新バージョンは、2021年6月3日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応となります。

  • Windows
  • macOS
  • Linux

ソースも公開されています。
ビルドさえできれば、大抵のLinuxなら動くのでしょう。

問題となるのは、JDKです
Elasticsearchは、Javaで開発されています。

そのため、JDKがインストールされていることが必須です。
ただし、自分でJDKを用意する必要はありません。

適したバージョンのOpenJDKが、 Elasticsearchにバンドル(付属)されています。
バンドルしていないElasticsearchを選択することも可能です。

なお、公式ではバンドル版を推奨しています。
余程の事情がない限りは、バンドル版をインストールしましょう。

以上、Elasticsearchのシステム要件について説明しました。
次は、Elasticsearchをインストールしていきましょう。

Elasticsearchのインストール

今回の検証では、次のOSにElasticsearchをインストールします。

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"

まず、パッケージを確認します。

$ sudo apt show elasticsearch
ree and Open, Distributed,N: パッケージ elasticsearch が見つかりません
N: パッケージ elasticsearch が見つかりません
E: パッケージが見つかりません

なにも見つかりません。
Ubuntuの公式リポジトリには、存在していないということです。

そこで、Elasticsearchの開発元が公開しているリポジトリを見に行くようにします。
そのための作業を行っていきます。

まずは、そのリポジトリ(パッケージ)の身元を確認するためにPGPキーをインストールします。

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

次にリポジトリ定義を保存します。

$ echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
deb https://artifacts.elastic.co/packages/7.x/apt stable main

定義を確認します。

$ sudo cat /etc/apt/sources.list.d/elastic-7.x.list
deb https://artifacts.elastic.co/packages/7.x/apt stable main

パッケージの取得先が保存されています。
では、この取得先をパッケージ管理システムに認識させましょう。

$ sudo apt-get update
取得:1 https://artifacts.elastic.co/packages/7.x/apt stable InRelease [10.4 kB]
取得:2 https://artifacts.elastic.co/packages/7.x/apt stable/main amd64 Packages [67.1 kB]
~省略~
2,234 kB を 8秒 で取得しました (263 kB/s)
パッケージリストを読み込んでいます... 完了

では、この段階で再度Elasticsearchのパッケージを確認します。

$ sudo apt show elasticsearch
Package: elasticsearch
Version: 7.13.1
Priority: optional
Section: web
Source: elasticsearch
Maintainer: Elasticsearch Team <info@elastic.co>
Installed-Size: 545 MB
Depends: bash (>= 4.1), lsb-base (>= 4), libc6, adduser, coreutils (>= 8.4)
Conflicts: elasticsearch-oss
Homepage: https://www.elastic.co/
License: Elastic-License
Download-Size: 327 MB
APT-Sources: https://artifacts.elastic.co/packages/7.x/apt stable/main amd64 Packages
Description: Distributed RESTful search engine built for the cloud
Reference documentation can be found at
   https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
   and the 'Elasticsearch: The Definitive Guide' book can be found at
   https://www.elastic.co/guide/en/elasticsearch/guide/current/index.html

N: 追加レコードが 35 件あります。表示するには '-a' スイッチを付けてください。

Elasticsearchのパッケージを認識できています。
あとは、aptコマンドでインストールするだけです。

$ sudo apt-get install elasticsearch

インストールには、少しだけ時間がかかります。
インストールが完了したら、次のように表示されます。

Creating elasticsearch group... OK
Creating elasticsearch user... OK
elasticsearch (7.13.1) を展開しています...
elasticsearch (7.13.1) を設定しています ...
Created elasticsearch keystore in /etc/elasticsearch/elasticsearch.keystore
systemd (245.4-4ubuntu3.3) のトリガを処理しています ...

以上、Elasticsearchのインストールに関しての説明でした。
最後に、Elasticsearchの動作確認を行います。

Elasticsearchの動作確認

最初に、自動起動の設定をしておきましょう。
OS起動時に、自動的に立ち上がるように設定します。

$ sudo /bin/systemctl daemon-reload
$ sudo /bin/systemctl enable elasticsearch.service
Synchronizing state of elasticsearch.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable elasticsearch
Created symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service → /lib/systemd/system/elasticsearch.service.

上記のコマンドを実行します。
これで、OS起動時にElasticsearchが自動起動するようになります。

不要な場合は、この設定はスルーで問題ありません。
また、Elasticsearchの起動と停止は次のコマンドで行います。

Elasticsearchの起動

sudo systemctl start elasticsearch.service

Elasticsearchの停止

sudo systemctl stop elasticsearch.service

動作確認を行う前に、Elasticsearchが起動していることを確認してください。

$ sudo systemctl status elasticsearch.service
● elasticsearch.service - Elasticsearch
     Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-06-07 12:28:25 JST; 2min 39s ago
       Docs: https://www.elastic.co
   Main PID: 6071 (java)
      Tasks: 57 (limit: 9513)
     Memory: 4.2G
     CGroup: /system.slice/elasticsearch.service
             ├─6071 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkadd>
             └─6276 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller


6月 07 12:28:17 ubuntu-focal systemd[1]: Starting Elasticsearch...
6月 07 12:28:25 ubuntu-focal systemd[1]: Started Elasticsearch.

「Active: active (running)」であることを確認しましょう。
Elasticsearchの起動を確認できたら、次のコマンドを実行しましょう。

$ curl http://localhost:9200
{
  "name" : "ubuntu-focal",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "pVa7Ti20Q46Aep9dqalzww",
  "version" : {
    "number" : "7.13.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "9a7758028e4ea59bcab41c12004603c5a7dd84a9",
    "build_date" : "2021-05-28T17:40:59.346932922Z",
    "build_snapshot" : false,
    "lucene_version" : "8.8.2",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

上記のように表示されたら、Elasticsearchの動作確認は問題ありません。
Elasticsearchは、デフォルトで9200ポートを利用します。

以上、Elasticsearchの動作確認を説明しました。

タイトルとURLをコピーしました