我想通过REST API或解析HTML来获取ELK版本。
我在查找API文档时一无所获
重新编辑: 在python中...我发现没有比这更好的了
re.findall(r"version":"(\d\.\d\.\d)"", requests.get(my_elk).content.decode())[0]
答案 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"]