Linux安装
下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
步骤一:上传Linux、解压
代码语言:javascript复制上传Linux服务器:
rz Elasticsearch 6.7.2
解压Es:
sudo tar xvf Elasticsearch 6.7.2
步骤二:修改配置文件
步骤三:启动Es
代码语言:javascript复制[dev@lihuan1.net elasticsearch-6.7.2]$ ./bin/elasticsearch
备注:后台启动
./elasticsearch -d
sh elasticsearch.sh &
nohup sh elasticsearch &
nohup sh elasticsearch.sh &
注意:1.切换目录的权限 2.注意观察logs/my-es6-prod.log日志
问题1
代码语言:javascript复制java.nio.file.AccessDeniedException:Exception in thread "main" java.nio.file.AccessDeniedException: /home/elasticsearch/elasticsearch-6.7.2/config/jvm.options
原因:当前用户没有执行权限
权限不足:[dev@lihuan1-dev.bj1.haodf.net elasticsearch-6.7.2]$ chown -R dev:dev elasticsearch-6.7.2
问题2
代码语言:javascript复制max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
原因:用户拥有的内存权限太小,至少需要262144。
代码语言:javascript复制解决方案:方案一
切换到root用户
执行命令:sysctl -w vm.max_map_count=262144
查看结果:sysctl -a|grep vm.max_map_count
显示:vm.max_map_count = 262144
解决方案:方案二
[dev@lihuan1.net elasticsearch-6.7.2]$ sudo vim /etc/sysctl.conf
vm.max_map_count=655360
[dev@lihuan1.net elasticsearch-6.7.2]$ sudo sysctl -p
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
vm.max_map_count = 655360
问题3
代码语言:javascript复制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.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
解决方案: 在elasticsearch.yml中配置bootstrap.system_call_filter为false,
代码语言:javascript复制注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
问题4
代码语言:javascript复制max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
解决方案:修改/etc/security/limits.conf文件
代码语言:javascript复制# End of file
* soft nofile 65536
* hard nofile 65536
* soft nproc 6552
"/etc/security/limits.conf" [converted] 53L, 1883C
使用 ulimit -Hn 查看当前值
代码语言:javascript复制[dev@lihuan1-dev.bj1.haodf.net bin]$ sudo vim /etc/profile
[dev@lihuan1-dev.bj1.haodf.net bin]$ ulimit -Hn
65535
注意:修改完后要退出用户重启,再ulimit -Hn 查看当前值,已发生变化。
问题5
代码语言:javascript复制memory locking requested for elasticsearch process but memory is not locked
原因:elasticsearch.yml配置文件中为true(bootstrap.memory_lock: true)
官方地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/_memory_lock_check.html
解决方案:
代码语言:txt复制第一步:root权限编辑/etc/security/limits.conf
$ sudo vim /etc/security/limits.conf
第二步:添加如下内容,保存退出
* soft memlock unlimited
* hard memlock unlimited
这里的*代表的是所有用户名称,可以更换为指定用户名
另:这里有个坑就是如果/etc/security/limits.d文件夹下的有配置文件,那么会覆盖刚才修改的文件,所以请确保该目录没有其它文件,如有请联系运维人员确认删除
第三步:修改/etc/sysctl.conf
sudo echo"vm.swappiness=0" >> /etc/sysctl.conf
这个参数的作用是告诉Linux内核尽少的使用swap分区,不等于禁用swap,通过少使用swap来提高性能。
如果想立即生效而不是重启之后让sysctl.conf生效,请使用sysctl -p
第四步:重新登录或重启服务器方可生效