在REST API中哪里可以找到ELK版本?

时间:2019-02-12 10:33:02

标签: python rest elastic-stack

我想通过REST API或解析HTML来获取ELK版本。

我在查找API文档时一无所获

重新编辑: 在python中...我发现没有比这更好的了

re.findall(r"version":"(\d\.\d\.\d)&quot", requests.get(my_elk).content.decode())[0]

3 个答案:

答案 0 :(得分:1)

Elasticsearch提供JSON,而不是HTML。因此,您可以使用jq

$ curl -s localhost:9200 | jq '.version.number'
6.6.0

在Python中,请不要使用re模块...请使用json模块并实际解析该内容

答案 1 :(得分:0)

没有HTML,但是如果您在Kibana的控制台或GET /中调用curl -XGET http://localhost:9200/,则返回值为:

{
  "name" : "instance-0000000039",
  "cluster_name" : "c2edd39f6fa24b0d8e5c34e8d1d19849",
  "cluster_uuid" : "VBkvp8OmTCaVuVvMioS3SA",
  "version" : {
    "number" : "6.6.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "a9861f4",
    "build_date" : "2019-01-24T11:27:09.439740Z",
    "build_snapshot" : false,
    "lucene_version" : "7.6.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

因此,您所需要做的就是从JSON响应中获取version.number

答案 2 :(得分:0)

如果您已经在使用requests库,为什么不使用json方法来分析结果呢?

requests.get(my_elk).json()["version"]["number"]