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をアプリケーションと統合できます。ご不明な点がございましたら、お気軽にお問い合わせください。