Elasticsearch python 客户端:通过API调用获取ES版本

问题描述 投票:0回答:3

我想通过python API获取当前的Elasticsearch版本。 我可以轻松地通过 http 调用来获取它,例如

import requests
requests.get(http://endpoint:9200)

但我想知道是否有任何方法可以通过 API 调用而不是对端点的 http 请求来获取版本。喜欢

from elasticsearch import Elasticsearch
es = Elasticsearch()

我浏览了 Elasticsearch python 客户端文档,但找不到获取当前 ES 版本的调用 (https://elasticsearch-py.readthedocs.org/en/master/api.html)

python elasticsearch
3个回答
22
投票

您可以使用 info 命令来实现此目的:

示例:

from elasticsearch import Elasticsearch
es = Elasticsearch()
es.info()

2
投票

如果你只想获得

version number
,你可以这样做:

#/usr/bin/env python
import json
import logging
def get_cluster_version(server, user, password):
    cluster_version = "version"

    r = do_request(verb='get',
               server='http://{0}'.format(server),
               auth=(user, password),
               verify=False)
    json_data = json.loads(r.content.decode('utf8'))
    version_number = str(json_data["version"]["number"])
    logging.info("Elastic cluster version " + str(version_number))

0
投票

这对我有用,返回版本号:

client = Elasticsearch(cloud_id=self.cloud_id, http_auth=self.auth)
return client.info()['version']['number']
© www.soinside.com 2019 - 2024. All rights reserved.