LoginSignup
16
21

More than 5 years have passed since last update.

Elasticsearch 導入手順書(CentOS7)

Last updated at Posted at 2017-09-04

Elasticsearach のインストール

CentOS7 へのインストール

タイムゾーンを JST に変更する必要がある場合は以下を実行しておく。

sudo timedatectl set-timezone Asia/Tokyo

JDK のインストール

sudo yum -y install wget
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.rpm
sudo yum localinstall -y jdk-8u144-linux-x64.rpm

Elasticsearch の yum リポジトリを追加

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo vi /etc/yum.repos.d/elasticsearch.repo

以下の内容を 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 をインストール

sudo yum install -y elasticsearch

以下のディレクトリ構成でインストールされる

  • /etc/elasticsearch/
    • elasticsearch.yml
    • jvm.options
    • log4j2.properties
  • /usr/elasticsearch/
    • bin/
    • elasticsearch
    • elasticsearch-plugin
    • elasticsearch-translog
    • elasticsearch-keystore
    • elasticsearch-systemd-pre-exec
    • elasticsearch.in.sh
    • lib/
    • modules/
    • plugins/
  • /var/
    • log/elasticsearch/
    • lib/elasticsearch/

CentOS7 の設定を変更

CentOS7 のデフォルト値では問題が発生する部分があるので変更しておく。

elasticsearch ユーザでオープンできるファイル数の上限を変更する。現在の設定値を以下のコマンドで確認。

sudo su -
sudo -u elasticsearch bash -c "ulimit -n"
1024

デフォルト値は 1024 なので、公式ページの推奨値である 65536 に変更する。
再起動しても設定値が戻らないように limits.conf に以下を追記する。
(設定値を変更するだけでは反映されないので、最後に再起動する)

sudo vi /etc/security/limits.conf
elasticsearch  -  nofile  65536

次に、 bootstrap.memory_locktrue に設定できるように elasticsearch.conf を作成して以下を追記する。

sudo mkdir /etc/systemd/system/elasticsearch.service.d
sudo vi /etc/systemd/system/elasticsearch.service.d/elasticsearch.conf
[Service]
LimitMEMLOCK=infinity

スレッド数の上限を確認する。

sudo su -
sudo -u elasticsearch bash -c "ulimit -u"
4096

公式ページによると Elasticsearch が使用するスレッド数は最低 2048 とのことなので特に変更しない。

上記の設定を有効にするために一度サーバを再起動する。

設定が反映されたかどうかを確認する。

sudo su -
sudo -u elasticsearch bash -c "ulimit -n"
65536

Elasticsearch 起動後に以下を確認する。

curl 'localhost:9200/_nodes/stats/process?filter_path=**.max_file_descriptors&pretty'
{
  "nodes" : {
    "MCD3WQBrS6CzrOSS-YjOCg" : {
      "process" : {
        "max_file_descriptors" : 65536 ← ここが 65536 になっていることを確認する
      }
    }
  }
}
curl 'localhost:9200/_nodes/process?pretty'
{
  "_nodes" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "cluster_name" : "hoge-search",
  "nodes" : {
    "MCD3WQBrS6CzrOSS-YjOCg" : {
      "name" : "hoge-search-001",
      "transport_address" : "10.0.0.8:9300",
      "host" : "10.0.0.8",
      "ip" : "10.0.0.8",
      "version" : "5.5.1",
      "build_hash" : "19c13d0",
      "roles" : [
        "master",
        "data",
        "ingest"
      ],
      "process" : {
        "refresh_interval_in_millis" : 1000,
        "id" : 832,
        "mlockall" : true ← ここが true になっていることを確認する
      }
    }
  }
}

Elasticsearch の設定を変更

elasticsearch.yml を以下のように変更する。

cluster.name: hoge-search
node.name: node-001 # 名前は適宜変更
bootstrap.memory_lock: true # CentOS7 はデフォルトではロックに失敗する
network.host:
  - _local_
  - _site_
http.port: 9200
discovery.zen.ping.unicast.hosts:
  - node-001 # 自分が 001 の場合は記載しない
  - node-002 # 自分が 002 の場合は記載しない

http.cors.enabled: true
http.cors.allow-origin: /https?:\/\/.+(:[0-9]+)?/

jvm.options を以下のように変更する。

-Xms4g
-Xmx4g

Elasticsearch へのプラグインのインストール

Elasticsearch の bin ディレクトリに移動し以下を実行する。

ICU Analysis プラグインをインストール

sudo ./elasticsearch-plugin install analysis-icu

Kuromoji プラグインをインストール

sudo ./elasticsearch-plugin install analysis-kuromoji

Elasticsearch を起動

sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

起動を確認

sudo journalctl --unit elasticsearch

Kibana のインストール

CentOS7 へのインストール

Kibana をインストール

sudo yum install -y kibana

以下のディレクトリ構成でインストールされる

  • /etc/kibana/
  • /usr/share/kibana/
    • bin/
    • optimize/
    • plugins/
  • /var/lib/kibana/

Kibana の設定を変更

kibana.yml を以下のように変更。

# ↓ サーバのローカル IP アドレスを指定する
server.host: 10.0.0.8

Kibana を起動

sudo systemctl enable kibana.service
sudo systemctl start kibana.service
16
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
21