Je voudrais obtenir la version ELK via l'API REST ou analyser le code HTML.
Je recherche dans la documentation de l'API sans rien trouver
Ré-éditer: En python ... je ne suis pas trouvé mieux que
re.findall(r"version":"(\d\.\d\.\d)"", requests.get(my_elk).content.decode())[0]
3 Réponses :
Il n'y a pas de HTML, mais si vous appelez GET /
dans la console de Kibana ou curl -XGET http: // localhost: 9200 /
, le retour sera:
{ "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" }
Il vous suffit donc d'obtenir version.number
à partir de la réponse JSON.
Elasticsearch donne JSON, pas HTML. Donc, vous pouvez utiliser jq
$ curl -s localhost:9200 | jq '.version.number' 6.6.0
En Python, veuillez ne pas utiliser le module re
... Utilisez json module et analyse réellement ce contenu
Si vous utilisez déjà la bibliothèque requests
, pourquoi ne pas utiliser la méthode json
pour analyser le résultat?
requests.get(my_elk).json()["version"]["number"]