Elasticsearch löscht alle Indizes

Elasticsearch Loscht Alle Indizes



Elasticsearch ist eine kostenlose Open-Source-Such- und Analyse-Engine, die den ELK-Stack unterstützt. Elasticsearch ermöglicht es den verschiedenen Datenpipelines mit Tools wie Logstash, die Daten zu sammeln und zu aggregieren. Elasticsearch speichert dann die bereitgestellten Daten, sodass die Anwendungen nahezu in Echtzeit auf große Datenmengen zugreifen, diese durchsuchen, sortieren und filtern können. Elasticsearch ermöglicht es Ihnen auch, die verschiedenen Daten mit integrierten Tools zu visualisieren.

Aufgrund dieser Funktionen eignet sich Elasticsearch hervorragend zum Durchsuchen und Sortieren der umfangreichen Datenmengen mit minimaler bis keiner Latenz. Egal, ob Sie eine Suchmaschine erstellen oder Protokolle, Metriken und andere Textdaten analysieren, Elasticsearch ist eine gute Wahl.







Das Herzstück von Elasticsearch ist ein Index. Ein Index verweist auf die Einheit, die für die Speicherung der Dokumente in Elasticsearch verantwortlich ist. Ein Index ist relativ äquivalent zu einer Datenbank im Zusammenhang mit relationalen Datenbanken. Beispielsweise können Sie einen Index haben, der alle Daten für die Protokolle einer Webanwendung enthält.



Wie bei allen Datenbanken können Sie auf ein Szenario stoßen, in dem Sie alle Daten aus Ihrem Cluster entfernen müssen, damit Sie mit einer sauberen Weste beginnen können.



Dieser Artikel zeigt Ihnen, wie Sie die Elasticsearch-API-Funktionen verwenden, um alle Indizes aus Ihrem Cluster zu entfernen.





VORSICHT: Die in diesem Artikel verwendeten Methoden und Techniken führen zu Datenverlust. Wir übernehmen keine Verantwortung für Datenverluste, die aufgrund der Anweisungen in diesem Artikel auftreten können.

Elasticsearch Delete Index-API

Wenn Sie Elasticsearch starten, müssen Sie wissen, wie die grundlegenden API-Aufrufe ausgeführt werden. Dies liegt daran, dass Elasticsearch die APIs maximal nutzt.



Wie Sie sich vorstellen können, verwenden wir die Delete Index API, um einen Index aus einem Cluster zu entfernen. Die Syntax für die Indexlöschanforderungen lautet wie folgt:

LÖSCHEN /< Index >


Die Anforderung entfernt den angegebenen Index und die gespeicherten Dokumente, Shards und alle zugehörigen Metadaten.

Beachten Sie, dass dadurch keine mit dem angegebenen Index verknüpften Kibana-Komponenten wie Datenansichten usw. entfernt werden.

Sie können einen einzelnen oder mehrere Indizes angeben, indem Sie sie durch Kommas trennen. Eine Beispielsyntax sieht wie folgt aus:

LÖSCHEN / Indexname
LÖSCHEN / index1,index2,index3...indexN


Elasticsearch verhindert, dass Sie den Index-Alias ​​verwenden, wenn Sie einen Index löschen. Stattdessen müssen Sie den Indexnamen verwenden.

Beispiel 1: Elasticsearch-Löschindex

Das folgende Beispiel zeigt, wie Sie die Elasticsearch-API zum Löschen von Indizes verwenden, um einen vorhandenen Index aus dem Cluster zu entfernen:

kräuseln -XLÖSCHEN 'http://localhost:9200/kibana_sample_data_logs?pretty=true' -H 'kbn-xsrf: Berichterstattung'


Die vorherige Anforderung sendet eine DELETE-Anforderung an die Lösch-API. Dadurch sollte der Index mit dem Namen „kibana_sample_data_logs“ entfernt werden.

Die resultierende Ausgabe sieht wie folgt aus:

{
'anerkannt' : Stimmt
}

Beispiel 2: Elasticsearch löscht mehrere Indizes

Wir können die mehreren Indizes entfernen, indem wir sie als kommagetrennte Liste übergeben. Eine Beispielabfrage sieht wie folgt aus:

kräuseln -XLÖSCHEN 'http://localhost:9200kibana_sample_data_flights,kibana_sample_data_logs?pretty=true' -H 'kbn-xsrf: Berichterstattung'


Der vorherige Befehl löscht die angegebenen Indizes und gibt eine Nachricht wie gezeigt zurück:

{
'anerkannt' : Stimmt
}


Hinweis: Wenn der Index nicht vorhanden ist, gibt Elasticsearch einen Fehler wie gezeigt zurück:

Beispiel 3: Elasticsearch löscht alle Indizes

Wir können den Platzhalter _all in der API zum Löschen von Indizes verwenden, um alle Indizes aus einem Cluster zu entfernen. Die API zum Löschen des Index verhindert standardmäßig, dass Sie die Platzhalter in der Anforderung übergeben.

Sie können dies deaktivieren, indem Sie action.desctructive_requires_name auf false setzen.

Die folgende Abfrage zeigt Ihnen, wie Sie die Verwendung von Platzhaltern in der API zum Löschen von Indizes aktivieren:

kräuseln -XPUT 'localhost:9200 /_cluster/einstellungen' -H 'kbn-xsrf: Berichterstattung' -H „Inhaltstyp: application/json“ -d '
{
'vorübergehend': {
'aktion.destruktiver_requires_name' : falsch
}
}'


HINWEIS: Obwohl Elasticsearch die Verwendung von transienten Cluster-Einstellungen nicht empfiehlt, vermeiden Sie es, destruktive Cluster-Parameter wie die Verwendung von Platzhaltern als dauerhafte Cluster-Einstellung festzulegen.

Die vorherige Abfrage sollte das Ergebnis wie folgt zurückgeben:

{
'anerkannt' : Stimmt ,
'hartnäckig' : { } ,
'vorübergehend' : {
'Aktion' : {
'destruktiv_requires_name' : 'FALSCH'
}
}
}


Nach dem Erfolg können Sie alle Indizes im Cluster entfernen, indem Sie den folgenden Befehl ausführen:

kräuseln -XLÖSCHEN „http://localhost:9200/_all?pretty=true“ -H 'kbn-xsrf: Berichterstattung'

Beispiel 4: Elasticsearch löscht alle Indizes, die mit bestimmten Namen übereinstimmen

Wenn Sie alle Indizes entfernen möchten, die einem bestimmten Muster entsprechen, können Sie ein Platzhalterzeichen (*) verwenden.

Um beispielsweise alle Indizes zu entfernen, die mit dem Namen kibana beginnen, können wir die folgende Abfrage ausführen:

kräuseln -XLÖSCHEN „http://localhost:9200/kibana*“ -H 'kbn-xsrf: Berichterstattung'


Die vorherige Anfrage entfernt alle Indizes, die mit kibana beginnen.

HINWEIS: Die vorherige Anforderung erfordert die Verwendung von Platzhaltern. Daher müssen Sie die Platzhalterunterstützung aktivieren, wie im vorherigen Abschnitt gezeigt.

Fazit

In diesem Leitfaden haben Sie gelernt, wie Sie die Elasticsearch-API zum Löschen von Indizes verwenden. Sie haben auch gelernt, wie Sie die Wildcard-Unterstützung in Ihrem Cluster aktivieren, alle Indizes entfernen und die Indizes entfernen, die einem bestimmten Muster entsprechen.