Amazon LinuxにElasticsearchのインストールをする手順を記載する。
Java1.8.0のインストール
Elasticsearchの起動にはJava(OpenJDK 1.8.0_73以上)が必要なので、インストールする
Javaのインストール
# バージョンの確認 $ java -version java version "1.7.0_131" OpenJDK Runtime Environment (amzn-2.6.9.0.71.amzn1-x86_64 u131-b00) OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode) $ # OpenJDK 1.8.0のインストール $ sudo yum install java-1.8.0-openjdk-devel Loaded plugins: priorities, update-motd, upgrade-helper amzn-main | 2.1 kB 00:00:00 amzn-updates | 2.3 kB 00:00:00 Resolving Dependencies --> Running transaction check ---> Package java-1.8.0-openjdk-devel.x86_64 1:1.8.0.131-2.b11.30.amzn1 will be installed --> Processing Dependency: java-1.8.0-openjdk = 1:1.8.0.131-2.b11.30.amzn1 for package: 1:java-1.8.0-openjdk-devel-1.8.0.131-2.b11.30.amzn1.x86_64 --> Processing Dependency: libawt_xawt.so(SUNWprivate_1.1)(64bit) for package: 1:java-1.8.0-openjdk-devel-1.8.0.131-2.b11.30.amzn1.x86_64 --> Processing Dependency: libawt_xawt.so()(64bit) for package: 1:java-1.8.0-openjdk-devel-1.8.0.131-2.b11.30.amzn1.x86_64 --> Running transaction check ---> Package java-1.8.0-openjdk.x86_64 1:1.8.0.131-2.b11.30.amzn1 will be installed --> Processing Dependency: java-1.8.0-openjdk-headless = 1:1.8.0.131-2.b11.30.amzn1 for package: 1:java-1.8.0-openjdk-1.8.0.131-2.b11.30.amzn1.x86_64 --> Running transaction check ---> Package java-1.8.0-openjdk-headless.x86_64 1:1.8.0.131-2.b11.30.amzn1 will be installed amzn-main/latest/filelists_db | 5.1 MB 00:00:00 amzn-updates/latest/filelists_db | 1.0 MB 00:00:00 --> Processing Dependency: copy-jdk-configs >= 1.1-3 for package: 1:java-1.8.0-openjdk-headless-1.8.0.131-2.b11.30.amzn1.x86_64 --> Processing Dependency: lksctp-tools(x86-64) for package: 1:java-1.8.0-openjdk-headless-1.8.0.131-2.b11.30.amzn1.x86_64 --> Running transaction check ---> Package copy-jdk-configs.noarch 0:1.2-1.2.amzn1 will be installed ---> Package lksctp-tools.x86_64 0:1.0.10-7.7.amzn1 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================================================ Package Arch Version Repository Size ============================================================================================================================================================================================ Installing: java-1.8.0-openjdk-devel x86_64 1:1.8.0.131-2.b11.30.amzn1 amzn-updates 12 M Installing for dependencies: copy-jdk-configs noarch 1.2-1.2.amzn1 amzn-main 13 k java-1.8.0-openjdk x86_64 1:1.8.0.131-2.b11.30.amzn1 amzn-updates 236 k java-1.8.0-openjdk-headless x86_64 1:1.8.0.131-2.b11.30.amzn1 amzn-updates 39 M lksctp-tools x86_64 1.0.10-7.7.amzn1 amzn-main 89 k Transaction Summary ============================================================================================================================================================================================ Install 1 Package (+4 Dependent packages) Total download size: 51 M Installed size: 143 M Is this ok [y/d/N]: y Downloading packages: (1/5): copy-jdk-configs-1.2-1.2.amzn1.noarch.rpm | 13 kB 00:00:00 (2/5): java-1.8.0-openjdk-1.8.0.131-2.b11.30.amzn1.x86_64.rpm | 236 kB 00:00:00 (3/5): lksctp-tools-1.0.10-7.7.amzn1.x86_64.rpm | 89 kB 00:00:00 (4/5): java-1.8.0-openjdk-devel-1.8.0.131-2.b11.30.amzn1.x86_64.rpm | 12 MB 00:00:01 (5/5): java-1.8.0-openjdk-headless-1.8.0.131-2.b11.30.amzn1.x86_64.rpm | 39 MB 00:00:02 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 16 MB/s | 51 MB 00:00:03 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : copy-jdk-configs-1.2-1.2.amzn1.noarch 1/5 Installing : lksctp-tools-1.0.10-7.7.amzn1.x86_64 2/5 Installing : 1:java-1.8.0-openjdk-headless-1.8.0.131-2.b11.30.amzn1.x86_64 3/5 Installing : 1:java-1.8.0-openjdk-1.8.0.131-2.b11.30.amzn1.x86_64 4/5 Installing : 1:java-1.8.0-openjdk-devel-1.8.0.131-2.b11.30.amzn1.x86_64 5/5 Verifying : lksctp-tools-1.0.10-7.7.amzn1.x86_64 1/5 Verifying : 1:java-1.8.0-openjdk-headless-1.8.0.131-2.b11.30.amzn1.x86_64 2/5 Verifying : 1:java-1.8.0-openjdk-1.8.0.131-2.b11.30.amzn1.x86_64 3/5 Verifying : 1:java-1.8.0-openjdk-devel-1.8.0.131-2.b11.30.amzn1.x86_64 4/5 Verifying : copy-jdk-configs-1.2-1.2.amzn1.noarch 5/5 Installed: java-1.8.0-openjdk-devel.x86_64 1:1.8.0.131-2.b11.30.amzn1 Dependency Installed: copy-jdk-configs.noarch 0:1.2-1.2.amzn1 java-1.8.0-openjdk.x86_64 1:1.8.0.131-2.b11.30.amzn1 java-1.8.0-openjdk-headless.x86_64 1:1.8.0.131-2.b11.30.amzn1 lksctp-tools.x86_64 0:1.0.10-7.7.amzn1 Complete! $
バージョンの変更
デフォルトからJavaがインストールされていた場合、明示的に使用するJavaのバージョンを変更する必要がある。alternatives
コマンドを使用してJavaのバージョンを指定する。
# Javaのバージョンを変更する $ sudo alternatives --config java There are 2 programs which provide 'java'. Selection Command ----------------------------------------------- *+ 1 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java 2 /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java Enter to keep the current selection[+], or type selection number: 2 # 再度バージョンを確認 $ java -version openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-b11) OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode) $ # PATHが通っているか確認 $ echo $JAVA_HOME /usr/lib/jvm/jre
rpmパッケージからインストール
CentOS5ではパッケージからのインストールはできないが、Amazon LinuxはCentOS6系のため、パッケージからのインストールが可能となる。
PGP鍵の登録
Elasticsearchのパッケージは暗号化されているため、PGP鍵の登録が必要となる。
$ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch $ $ sudo touch /etc/yum.repos.d/elasticsearch.repo
elasticsearch.repoの追記
yumコマンドでインストールするため、リポジトリ登録をする。/etc/repos.d配下にelasticsearch.repo
を作成し、こちらに記載されているリポジトリ内容を登録する。
$ vim elasticsearch.repo # 以下を追記 [elasticsearch-5.x] name=Elasticsearch repository for 5.x packages baseurl=https://artifacts.elastic.co/packages/5.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md $ sudo cat /etc/yum.repos.d/elasticsearch.repo [elasticsearch-5.x] name=Elasticsearch repository for 5.x packages baseurl=https://artifacts.elastic.co/packages/5.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
Elasticsearchのインストール
yum
コマンドを使ってインストールする。バージョン指定しない場合、最新版が落ちてくる。多分バージョン指定もできるはず。
$ sudo yum install elasticsearch Loaded plugins: priorities, update-motd, upgrade-helper amzn-main | 2.1 kB 00:00:00 amzn-updates | 2.3 kB 00:00:00 elasticsearch-5.x | 1.3 kB 00:00:00 elasticsearch-5.x/primary | 54 kB 00:00:00 elasticsearch-5.x 134/134 14 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package elasticsearch.noarch 0:5.4.0-1 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================================================ Package Arch Version Repository Size ============================================================================================================================================================================================ Installing: elasticsearch noarch 5.4.0-1 elasticsearch-5.x 32 M Transaction Summary ============================================================================================================================================================================================ Install 1 Package Total download size: 32 M Installed size: 35 M Is this ok [y/d/N]: y Downloading packages: elasticsearch-5.4.0.rpm | 32 MB 00:00:08 Running transaction check Running transaction test Transaction test succeeded Running transaction Creating elasticsearch group... OK Creating elasticsearch user... OK Installing : elasticsearch-5.4.0-1.noarch 1/1 ### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using chkconfig sudo chkconfig --add elasticsearch ### You can start elasticsearch service by executing sudo service elasticsearch start Verifying : elasticsearch-5.4.0-1.noarch 1/1 Installed: elasticsearch.noarch 0:5.4.0-1 Complete! $
Elasticsearchの起動
起動コマンドの確認
ps -p 1
でどの起動用コマンドを使うべきか確認する。
CMD欄にinit
と表示されていればservice
コマンド、systemctl
と表示されていればsystemctl
コマンドを使用する。
ちなみにこのコマンドで調べる理由としては、PID1はLinux起動後、1番最初に起動するプロセスであり、他プロセスは全てPID1(initプログラムなど)から起動されるためである。つまり、他のプロセスの起動・停止方法はPID1のプログラムと同じ起動・停止方法になるので、サービス起動のコマンドを確認する手段として利用することができる。1
$ ps -p 1 PID TTY TIME CMD 1 ? 00:00:00 init
この場合はservice
コマンドで起動することになる。ちなみにOSのバージョンによって起動コマンドはほぼ固定なので、そちらから確認しても良い。(でもコマンドで確認した方が早いと思う)
起動・停止
$ sudo service elasticsearch status elasticsearch is stopped $ $ sudo service elasticsearch start elasticsearch is started
エラーなくサービス起動できれば、インストールは完了している。 問題がある場合、コマンドプロンプトにエラー出力される。
サービス登録
サービス登録はchkconfigコマンドを利用してできる。
$ sudo chkconfig --add elasticsearch $ sudo chkconfig --list |grep elasticsearch elasticsearch 0:off 1:off 2:on 3:on 4:on 5:on 6:off