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:useradd -m 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]
priority=1            ; the relative start priority (default 999), the larger the later
user = elasticsearch
; or get ES_JAVA_OPTS from /opt/elasticsearch/config/jvm.options
environment = JAVA_HOME="/opt/jdk1.8/", ES_JAVA_OPTS = "-Xms8g -Xmx8g"
command = /opt/elasticsearch/bin/elasticsearch
stdout_logfile=NONE
;stdout_logfile=/var/log/supervisor/elasticsearch.log
redirect_stderr=true
autostart=true
autorestart=true
startretries=3
startsecs=3
stopwaitsecs=10
stopsignal=INT

四、安装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

博文对你有帮助吗?如果有的话,想不想送我一本书呢?
  目录