Linux下安装Elasticsearch5.5
1.安装准备
es5.5.1:登录 https://www.elastic.co/downloads/elasticsearch,下载完后得到 elasticsearch-5.5.1.tar.gz;
jdk1.8,登录http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,下载linux的gz包;
2.安装概要
针对自己安装过程中出现的问题,整理下具体安装步骤
- 新建用户,5.5不支持root用户运行;
- 安装jdk1.8,设置环境变量;
- 安装Elasticsearch;
- 启动Elasticsearch
- 部署集群配置
- 解决外网无法访问的问题
3.具体安装步骤
3.1 .新建es用户
ElasticSearch是不能用root用户启动的(这是根据elasticsearch的安全策略,不允许用root来启动),以root用户启动会报以下异常
所以我们就需要自己新建一个用户和用户组,这个用户和用户组是专门来管理ElasticSearch服务的。新建用户和用户组如下:
groupadd -g 700 esgroup ——>新建用户组,组名叫esgroup;
useradd -u 701 -g 700 es ——>新建用户,用户名叫es;
passwd es ——>设置用户密码为es;
gpasswd -a es esgroup —–>将用户添加到用户组里面,第一个es表示用户名,第二个esgroup表示组名;
chown -R es:esgroup /home/es —–>给用户主目录赋权限,Root下执行;
chown -R es:esgroup /opt/ —–>给es要安装的路径赋权限, Root下执行;
3.2. 安装jdk1.8
通用标准安装,请参照百度
https://jingyan.baidu.com/article/d5c4b52bebcb64da570dc571.html
3.3. 安装Elasticsearch
解压安装包,到/opt,目录下。
在Linux中,/opt这个目录主要存放那些可选的程序。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。要删除某一程序的时候,你只需删除/opt/(安装的软件)目录即可,而不影响系统其他任何设置,非常简单。
解压到当前目录,使用命令 tar -zxvf elasticsearch-5.5.1.tar.gz
删除压缩文件,使用命令 rm -f elasticsearch-5.5.1.tar.gz
至此,elasticsearch安装完成。
3.4. 修改配置文件
进入该目录,使用命令 cd elasticsearch-5.5.1
可以看到有多个目录和文件,进入其中的config目录(使用命令 cd config)
3.4.1.修改elasticsearch.yml
我们需要编辑其中的 elasticsearch.yml 这一文件,使用命令 vim elasticsearch.yml
修改network.host和discovery.zen.ping.unicast.hosts的IP,改成当前ip地址(通过 ifconfig 命令查看)。如果不修改,则只能本地访问(localhost或127.0.0.1)
在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
3.4.2.修改系统参数
使用命令
vim /etc/security/limits.conf
在最后添加数据如下:(soft nproc和hard nproc也可以设置成65536)
使用命令
vim /etc/security/limits.d/90-nproc.conf
将下图中红框所示位置的值从 1024 改成 2048
使用命令
vim /etc/sysctl.conf
在最后添加一行数据如下:
vm.max_map_count=262144
修改完后,执行如下命令
sysctl -p
4.启动Elasticsearch
启动elasticsearch首先进入其安装目录,使用命令 cd /opt/elasticsearch-5.0.0/bin
正常执行
./elasticsearch
后台启动
./elasticsearch -d
5.部署集群
如果需要部署集群,这里以使用三台虚拟机为例,首先每个虚拟机系统都作如上安装和配置,其中,有几个地方要额外配置一下。
编辑 elasticsearch.yml 文件,设置集群名和每个节点的名字,以及写入每个节点的IP地址,使用命令 vim elasticsearch.yml
注意每个节点的network.host要改成当前节点的IP。
6.外网无法访问问题解决
1.首先检查elasticsearch.yml配置文件,其中的 network.host 和 discovery.zen.ping.unicast.hosts 是否正确输入了当前服务器的IP地址;
2.虚拟机和物理机以及其他主机的IP地址需要在一个网段
如果不在同一个网段,将虚拟机的联网方式改为Bridge模式;
3.物理机ping虚拟机,虚拟机ping物理机能否通,如果不通,关闭物理机和虚拟机的防火墙
Linux下关闭防火墙使用指令;
关闭防火墙:
两种方式:
1)重启后生效:
chkconfig iptables off ( 对应的开启防火墙命令为: # chkconfig iptables on )
2)即时生效,但重启后防火墙会再次启动:
service iptables stop ( 对应的开启防火墙命令为: # service iptables start )
问题
ERROR: bootstrap checks failed system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
原因:
这是在因为Centos6不支持SecComp,而ES5.x默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
解决:
在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
参考文章
http://blog.csdn.net/qiangziqiangz/article/details/62888423
http://www.cnblogs.com/ShawnYuki/p/6818677.html