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,

es 修改端口 esxi6.7修改端口_报错信息


执行命令

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_filterfalse,注意要在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物理机上访问了

es 修改端口 esxi6.7修改端口_elasticsearch_02

至此, 问题完美修复! ! !