しがないインフラエンジニアLOG

インフラエンジニアとしての諸々

ElasticSearch導入メモ(CentOS6.9)

今回したこと

ElasticSearch導入についての手順

なぜやろうとおもったか

自宅環境にログ収集用のElasticSearchを構築した際にはまってのでメモ。

前提

・ CentOS6.9(minimalインストール) ・iptable/selinux disable

1. 事前準備

# yum update
# yum install java-1.8.0-openjdk.x86_64
# vi ~/.bashrc
exports JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk.x86-64
# alternatives --config java
* jre-1.8.0-openjdkを選択

# vi /etc/security/limits.conf
elasticsearch    hard    nproc           4096
elasticsearch    soft    nproc           4096
elasticsearch    -       nofile          65536
# reboot

2. ElasticSearchインストール

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
# vi /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
# yum list | grep elastic
# yum install elasticsearch

3. 起動設定

# chkconfig --add elasticsearch
# chkconfig elasticsearch on

4. パラメーターチューニング

# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.org
# cp /etc/elasticsearch/jvm.options /etc/elasticsearch/jvm.options.org
# cp /etc/sysconfig/elasticsearch /etc/sysconfig/elasticsearch.org

# vi /etc/elasticsearch/elasticsearch.yml
(ipのバインド)
< network.host: 0.0.0.0
< bootstrap.system_call_filter: false
---
> #network.host: 192.168.0.1

*eth1でクラスターと接続している場合は
< network.bind_host: 0.0.0.0
< network.publish_host: _eth1:ipv4_
< bootstrap.system_call_filter: false
---
> #network.host: 192.168.0.1

(クラスターのホストdiscovery)
< discovery.zen.ping.unicast.hosts: ["192.168.56.101", "192.168.56.102", "192.168.56.103", "192.168.56.104", "192.168.56.105"]
---
> #discovery.zen.ping.unicast.hosts: ["host1", "host2"]

bootstrap.system_call_filter: false

# vi /etc/elasticsearch/jvm.options
-Xms1g
-Xmx1g

# vi /etc/elasticsearch/jvm.options
< ES_JAVA_OPTS="-XX:-AssumeMP"
---
> #ES_JAVA_OPTS=

5. 起動

# service elasticsearch start

最後に

AWS環境では特にパラメーターの変更は必要なく立ち上がったが、 CentOSの場合、「ES_JAVA_OPTS="-XX:-AssumeMP"」を記載しないとJAVAのエラーが出力され起動しなかったのではまった。 LinuxディストリビューターによってJavaの設定が違うことが原因とGithubのissueにあったのでメモとして記載する。