Elasticsearch部署步骤

现在官方已经出到了ES7 beta,不过现在为止用的最多也是比较稳定的是5.x。
这里我简单记录下针对5.x版本的部署配置过程,暂不考虑优化(后面再总结优化相关的笔记)。

一、环境

  • Ubuntu 14.04/16、04
  • JDK1.8
  • Elasticsearch 5.6

二、安装JDK

1. 下载安装

  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
jdk_download.png
  将刚刚下载的文件拷贝到 /opt 目录下,
  解压jdk到当前目录,使用命令 tar -zxvf jdk-8u161-linux-x64.tar.gz
  修改文件名 mv jdk1.8.0_161 jdk1.8
  至此,jdk1.8已经全部安装完成了

2. 配置环境变量

  修改 vim /etc/profile ,最底部添加:

# Sun JDK profile
export JAVA_HOME=/opt/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

  运行 source /etc/profile,使/etc/profile文件生效
  使用 java -versionjavac -version 命令查看jdk版本及其相关信息,不会出现command not found错误,且显示的版本信息与前面安装的一致
  echo $JAVA_HOME, echo $CLASSPATH, echo $PATH,看看自己的配置是否都正确。

3. 开机设置

  每次重启的时候,会发现jdk版本不正确,或者使用 java -version 显示不是所需版本,使用 javac -version 会出现command not found错误,解决方法是再次运行 source /etc/profile,使/etc/profile文件生效。显然每次这么操作很麻烦。
  因此我们编辑 vim ~/.bashrc,最后加一句

source /etc/profile

三、安装Elasticsearch

1. 下载安装

  登录官网 https://www.elastic.co/cn/downloads
  选择下载elasticsearch,根据需要选择对应的安装包,这里选择5.6版本,下载完后得到 elasticsearch-5.6.0.tar.gz
  操作系统中创建一个新用户专门用来管理es:adduser elasticsearch
  用 elasticsearch 用户将 elasticsearch-5.6.0.tar.gz 拷贝到 /opt 目录下。
  解压到当前目录,使用命令 tar -zxvf elasticsearch-5.6.0.tar.gz
  删除压缩文件,使用命令 rm -f elasticsearch-5.6.0.tar.gz
  至此,elasticsearch安装完成

2. ES集群需要改的系统配置

  vim /etc/security/limits.conf

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
* soft memlock unlimited
* hard memlock unlimited
* - nofile 65536

root soft nofile 65536
root hard nofile 131072
root soft nproc 2048
root hard nproc 4096
root soft memlock unlimited
root hard memlock unlimited
root - nofile 65536

  vim /etc/sysctl.conf

vm.max_map_count=655360
vm.swappiness = 0

  并执行 sysctl -p

  如果是supervisor托管的,修改/etc/supervisord.conf 中的
  minfd = 65536
  并重启supervisor

3. 修改ES配置文件elasticsearch.yml

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

cluster.name: elasticsearch
node.name: 192.168.10.201
node.master: true
node.data: true
http.enabled: true
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: ["192.168.10.198","192.168.10.201"]

http.port: 9200

script.engine.groovy.inline.update: on
script.engine.groovy.inline.search: on
script.engine.groovy.inline.aggs: on
script.max_compilations_per_minute: 10000

path.data: /data/es

action.auto_create_index: cc-*,sc-*,.nina*,.security,.monitoring*,.watches,.triggered_watches,.watcher-history*

  同时也要指定一下jvm.options里的jvm虚拟机内存

4. ES交给supervisor托管

[program:elasticsearch]
user = elasticsearch
startsecs = 3
autostart = true
autorestart = true
startretries = 3
stdout_logfile=NONE
stderr_logfile=NONE
environment = JAVA_HOME="/opt/jdk/", ES_JAVA_OPTS = "-Xms8g -Xmx8g"
command = /opt/elasticsearch/bin/elasticsearch

四、安装Kibana

1. 从官网下载和es一样版本的Kibana

  拷贝到/opt目录,解压,修改配置文件kibana.yml

server.host: "192.168.10.201"
elasticsearch.url: "http://192.168.10.198:9200"

2. Kibana交给supervisor托管

[program:kibana]
startsecs = 3
autostart = true
autorestart = true
startretries = 3
redirect_stderr = true
command = /opt/kibana/bin/kibana
stdout_logfile = /var/log/kibana.log

  目录