Linux环境下安装Elasticsearch
(因为Elasticsearch需要jdk1.8或更高的版本才可以运行)
提前下载tar.gz相关文件,下载地址:
https://www.elastic.co/downloads/elasticsearch
这里下载的是elasticsearch-5.5.2.tar.gz
进入Linux相关目录
解压下载好的tar.gz文件到这个目录
Linux通过登录root用户(Elasticsearch不允许通过root启动,所以要新增一个用户),添加一个用户elk(自定义即可)
执行:useradd luck
设置密码:passwd luck
root用户下,执行以下命令:
chown -R elk elasticsearch-5.5.2 和 chgrp -R elk elasticsearch-5.5.2
接下来,编辑elasticsearch/config/elasticsearch.yml
在文件的末尾新增如下几行:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 192.168.25.128
http.cors.enabled: true
http.cors.allow-origin: "*"
还是root用户下,最后按步骤执行以下几步:
第一步:
vim /etc/security/limits.conf
末尾添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
第二步:
vim /etc/security/limits.d/90-nproc.conf
修改如下内容:
* soft nproc 1024
#修改为
* soft nproc 2048
第三步:
vim /etc/sysctl.conf
末尾添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p
最后,退出root用户登录,使用elk用户登录,去到/usr/local/elasticsearch-5.5.2/bin
目录下,执行"./elasticsearch"启动elasticsearch
通过本机访问:curl 192.168.25.128:9200/127.0.0.1:9200
通过局域网访问:192.168.25.128:9200
如果按照上面的操作,下面的可以不用看注意:
几乎每一次装都会遇到的坑,这些坑只有5.x.x版本有,2.x.x版本的几乎没有遇到过:
1、机器内剩余内存较少,会启动失败,并且有类似如下报错:
```
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000008a660000, 1973026816, 0) failed; error='Cannot allocate memory' (errno=12)
这是因为es的jvm参数-Xmx和-Xms默认都为2G
修改config下的jvm.option文件
# vim elasticsearch/elasticsearch-5.5.1/config/jvm.opstions
将
-Xms2g
-Xmx2g
改为
-Xms1g
-Xmx1g
或更小
-Xms512M
-Xmx512M
再次启动即可
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.x默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。详见 :https://github.com/elastic/elasticsearch/issues/22899
解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]
解决方法:切换到root用户,编辑limits.conf 添加类似如下内容
#vim /etc/security/limits.conf
添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
max number of threads [1024] for user [lish] likely too low, increase to at least [2048]
解决方法:切换到root用户,进入limits.d目录下修改配置文件。
#vim /etc/security/limits.d/90-nproc.conf
修改如下内容:
* soft nproc 1024
修改为
* soft nproc 2048
-
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
解决方法:切换到root用户修改配置sysctl.conf
#vim /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
#sysctl -p
然后,再启动elasticsearch,即可启动成功。
问题五:max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
解决:修改切换到root用户修改配置limits.conf 添加下面两行
命令:vi /etc/security/limits.conf
* hard nofile 65536
* soft nofile 65536
切换到es的用户。