Ich möchte alle auf einem ElasticSearch-Server vorhandenen Indizes auflisten. Ich habe es versucht:
curl -XGET localhost:9200/
aber es gibt mir nur folgendes:
{
"ok" : true,
"status" : 200,
"name" : "El Aguila",
"version" : {
"number" : "0.19.3",
"snapshot_build" : false
},
"tagline" : "You Know, for Search"
}
Ich möchte eine Liste aller Indizes.
curl
elasticsearch
Eva
quelle
quelle
curl http://localhost:9200/_stats/indexes\?pretty\=1
curl -s localhost:9200/_aliases?pretty=true | awk -F\" '!/aliases/ && $2 != "" {print $2}'
/stats
Endpunkt oder den Gesundheitsendpunkt mit param_cluster/health?level=indices
Versuchen
Sie erhalten die folgenden selbsterklärenden Ausgaben in tabellarischer Form
quelle
Sie können abfragen
localhost:9200/_status
und erhalten eine Liste mit Indizes und Informationen zu den einzelnen Indizes. Die Antwort sieht ungefähr so aus:quelle
GET /_stats/indexes
/_stats/indices
da es der richtige Plural und auch der Schlüssel ist, der in/_status
und in verwendet wird/_stats
._nodes/stats
und_nodes/status
@KimberlyWDer Befehl _stats bietet Möglichkeiten zum Anpassen der Ergebnisse durch Angabe der gewünschten Metriken. Um die Indizes zu erhalten, lautet die Abfrage wie folgt:
Das allgemeine Format der
_stats
Abfrage lautet:Wo die Metriken sind:
Als Übung für mich selbst habe ich ein kleines Elasticsearch-Plugin geschrieben, das die Funktionalität bietet, Elasticsearch-Indizes ohne weitere Informationen aufzulisten. Sie finden es unter folgender URL:
http://blog.iterativ.ch/2014/04/11/listindices-writing-your-first-elasticsearch-java-plugin/
https://github.com/iterativ/elasticsearch-listindices
quelle
"type": "illegal_argument_exception", "reason": "request [/_stats/indices] contains unrecognized metric: [indices]"
Ich benutze dies, um alle Indizes zu erhalten:
Mit dieser Liste können Sie arbeiten an ...
Beispiel
So erhalten Sie die 3. Spalte oben (Namen der Indizes):
HINWEIS: Sie können auch
awk '{print $3}'
anstelle von verwendencut -d\ -f3
.Spaltenüberschriften
Sie können der Abfrage auch ein Suffix
?v
hinzufügen, um eine Spaltenüberschrift hinzuzufügen. Wenn Sie dies tun, wird diecut...
Methode unterbrochen, daher würde ich empfehlen, dieawk..
Auswahl an dieser Stelle zu verwenden.quelle
curl -s 'http://localhost:9200/_cat/indices?h=index'
druckt nur den Indexnamen aus. Sie müssen keine Shell-Tricks verwenden, um die Spalte zu filtern.tr -s ' '
vorher verwenden, um Leerlaufläufecut
zu komprimieren), oder Sie erhalten den Indexnamen nicht, wenn der Status lautet,red
weil er mit Leerzeichen und aufgefüllt wirdcut
jedes einzelne Leerzeichen als Begrenzung behandelt ein neues Feld, auch wenn dieses "Feld" leer istIch würde auch empfehlen, / _cat / indizes zu erstellen, was eine schöne, von Menschen lesbare Liste Ihrer Indizes ergibt.
quelle
Der einfachste Weg, eine Liste nur von Indizes zu erhalten, besteht darin, die obige Antwort mit dem Parameter 'h = index' zu verwenden:
quelle
curl -XGET 'http://localhost:9200/_cluster/health?level=indices'
Dies wird wie unten ausgegeben
quelle
Ich gebe Ihnen die Abfrage, die Sie auf Kibana ausführen können.
und die CURL-Version wird sein
quelle
Für mehr (Elasticsearch Offizielle Seite)
quelle
So listen Sie die Indizes auf: curl 'localhost: 9200 / _cat / indices? V' Elasticsearch Documentation
quelle
Zugriff auf die gesicherte elastische Suche über Curl (Update 2020)
Wenn das
Elastic Search
gesichert ist, können Sie mit diesem Befehl Indizes auflistenquelle
_stats/indices
gibt das Ergebnis mitindices
.quelle
Die Leute hier haben geantwortet, wie man es in Locken und Sinn macht, einige Leute müssen dies möglicherweise in Java tun.
Hier kommt's
quelle
Probieren Sie diese Katzen-API aus: Sie erhalten eine Liste aller Indizes mit Gesundheitszustand und anderen Details.
CURL -XGET http: // localhost: 9200 / _cat / indizes
quelle
Für Elasticsearch 6.X fand ich Folgendes am hilfreichsten. Jeder liefert unterschiedliche Daten in der Antwort.
quelle
Sie können auch einen bestimmten Index mit abrufen
Für mehr Information
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-index.html
quelle
Hier ist eine andere Möglichkeit, nur die Indizes in der Datenbank zu sehen:
quelle
Eine der besten Möglichkeiten, Indizes + aufzulisten, um ihren Status zusammen mit list anzuzeigen, besteht darin, einfach die folgende Abfrage auszuführen.
Hinweis: Verwenden Sie vorzugsweise Sense, um die richtige Ausgabe zu erhalten.
Die Beispielausgabe ist wie folgt. Der Hauptvorteil ist, dass im Wesentlichen der Indexname und die darin gespeicherten Shards, die Indexgröße und die Shards-IP usw. Angezeigt werden
quelle
Ich benutze den
_stats/indexes
Endpunkt, um einen json-Blob von Daten zu erhalten und dann mit jq zu filtern .Wenn Sie keine Anführungszeichen möchten, fügen Sie a hinzu
-r
jq Flag hinzu.Ja, der Endpunkt ist
indexes
und der Datenschlüssel istindices
, also konnten sie sich auch nicht entscheiden :)Ich brauchte dies, um diese Müllindizes zu bereinigen, die durch einen internen Sicherheitsscan (Nessus) erstellt wurden.
PS. Ich empfehle dringend, sich mit jq vertraut zu machen, wenn Sie über die Befehlszeile mit ES interagieren möchten .
quelle
Java API
quelle
Wenn Sie in Scala arbeiten, können Sie dies tun und verwenden
Future
, indem Sie einen RequestExecutor erstellen. Verwenden Sie dann den IndicesStatsRequestBuilder und den Verwaltungsclient, um Ihre Anfrage zu senden.Der Executor wird aus diesem Blog-Beitrag entfernt, was definitiv eine gute Lektüre ist, wenn Sie versuchen, ES programmgesteuert und nicht durch Curl abzufragen. Wenn Sie dies haben, können Sie ganz einfach eine Liste aller Indizes erstellen:
client
ist eine Instanz von Client, die ein Knoten oder ein Transportclient sein kann, je nachdem, was Ihren Anforderungen entspricht. Sie müssen auch einen implizitenExecutionContext
Gültigkeitsbereich für diese Anforderung haben. Wenn Sie versuchen, diesen Code ohne ihn zu kompilieren, erhalten Sie vom Scala-Compiler eine Warnung, wie Sie diesen Code erhalten, wenn Sie noch keinen importiert haben.Ich brauchte die Anzahl der Dokumente, aber wenn Sie wirklich nur die Namen der Indizes benötigen, können Sie sie aus den Schlüsseln der Karte ziehen, anstatt aus
IndexStats
:Diese Frage wird angezeigt, wenn Sie nach einer Vorgehensweise suchen, auch wenn Sie dies programmgesteuert versuchen. Ich hoffe, dies hilft jedem, der dies in Scala / Java tun möchte. Andernfalls können Curl-Benutzer einfach das tun, was in der Top-Antwort steht, und verwenden
quelle
Sie können diesen Befehl versuchen
curl -X GET http: // localhost: 9200 / _cat / indices? v
quelle
Ich hatte Kibana und ES auf einer Maschine installiert. Aber ich wusste nicht, welche Details (an welchem Pfad oder an welchem Port) der ES-Knoten auf diesem Computer war.
Wie können Sie dies von Kibana (Version 5.6) aus tun?
GET _cat/indices
Ich war daran interessiert, die Größe eines bestimmten ES-Index zu ermitteln
quelle
Wenn Sie Curl auf Ihrem System installiert haben, versuchen Sie diesen einfachen Befehl: curl -XGET xx.xx.xx.xx: 9200 / _cat / indices? V.
Mit dem oben genannten Befehl erhalten Sie ein Ergebnis in diesem Format: result, um alle Indizes abzurufen
quelle