0.设置虚拟机中的elasticsearch可以在物理机中连接访问
查看本机IP, ipconfig或者ip addr
在elasticsearch.yml`中配置
ip addr
vi /usr/local/elasticsearch/config/elasticsearch.yml
#在Network下修改
network.host: 192.168.*.*
#端口号可以不修改,elasticsearch默认端口就是9200
http.port: 9200
我这里是使用的elasticsearch6.7.0版本, CentOS版本是6.5, 修改完这些配置之后, 启动会报错,下面是遇到的问题以及解决方案
1.没有修改权限,vim 修改文件出现错误
"E45: 'readonly'' option is set (add ! to override)"
原因可能是使用了普通用户对文件进行的修改操作, 切换到root用户之后再修改该文件就不会报错了
切换到root用户
su root
当然了,报错信息中也提示了解决方案, 那就是在保存退出的命令后面加上感叹号!就可以强制保存退出了,也可以解决
:wq!
2.报错信息
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
修改/etc/security/limits.conf
文件如下
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096
es为启动elasticsearch程序的普通用户
3.报错信息
max number of threads [3790] for user [es] is to low, increase to at least [4096]
修改/etc/security/limits.d/90-nproc.conf
文件
vi /etc/security/limits.d/90-nproc.conf
将文件中未注释的代码
* soft nproc 4096
修改为
es soft nproc 4096
如果后面设置的数值小于4096, 需要修改为4096
4.报错信息
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.cong
文件, 添加一行代码
vm.max_map_count = 655360
保存后执行sysctl -p
命令查看是否修改成功, 重启elasticsearch如果还存在该报错,关掉虚拟机后重启即可
5.报错信息
JVM is using the client VM [Java HotSpot(TM) Client VM] but should be using a server VM for the best performance
JVM正在使用客户机VM [Java HotSpot™客户机VM],但是为了获得最佳性能,应该使用服务器VM
将client VM设置成 Server VM:
找到 jre安装目录 /lib /i386 /jvm.cfg
文件,JVM默认是client版本 :如图所示,第一行和第二行互换位置即可,谁在上面就是谁。目前是client VM,
执行命令
vi /usr/java/jdk1.8.0_131/jre/lib /i386 /jvm.cfg
将光标移至-client IF_SERVER
处输入ddp,即可将该行与下一行的位置互换
6.报错信息
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
问题原因:
Centos6不支持SecComp,而ES默认bootstrap.system_call_filter
为true
解决方案:
在elasticsearch.yml
中配置bootstrap.system_call_filter
为false
,注意要在Memory
下面:
vi /usr/local/elasticsearch/config/elasticsearch.yml
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
7.关闭防火墙
设置其他机器访问是需要关闭防火墙的
CentOS7关闭方式
systemctl stop firewalld.service
其他版本虚拟机关闭方式
service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off
之后重启elasticsearch就可以在windows物理机上访问了
至此, 问题完美修复! ! !