> 文档中心 > ElasticSearch安装部署过程中常见问题及解决方法

ElasticSearch安装部署过程中常见问题及解决方法


作者简介:
🌹 作者:暗夜91
🤟 个人主页:暗夜91的主页
📝 如果感觉文章写的还有点帮助,请帮忙点个关注,谢谢。


1、Linux下外网无法访问的问题

修改配置文件elasticsearch.yml

放开下面的注解 然后配置相应的内容

  1. network.host: 0.0.0.0 #主机地址,这里写本机IP
  2. http.port: 9200 #端口

2、Linux打开外网访问时,启动可能会报一下错误:

  1. [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
  2. [2]: max number of threads [1024] for user [es] is too low, increase to at least [4096]
  3. [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
  4. [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处为用户名)

  1. * soft nofile 65536
  2. * hard nofile 131072
  3. * soft nproc 4096
  4. * hard nproc 4096

解决问题【3】

  1. [root@elk2 ~]# sysctl -w vm.max_map_count=262144
  2. [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 配置

  1. bootstrap.memory_lock: false
  2. bootstrap.system_call_filter: false

再次启动es,成功启动

3、跨域访问

ES默认是不允许跨域访问的,如需远程访问,可以通过ES的配置文件:elasticsearch.yml中添加如下参数,实现跨域访问。

#开启跨域访问支持,默认为false http.cors.enabled: true #跨域访问允许的域名地址,(允许所有域名)以上使用正则 http.cors.allow-origin: /.*/ 

通过以上配置,并重启ES服务,就可以自由访问ES服务器了。

但是允许访问的域名地址为:“*”,是高风险的,这说明任何地方的都可以访问部署的ES服务。因此,实际使用中最好根据需求设定允许访问的域名地址。