Elasticsearch はすべてのインデックスを削除します

Elasticsearch Hasubetenoindekkusuwo Xue Chushimasu



Elasticsearch は、ELK スタックを強化する無料のオープンソースの検索および分析エンジンです。 Elasticsearch を使用すると、Logstash などのツールを使用してさまざまなデータ パイプラインでデータを収集および集約できます。その後、Elasticsearch は提供されたデータを保存し、アプリケーションが大量のデータにほぼリアルタイムでアクセス、検索、並べ替え、およびフィルター処理できるようにします。 Elasticsearch では、組み込みツールを使用してさまざまなデータを視覚化することもできます。

このような機能により、Elasticseach は、待ち時間を最小限に抑えて大量のデータを検索およびソートするのに非常に適しています。そのため、検索エンジンを作成する場合でも、ログ、メトリック、およびその他のテキスト データを分析する場合でも、Elasticsearch は優れた選択肢です。







Elasticsearch の中心にあるのはインデックスです。インデックスとは、ドキュメントを Elasticsearch に格納する役割を担う単位を指します。インデックスは、リレーショナル データベースのコンテキストにおけるデータベースと比較的同等です。たとえば、Web アプリケーションのログのすべてのデータを保持するインデックスを作成できます。



すべてのデータベースと同様に、クラスターからすべてのデータを削除して、白紙の状態から開始できるようにする必要があるシナリオに遭遇する場合があります。



この記事では、Elasticsearch API 機能を使用してクラスターからすべてのインデックスを削除する方法について説明します。





注意: この記事で使用されている方法と手法は、データの損失につながります。この記事の指示により発生する可能性のあるデータの損失について、当社は責任を負いません。

Elasticsearch インデックス削除 API

Elasticsearch を開始する場合は、基本的な API 呼び出しを実行する方法を知っている必要があります。これは、Elasticsearch が API を最大限に活用しているためです。



ご想像のとおり、クラスターからインデックスを削除するには、Delete Index API を使用します。インデックス削除リクエストの構文は次のとおりです。

消去 /< 索引 >


このリクエストは、指定されたインデックスと、保存されているドキュメント、シャード、およびそのすべてのメタデータを削除します。

これにより、データ ビューなどの指定されたインデックスに関連付けられた Kibana コンポーネントが削除されるわけではないことに注意してください。

コンマで区切って、1 つまたは複数のインデックスを指定できます。構文の例は次のとおりです。

消去 / インデックス名
消去 / インデックス 1、インデックス 2、インデックス 3...インデックス N


Elasticsearch では、インデックスを削除するときに Index エイリアスを使用できません。代わりに、インデックス名を使用する必要があります。

例 1: Elasticsearch 削除インデックス

次の例は、Elasticsearch インデックス削除 API を使用してクラスターから既存のインデックスを削除する方法を示しています。

カール -XDELETE 'http://localhost:9200/kibana_sample_data_logs?pretty=true' -H 「kbn-xsrf: レポート」


前の要求は、DELETE 要求を削除 API に送信します。これにより、「kibana_sample_data_logs」という名前のインデックスが削除されます。

結果の出力は次のとおりです。

{
「認めた」 : 真実
}

例 2: Elasticsearch による複数のインデックスの削除

複数のインデックスをカンマ区切りのリストとして渡すことで削除できます。クエリの例は次のとおりです。

カール -XDELETE 'http://localhost:9200kibana_sample_data_flights,kibana_sample_data_logs?pretty=true' -H 「kbn-xsrf: レポート」


前のコマンドは、指定されたインデックスを削除し、次のようなメッセージを返します。

{
「認めた」 : 真実
}


注: インデックスが存在しない場合、Elasticsearch は次のようなエラーを返します。

例 3: Elasticsearch によるすべてのインデックスの削除

インデックス削除 API で _all ワイルドカードを使用して、クラスターからすべてのインデックスを削除できます。インデックス削除 API では、デフォルトで、リクエストでワイルドカードを渡すことができなくなります。

action.desctructive_requires_name を false に設定することで、これを無効にすることができます。

次のクエリは、インデックス削除 API でワイルドカードの使用を有効にする方法を示しています。

カール -XPUT 'localhost:9200 /_cluster/settings' -H 「kbn-xsrf: レポート」 -H 「コンテンツ タイプ: アプリケーション/json」 -d '
{
'一時的': {
「action.destructive_requires_name」: false
}
}'


注: Elasticsearch は一時的なクラスター設定の使用を推奨していませんが、永続的なクラスター設定としてワイルドカードを使用するなど、破壊的なクラスター パラメーターを設定することは避けてください。

前のクエリは、結果を次のように返す必要があります。

{
「認めた」 : 真実
'持続的に' : { }
「一過性」 : {
'アクション' : {
'destructive_requires_name' : '間違い'
}
}
}


成功したら、次のコマンドを実行して、クラスター内のすべてのインデックスを削除できます。

カール -XDELETE 「http://localhost:9200/_all?pretty=true」 -H 「kbn-xsrf: レポート」

例 4: Elasticsearch は特定の名前に一致するすべてのインデックスを削除します

特定のパターンに一致するすべてのインデックスを削除する場合は、ワイルドカード文字 (*) を使用できます。

たとえば、kibana という名前で始まるすべてのインデックスを削除するには、次のクエリを実行できます。

カール -XDELETE 「http://localhost:9200/kibana*」 -H 「kbn-xsrf: レポート」


前のリクエストは、kibana で始まるすべてのインデックスを削除します。

注: 前の要求では、ワイルドカードを使用する必要があります。したがって、前のセクションで示したように、ワイルドカード サポートを有効にする必要があります。

結論

このガイドでは、Elasticsearch インデックス削除 API の使用方法を説明しました。また、クラスターでワイルドカード サポートを有効にする方法、すべてのインデックスを削除する方法、および特定のパターンに一致するインデックスを削除する方法についても学習しました。