By using AWS re:Post, you agree to the Terms of Use
/_nodes/http info missing lots of info/

_nodes/http info missing lots of info

0

The Elasticsearch client for golang uses info derived from the follow ES api call:

GET /_node/http
https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-info.html

Normally this call returns lot of information about the node including IP address but when making the call to the AWS service this information is missing. This causes the golang client to fail to be able to discover any nodes. Here are two examples which highlight the problem:

regular node i have running locally:
curl "http://localhost:9200/_nodes/http?pretty"
{
"_nodes" : {
"total" : 1,
"successful" : 1,
"failed" : 0
},
"cluster_name" : "docker-cluster",
"nodes" : {
"hnsnurlLTG2-XbBQFyYg9w" : {
"name" : "16c3f8d15864",
"transport_address" : "172.25.0.4:9300",
"host" : "172.25.0.4",
"ip" : "172.25.0.4",
"version" : "7.8.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
"roles" : [
"data",
"ingest",
"master",
"ml",
"remote_cluster_client",
"transform"
],
"attributes" : {
"ml.machine_memory" : "25225474048",
"xpack.installed" : "true",
"transform.node" : "true",
"ml.max_open_jobs" : "20"
},
"http" : {
"bound_address" : [
"0.0.0.0:9200"
],
"publish_address" : "172.25.0.4:9200",
"max_content_length_in_bytes" : 104857600
}
}
}
}

AWS equivalent:
curl -XGET https://vpc-address....amazonaws.com/_nodes/http?pretty
{
"_nodes" : {
"total" : 3,
"successful" : 3,
"failed" : 0
},
"cluster_name" : "XXX",
"nodes" : {
"8oxT_9maSMif5iXoQptpKA" : {
"name" : "d026e0070020663bdd93028c2c801292",
"version" : "7.7.0",
"build_flavor" : "oss",
"build_type" : "tar",
"build_hash" : "unknown",
"roles" : [ "ingest", "master", "data", "remote_cluster_client" ]
},
"8joBdfy6Q-aULryA3aP00w" : {
"name" : "3992f18f3b80c28fbb6d5b5624c4bdfe",
"version" : "7.7.0",
"build_flavor" : "oss",
"build_type" : "tar",
"build_hash" : "unknown",
"roles" : [ "ingest", "master", "data", "remote_cluster_client" ]
},
"2v572nbWQK6zrXmwGUiRmQ" : {
"name" : "41d42ffdc2fdaf9c7a425e29c6ba92d6",
"version" : "7.7.0",
"build_flavor" : "oss",
"build_type" : "tar",
"build_hash" : "unknown",
"roles" : [ "ingest", "master", "data", "remote_cluster_client" ]
}
}
}

Obviously there are going to be some differences local Vs AWS with things like plugins but returning the actually http information seems pretty fundemental no?

asked a year ago2 views
1 Answers
0

The information is deliberately hidden because the IPs are private and as such would not be useful to any clients trying to retrieve them. Most cloud providers, including AWS, provide a loadbalancer instead. More information here:

https://www.elastic.co/blog/elasticsearch-sniffing-best-practices-what-when-why-how

answered a year ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions