Je voudrais lister tous les index présents sur un serveur ElasticSearch. J'ai essayé ceci:
curl -XGET localhost:9200/
mais ça me donne juste ceci:
{
"ok" : true,
"status" : 200,
"name" : "El Aguila",
"version" : {
"number" : "0.19.3",
"snapshot_build" : false
},
"tagline" : "You Know, for Search"
}
Je veux une liste de tous les index ..
curl http://localhost:9200/_stats/indexes\?pretty\=1
curl -s localhost:9200/_aliases?pretty=true | awk -F\" '!/aliases/ && $2 != "" {print $2}'
/stats
point final ou le point final santé avec param_cluster/health?level=indices
Essayer
Il vous donnera la sortie auto-explicative suivante sous forme de tableau
la source
Vous pouvez interroger
localhost:9200/_status
et cela vous donnera une liste d'indices et d'informations sur chacun. La réponse ressemblera à ceci:la source
GET /_stats/indexes
/_stats/indices
car c'est le pluriel correct et aussi la clé utilisée dans/_status
et en/_stats
._nodes/stats
et_nodes/status
@KimberlyWLa commande _stats fournit des moyens de personnaliser les résultats en spécifiant les mesures souhaitées. Pour obtenir les indices, la requête est la suivante:
Le format général de la
_stats
requête est:Où les mesures sont:
Pour moi-même, j'ai écrit un petit plugin elasticsearch fournissant la fonctionnalité de lister les indices elasticsearch sans aucune autre information. Vous pouvez le trouver à l'url suivante:
http://blog.iterativ.ch/2014/04/11/listindices-writing-your-first-elasticsearch-java-plugin/
https://github.com/iterativ/elasticsearch-listindices
la source
"type": "illegal_argument_exception", "reason": "request [/_stats/indices] contains unrecognized metric: [indices]"
J'utilise ceci pour obtenir tous les indices:
Avec cette liste, vous pouvez travailler sur ...
Exemple
Pour obtenir la 3ème colonne ci-dessus (noms des indices):
REMARQUE: vous pouvez également utiliser
awk '{print $3}'
au lieu decut -d\ -f3
.En-têtes de colonne
Vous pouvez également suffixer la requête avec un
?v
pour ajouter un en-tête de colonne. Cela interromprait lacut...
méthode, je vous recommande donc d'utiliser laawk..
sélection à ce stade.la source
curl -s 'http://localhost:9200/_cat/indices?h=index'
affichera uniquement le nom de l'index. Pas besoin d'utiliser des astuces shell pour filtrer la colonne.tr -s ' '
avantcut
de se exécute Condense des espaces) ou bien vous ne serez pas obtenir le nom d'index si le statut est ,red
car il sera rembourré avec des espaces etcut
traite chaque espace individuel comme délimitation un nouveau champ même si ce "champ" finit videJe recommanderais également de faire / _cat / indices qui donne une belle liste lisible par l'homme de vos index.
la source
La façon la plus simple d'obtenir une liste d'index uniquement est d'utiliser la réponse ci-dessus, avec le paramètre 'h = index':
la source
curl -XGET 'http://localhost:9200/_cluster/health?level=indices'
Cela sortira comme ci-dessous
la source
Je vais vous donner la requête que vous pouvez exécuter sur kibana.
et la version CURL sera
la source
Pour en savoir plus (site officiel d'Elasticsearch)
la source
Pour répertorier les index, vous pouvez effectuer: curl 'localhost: 9200 / _cat / indices? V' Elasticsearch Documentation
la source
Accès à la recherche élastique sécurisée via Curl (mise à jour 2020)
Si le
Elastic Search
est sécurisé, vous pouvez utiliser cette commande pour répertorier les indexla source
_stats/indices
donne le résultat avecindices
.la source
Les gens ici ont répondu comment le faire en boucle et dans le sens, certaines personnes pourraient avoir besoin de le faire en java.
Ça y est
la source
Essayez cette API de chat: elle vous donnera la liste de tous les indices avec la santé et d'autres détails.
CURL -XGET http: // localhost: 9200 / _cat / indices
la source
Pour Elasticsearch 6.X, j'ai trouvé ce qui suit le plus utile. Chacun fournit des données différentes dans la réponse.
la source
Vous pouvez également obtenir un index spécifique en utilisant
Pour plus d'informations
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-index.html
la source
voici une autre façon de voir les indices dans la base de données:
la source
L'un des meilleurs moyens de répertorier les indices + pour afficher son état avec la liste: consiste simplement à exécuter la requête ci-dessous.
Remarque: utilisez de préférence Sense pour obtenir la sortie appropriée.
L'échantillon de sortie est comme ci-dessous. Le principal avantage est qu'il affiche essentiellement le nom de l'index et les fragments dans lesquels il a été enregistré, la taille de l'index et l'ip des fragments, etc.
la source
J'utilise le
_stats/indexes
point de terminaison pour obtenir un blob json de données, puis filtrer avec jq .Si vous ne voulez pas de guillemets, ajoutez un
-r
indicateur à jq.Oui, le point de terminaison est
indexes
et la clé de données estindices
, donc ils ne pouvaient pas non plus se décider :)J'en avais besoin pour nettoyer ces indices d'ordures créés par une analyse de sécurité interne (nessus).
PS. Je recommande fortement de vous familiariser avec jq si vous allez interagir avec ES à partir de la ligne de commande.
la source
API Java
la source
Si vous travaillez dans scala, une façon de le faire et d'utiliser
Future
est de créer un RequestExecutor, puis utilisez IndicesStatsRequestBuilder et le client administratif pour soumettre votre demande.L'exécuteur est retiré de ce billet de blog, ce qui est certainement une bonne lecture si vous essayez d'interroger ES par programme et non par curl. Une fois que vous l'avez, vous pouvez créer une liste de tous les index assez facilement comme ceci:
client
est une instance de Client qui peut être un nœud ou un client de transport, selon ce qui convient à vos besoins. Vous devrez également avoir uneExecutionContext
portée implicite pour cette demande. Si vous essayez de compiler ce code sans lui, vous obtiendrez un avertissement du compilateur scala sur la façon de l'obtenir si vous n'en avez pas déjà importé.J'avais besoin du nombre de documents, mais si vous n'avez vraiment besoin que des noms des index, vous pouvez les extraire des clés de la carte au lieu de
IndexStats
:Cette question apparaît lorsque vous cherchez comment faire cela même si vous essayez de le faire par programme, donc j'espère que cela aidera toute personne qui cherche à le faire dans scala / java. Sinon, les utilisateurs de curl peuvent simplement faire ce que dit la première réponse et utiliser
la source
vous pouvez essayer cette commande
curl -X GET http: // localhost: 9200 / _cat / indices? v
la source
J'ai fait installer Kibana et ES sur une machine. Mais je ne connaissais pas les détails (sur quel chemin ou port) était le nœud ES sur cette machine.
Alors, comment pouvez-vous le faire à partir de Kibana (version 5.6)?
GET _cat/indices
Je voulais trouver la taille d'un indice ES particulier
la source
Si curl est installé sur votre système, essayez cette commande simple: curl -XGET xx.xx.xx.xx: 9200 / _cat / indices? V
La commande mentionnée ci-dessus vous donne le résultat dans ce format: résultat pour récupérer tous les indices
la source