J'ai une configuration serveur Kibana dans une configuration classique WAPITI , interrogeant une instance Elasticsearch .
J'utilise la console Kibana pour exécuter des requêtes sophistiquées sur elasticsearch. Je voudrais utiliser certaines de ces requêtes dans le linem de commande en utilisant cURL ou tout autre outil http.
Comment puis-je convertir une recherche Kibana en direct, cURL-like REST call to elasticsearch ?
Au bas de votre visualisation, il y a un petit curseur sur lequel vous pouvez cliquer pour afficher plus de détails sur la requête sous-jacente:
Ensuite, vous pouvez cliquer sur le bouton "Demande" afin d'afficher la requête sous-jacente, que vous pouvez copier/coller et faire ce qui vous convient.
[~ # ~] mise à jour [~ # ~]
Ensuite, vous pouvez copier/coller la requête à partir de la zone de texte "Demande" et simplement la coller dans une boucle comme celle-ci:
curl -XPOST localhost:9200/your_index/your_type/_search -d '{
"query": {
"filtered": {
"query": {
"query_string": {
"analyze_wildcard": true,
"query": "blablabla AND blablabla"
}
},
"filter": {
"bool": {
"must": [
{
"range": {
"@timestamp": {
"gte": 1439762400000,
"lte": 1439848799999
}
}
}
],
"must_not": []
}
}
}
},
"highlight": {
"pre_tags": [
"@kibana-highlighted-field@"
],
"post_tags": [
"@/kibana-highlighted-field@"
],
"fields": {
"*": {}
}
},
"size": 420,
"sort": {
"@timestamp": "desc"
},
"aggs": {
"2": {
"date_histogram": {
"field": "@timestamp",
"interval": "30m",
"pre_zone": "+02:00",
"pre_zone_adjust_large_interval": true,
"min_doc_count": 0,
"extended_bounds": {
"min": 1439762400000,
"max": 1439848799999
}
}
}
},
"fields": [
"*",
"_source"
],
"script_fields": {},
"fielddata_fields": [
"@timestamp"
]
}'
Vous devrez peut-être modifier quelques éléments (comme les balises de surbrillance avant/après, etc.)
Si vous êtes en ligne à l'aide d'un navigateur Chrome Chrome, vous pouvez accéder à votre tableau de bord Kibana, ouvrir la console développeur et écrire votre requête tout en ayant l'onglet Network
ouvert dans la console développeur. Lorsque vous recherchez votre requête dans le tableau de bord Kibana, vous verrez la demande apparaître dans la console du développeur. Là, vous pouvez "cliquer avec le bouton droit" et sélectionner Copy as cURL
, qui copiera la commande curl dans votre presse-papiers. Notez que les informations d'identification de votre authentification de base peuvent également être copiées. Faites donc attention où vous le collez.
Une autre option serait d'interroger Elastic Search à l'aide de requêtes lucene (même syntaxe que Kibana utilise) à l'aide de l'API de recherche ES query_string
requêtes:
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html
Tiré de l'un des exemples de doc, vous interrogeriez ES en utilisant quelque chose comme ceci:
GET /_search
{
"query": {
"query_string" : {
"default_field" : "content",
"query" : "this AND that OR thus"
}
}
}