如何从Elasticearch Python模块获取主机名?

5lhxktic  于 2022-10-06  发布在  Python
关注(0)|答案(2)|浏览(160)

使用Elasticearch,我们如何获得工作的Elastic主机?

es = Elasticsearch()
health = es.cluster.health

上述语句将打印Elasticearch主机的运行状况。但如何从中得到工作的主人呢?

klsxnrf1

klsxnrf11#

使用hosts = es.transport.hosts获取主机列表。

您还可以使用类似以下内容:

con = elasticsearch.connection.RequestsHttpConnection(**hosts[0])
con.perform_request(...)

但更好的是,您可以这样做:

es.transport.perform_request('GET', '/_cat/tasks')

以便在已配置主机列表中的健康主机上执行任何请求。

yws3nbqq

yws3nbqq2#

对于较新的版本[>=8.x.x],可以通过访问.transport.node_pool.all()


# get a list of all connections

nodes = [node.base_url for node in es.transport.node_pool.all()]

相关问题