浏览器访问虚拟机中的ElasticSearch
1、设置外网可访问
首先说明环境:
- Linux版本:centos7.5
- ElasticSearch版本:ElasticSearch 6.5.3(解压后为修改版本)
ElasticSearch修改只有一步即可解决:
-
修改ElasticSearch的配置文件(位置:解压目录下的config/elasticsearch.yml)
[xii@localhost root]$ vi config/elasticsearch.yml
-
保存之后,启动 ElasticSearch
./bin/elasticsearch
注意:运行要求使用普通用户,如果是root用户则会报错
修改后,再次启动ES后,可能会出现下面的错误
[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
然后百度了一下,根据大佬们的博客进行了修改
2、修复上述问题
2.1、修复问题[1]、[2]
-
问题日志描述:
[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]
[1]:elasticsearch过程的最大文件描述符[4096]太低,至少增加到[65536] [2]:用户[es]的最大线程数[1024]太低,至少增加到[4096]
-
问题修复
注意:请使用root权限修改如下文件,修改完成后,需要重启Linux
[root@localhost elasticsearch]# vi /etc/security/limits.conf
在文件中的最下方添加如下配置
# 这里是根据大佬配置 # *号代表是所有用户,你也可以给单独用户分配最大文件描述符和最大线程数 * soft nofile 65536 * hard nofile 131072 * soft nproc 4096 * hard nproc 4096
如果保存并重启Linux之后,基本上是不会出现问题[1]、[2]了
但是我在实际操作中,还是会出现
bootstrap checks failed [1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
问题,我明明修改了limits.conf配置了,但是还是无效,我通过ulimit -Hu
和ulimit -Su
都是4096
所以我重新对limits.conf文件进行了修改,保存重启之后就没有了这个问题
2.2、修复问题[3]
-
问题日志描述
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[3]:最大虚拟内存区域vm.max_map_count [65530]太低,至少增加到[262144]
-
问题修复
注意:请使用root权限修改如下文件,修改完成后,需要重启Linux
[root@localhost elasticsearch]# vi /etc/sysctl.conf
在文件中的最下方添加如下配置
vm.max_map_count=655360
2.3、修复问题[4]
-
问题日志描述
[4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
[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、修复上述问题后,但外网浏览器还是无法访问
我找了好多问题,最后发现是Linux的防火墙打开了,外网浏览器无法访问虚拟机中的ElasticSearch
# 查看防火墙状态
firewall-cmd --state
如果是开启的,则为绿色的running
我的系统版本是centos7.5,所以关闭防火墙为
# 关闭防火墙
systemctl stop firewalld.service
关闭后,在使用 firewall-cmd --state
查看防火墙状态
最后我的就可以访问了,我的地址为http://192.168.254.66:9200/