无法连接运行在不同端口的Elasticsearch Docker容器

3

我有一个elasticsearch 7.6.1的docker容器,想要在9400端口和9500端口上运行。

这是我使用的docker运行命令。

docker run -d --name elasticsearch761v2  -v /data/dump/:/usr/share/elasticsearch/data 

-p 9400:9400 -p 9500:9500 -e "discovery.type=single-node" elasticsearch:7.6.1

以下是输出结果。
docker ps -a | grep elastic
idofcontainer        elasticsearch:7.6.1                        "/usr/local/bin/docke"   18 minutes ago      Up 4 minutes                     

9200/tcp, 0.0.0.0:9400->9400/tcp, 9300/tcp, 0.0.0.0:9500->9500/tcp   elasticsearch761v2

我也将elasticsearch.yml设置如下。
[root@idofcontainer config]# vi elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
transport.tcp.port: 9400

我已经为上述端口添加了iptables条目。
该容器的日志为:-
{"type": "server", "timestamp": "2020-04-06T08:25:22,684Z", "level": "INFO", "component": "o.e.c.r.a.AllocationService", "cluster.name": "docker-cluster", "node.name": "4196b5b23",
"message": "Cluster health status changed from [RED] to [GREEN] (reason: [shards started [[.kibana_task_manager_1][0], [.kibana_1][0]]]).", "cluster.uuid": "gx7s8R_PTUK4lFPPGBZA", "node.id": "XfLZnNNnQnAOHJnWdDQg"  }

Curl 的输出如下所示:-
curl http://eserver:9400/_cat
This is not an HTTP port

由于这个问题,我的Kibana也无法连接到ES服务器。 我已经将kibana.yml设置为指向上述端口。 Kibana.yml。
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: ["http://eserver:9400/"]
xpack.monitoring.ui.container.elasticsearch.enabled: true

这个 Kibana 容器的日志。
{"type":"log","@timestamp":"2020-04-06T08:49:14Z","tags":["warning","elasticsearch","admin"],"pid":7,"message":"Unable to revive connection: http://eserver:9400/"}

{"type":"log","@timestamp":"2020-04-06T08:49:14Z","tags":["warning","elasticsearch","admin"],"pid":7,"message":"No living connections"}
1个回答

6

你定义了自定义传输端口 9400 并在 curl 命令中将其用作检查Elastic服务器的HTTP端口,错误消息清楚地指出了问题。

这不是一个HTTP端口

如您所述,您想在9400和9500上运行Elastic,那么您需要正确地将默认的HTTP端口9200绑定到9500,使用以下命令。

docker run -d --name elasticsearch761v2  -v /data/dump/:/usr/share/elasticsearch/data 

-p 9400:9400 -p 9500:9200 -e "discovery.type=single-node" elasticsearch:7.6.1

请注意只需更改-p 9500:9200,然后您就可以使用curl http://eserver:9500检查您的ES服务器,即使用HTTP端口。


1
嘿,谢谢。我在发布问题后意识到并更改了端口,你的答案是正确的。谢谢 :) - penta
你能看一下这个问题吗?https://stackoverflow.com/questions/61079243/elasticsearch-reindex-elasticsearch-dump-does-not-copy-all-fields-of-the-source - penta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接