Elasticsearchは、ApacheLucene上に構築されたオープンソースの分散分析エンジンです。さまざまな場所から非構造化データを取得し、ユーザー指定のマッピングに従って保存し、インデックスを作成します。 RESTful操作をサポートし、大量のデータをリアルタイムで検索および分析できるようにします。
このチュートリアルでは、Ubuntu20.04にElasticsearchをインストールする方法を紹介します。
- Ubuntu20.04サーバーを実行しているサーバー。
- ルートパスワードはサーバーで構成されています。
開始する前に、システムを最新バージョンに更新する必要があります。次のコマンドで更新できます:
apt-get update -y
システムが更新されたら、次のコマンドを使用して他の必要なパッケージをインストールします。
apt-get install curl gnupg2 apt-transport-https unzip -y
すべてのパッケージがインストールされたら、次のステップに進むことができます。
デフォルトでは、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はポート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のメイン設定ファイルは/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は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をアプリケーションと統合できます。ご不明な点がございましたら、お気軽にお問い合わせください。