我在一台服务器上运行一个ELK堆栈。 elasticsearch健康查询向我展示了两个节点:
curl -XGET http://localhost:9200/_cluster/health?pretty
{
"cluster_name" : "elasticsearch",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 2,
"number_of_data_nodes" : 2,
"active_primary_shards" : 901,
"active_shards" : 1802,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
据我所知,端口9200上有一个节点,端口9300上有一个节点。
因为我只有一台服务器,所以我认为我不需要两个节点。我可以安全地删除这些节点上的一个节点,如果是这样的话
答案 0 :(得分:0)
默认情况下,每个ElasticSearch节点将打开2个端口:http为9200,传输协议为9300。
这里发生的是你实际上在同一个本地网络中运行另一个 ElasticSearch实例(可能是同一台计算机,但肯定有不同的端口)。
节点将按名称加入群集(在您的情况下为elasticsearch
)。
要了解群集的节点,请运行以下查询:
curl -XGET 'http://localhost:9200/_nodes?pretty'
要避免不需要的节点加入群集,请在ElasticSearch配置文件(/etc/elasticsearch/elasticsearch.yml
)中选择适当的群集名称;永远不要保留默认值。
在停止恶意节点并更改良好节点中的群集名称后,很可能您的群集状态将变为黄色,因为所有恢复分片都将被取消分配。只要您不需要高可用性,这就不成问题了。