场景
服务上线部署后,访问日志接口提示 NoNodeAvailableException[None of the configured nodes are available
linux本地测试环境
elasticsearch服务,应用服务 部署在同一ip下(测试的时候没有问题)
本地elasticsearch.yml部署配置如下
cluster.name: gis-elk
node.name: node-1
network.host: 192.168.100.88
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
访问:192.168.100.88:9200正常
linux线上环境
elasticsearch服务部署在172.27.27.82
应用服务部署在172.27.27.90
线上elasticsearch.yml配置
cluster.name: gis-elk
node.name: node-1
network.host: 127.0.0.1
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
线上访问:172.27.27.82:9200(正常显示启动信息)
问题分析:
(1)线上代码中的配置和本地代码中配置都确定是一样的(包括版本,集群名称等)。
(2)部署环境上有区别:
线上是应用服务和elasticsearch部署时分开的(172.27.27.90,172.27.27.82),
本地是在同一个ip部署的
(3)elasticsearch.yml配置中区别:
线上部署的是network.host: 127.0.0.1
本地部署的是network.host: 192.168.100.88
问题解决方法:
修改配置文件中的network.host项,将network.host: 127.0.0.1修改为本机network.host: 172.27.27.82
原因:
线上应用和es服务是分开部署的,es配置中设置成127.0.0.1只能被本机访问,
而设置成172.27.27.82可以被本机和外部访问
拓展延伸:怎么修改Elasticsearch的对外ip 默认是本地IP 127.0.0.1
network.bind_host: 172.27.27.82
参考:
127.0.0.1和localhost和本机IP三者的区别_lianzhang861的博客-CSDN博客_本机地址1,什么是环回地址??与127.0.0.1的区别呢??环回地址是主机用于向自身发送通信的一个特殊地址(也就是一个特殊的目的地址)。可以这么说:同一台主机上的两项服务若使用环回地址而非分配的主机地址,就可以绕开TCP/IP协议栈的下层。(也就是说:不用再通过什么链路层,物理层,以太网传出去了,而是可以直接在自己的网络层,运输层进行处理了)IPv4的环回地址为:127.0.0.0到127.255.25...https://blog.csdn/lianzhang861/article/details/80454606
更多推荐
es 提示 NoNodeAvailableException[None of the configured nodes are available
发布评论