ElasticSearch安装部署过程中常见问题及解决方法
作者简介:
🌹 作者:暗夜91
🤟 个人主页:暗夜91的主页
📝 如果感觉文章写的还有点帮助,请帮忙点个关注,谢谢。
1、Linux下外网无法访问的问题
修改配置文件elasticsearch.yml
放开下面的注解 然后配置相应的内容
- network.host: 0.0.0.0 #主机地址,这里写本机IP
- http.port: 9200 #端口
2、Linux打开外网访问时,启动可能会报一下错误:
- [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
- [2]: max number of threads [1024] for user [es] is too low, increase to at least [4096]
- [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
- [4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
解决:
解决问题【1】【2】
[root@elk2 ~]# vim /etc/security/limits.conf
在文件未添加以下内容(xx处为用户名)
- * soft nofile 65536
- * hard nofile 131072
- * soft nproc 4096
- * hard nproc 4096
解决问题【3】
- [root@elk2 ~]# sysctl -w vm.max_map_count=262144
- [root@elk2 ~]# vim /etc/sysctl.conf #让配置永久生效
在文末添加以下内容
vm.max_map_count=262144
保存后,执行:
sysctl -p
重新启动,成功。
解决问题【4】
Centos6不支持SecComp,而ES6默认bootstrap.system_call_filter为true
[es@elk2 elasticsearch-6.2.2]$ vim config/elasticsearch.yml
禁用:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
取消bootstrap.memory_lock的注释,添加bootstrap.system_call_filter 配置
- bootstrap.memory_lock: false
- bootstrap.system_call_filter: false
再次启动es,成功启动
3、跨域访问
ES默认是不允许跨域访问的,如需远程访问,可以通过ES的配置文件:elasticsearch.yml中添加如下参数,实现跨域访问。
#开启跨域访问支持,默认为false http.cors.enabled: true #跨域访问允许的域名地址,(允许所有域名)以上使用正则 http.cors.allow-origin: /.*/
通过以上配置,并重启ES服务,就可以自由访问ES服务器了。
但是允许访问的域名地址为:“*”,是高风险的,这说明任何地方的都可以访问部署的ES服务。因此,实际使用中最好根据需求设定允许访问的域名地址。