Ubuntuにelasticsearchをインストール、セットアップする

Vagrantで立てたUbuntuにelasticsearchをインストール、セットアップしてみようと思います。

デスクトップPC(windows)をゲーミング用で一台所有してるんですが、こちらプログラミング趣味用としても使いたいなと。ゲームパフォーマンスに影響が出るのでホストOS型でLinux(Ubuntu)を選びました。そこにelasticsearchをインストール、セットアップしていきたいと思います。

環境

Vagrant

PS D:\Vagrant> vagrant --version
Vagrant 2.3.0

また、Vagrantfileは長いので割愛しますが使用しているboxは次のとおりです。

generic/ubuntu2204

VirtualBox

バージョン 6.1.38 r153438 (Qt5.6.2)

Ubuntu

vagrant@ubuntu2204:~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

elasticsearchのインストール

現時点で最新のelasticsearchをインストールしていきます。

公式サイトを確認したところいくつか方法があるようですね。

Installing Elasticsearch | elasticsearch guide 8.4

ここではaptによるインストールに沿ってみることにしました。

Installing Elasticsearch with Debian Package | elasticsearch guide 8.4

手順通りにコマンドを打ち込んでいけば問題なくインストールできました。

セキュリティを無効にする

デフォルトでセキュリティ機能が有効となっており、学習用途で使うには使いづらいので無効化してしまいます。

/etc/elasticsearch/elasticsearch.yml ファイルを次のとおりに編集すればOKです。

# Enable security features
xpack.security.enabled: false

起動してみる

起動して動作確認してみました。

起動は systemctl コマンドから行えます。なお、初回起動時には一度 systemctl daemon-reload することをお忘れなく。

vagrant@ubuntu2204:~$ sudo systemctl start elasticsearch
vagrant@ubuntu2204:~$ curl localhost:9200
{
  "name" : "ubuntu2204.localdomain",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "LmVzX49pRiK0PcdBSTx4fA",
  "version" : {
    "number" : "8.4.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "2bd229c8e56650b42e40992322a76e7914258f0c",
    "build_date" : "2022-08-26T12:11:43.232597118Z",
    "build_snapshot" : false,
    "lucene_version" : "9.3.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}
vagrant@ubuntu2204:~$ curl -sS -XPOST localhost:9200/demo-index/_doc -H "Content-Type: application/json" -d '{"id": 1}' | jq .
{
  "_index": "demo-index",
  "_id": "alEUUIMB83mE3HuzpOuF",
  "_version": 1,
  "result": "created",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 1,
  "_primary_term": 1
}
vagrant@ubuntu2204:~$ curl -sS -XDELETE localhost:9200/demo-index | jq .
{
  "acknowledged": true
}

問題なく疎通できました。