Elasticsearch — это бесплатная поисковая и аналитическая система с открытым исходным кодом, которая поддерживает стек ELK. Elasticsearch позволяет различным конвейерам данных собирать и агрегировать данные с помощью таких инструментов, как Logstash. Затем Elasticsearch сохраняет предоставленные данные, позволяя приложениям получать доступ, искать, сортировать и фильтровать большие объемы данных почти в реальном времени. Elasticsearch также позволяет визуализировать различные данные с помощью встроенных инструментов.
Такие функции делают Elasticseach очень подходящим для поиска и сортировки больших объемов данных с минимальной задержкой или без нее. Итак, создаете ли вы поисковую систему или анализируете журналы, метрики и другие текстовые данные, Elasticsearch — отличный выбор.
В основе Elasticsearch лежит индекс. Индекс относится к единице, отвечающей за хранение документов в Elasticsearch. Индекс относительно эквивалентен базе данных в контексте реляционных баз данных. Например, у вас может быть индекс, содержащий все данные для журналов веб-приложения.
Как и со всеми базами данных, вы можете столкнуться со сценарием, когда вам нужно удалить все данные из вашего кластера, что позволит вам начать с чистого листа.
В этой статье показано, как использовать функции API Elasticsearch для удаления всех индексов из вашего кластера.
ВНИМАНИЕ: Методы и приемы, используемые в этой статье, приведут к потере данных. Мы не несем ответственности за любую потерю данных, которая может произойти из-за инструкций в этой статье.
API удаления индекса Elasticsearch
Если вы запускаете Elasticsearch, вам нужно знать, как выполнять основные вызовы API. Это связано с тем, что Elasticsearch максимально использует API.
Как вы можете догадаться, мы используем Delete Index API для удаления индекса из кластера. Синтаксис запросов на удаление индекса показан ниже:
УДАЛИТЬ /< индекс >
Запрос удаляет указанный индекс и сохраненные документы, осколки и все его метаданные.
Имейте в виду, что это не приведет к удалению каких-либо компонентов Kibana, связанных с указанным индексом, таких как представления данных и т. д.
Вы можете указать один или несколько индексов, разделив их запятыми. Пример синтаксиса показан ниже:
УДАЛИТЬ / index_nameУДАЛИТЬ / индекс1, индекс2, индекс3... индексN
Elasticsearch запрещает вам использовать псевдоним индекса при удалении индекса. Вместо этого вы должны использовать имя индекса.
Пример 1: Индекс удаления Elasticsearch
В следующем примере показано, как использовать API удаления индекса Elasticsearch для удаления существующего индекса из кластера:
завиток -XУДАЛИТЬ 'http://localhost:9200/kibana_sample_data_logs?pretty=true' -ЧАС 'kbn-xsrf: отчетность'
Предыдущий запрос отправляет запрос DELETE в API удаления. Это должно удалить индекс с именем «kibana_sample_data_logs».
Полученный результат выглядит следующим образом:
{'признано' : истинный
}
Пример 2: Elasticsearch удаляет несколько индексов
Мы можем удалить несколько индексов, передав их в виде списка, разделенного запятыми. Пример запроса выглядит следующим образом:
завиток -XУДАЛИТЬ 'Д8539398ДДЭЭ1Б807ААФ412КА23Ф866Д51АБ2638' -ЧАС 'kbn-xsrf: отчетность'
Предыдущая команда удаляет указанные индексы и возвращает сообщение, как показано ниже:
'признано' : истинный
}
Примечание. Если индекс не существует, Elasticsearch возвращает ошибку, как показано ниже:
Пример 3: Elasticsearch Удалить все индексы
Мы можем использовать подстановочный знак _all в API удаления индекса, чтобы удалить все индексы из кластера. API удаления индекса по умолчанию не позволит вам передать подстановочные знаки в запросе.
Вы можете отключить это, установив для action.desctructive_requires_name значение false.
Следующий запрос показывает, как включить использование подстановочных знаков в API удаления индекса:
завиток -XPUT 'локальный: 9200 /_кластер/настройки' -ЧАС 'kbn-xsrf: отчетность' -ЧАС 'Тип контента: приложение/json' -д '{
'переходный': {
«action.destructive_requires_name»: ложь
}
}'
ПРИМЕЧАНИЕ. Хотя Elasticsearch не рекомендует использовать временные параметры кластера, избегайте установки деструктивных параметров кластера, таких как использование подстановочных знаков в качестве постоянного параметра кластера.
Предыдущий запрос должен вернуть результат в виде:
{'признано' : истинный ,
'настойчивый' : { } ,
'преходящий' : {
'действие' : {
'destructive_requires_name' : 'ЛОЖЬ'
}
}
}
В случае успеха вы можете удалить все индексы в кластере, выполнив следующую команду:
Пример 4: Elasticsearch удаляет все индексы, соответствующие определенным именам
Если вы хотите удалить все индексы, соответствующие определенному шаблону, вы можете использовать подстановочный знак (*).
Например, чтобы удалить все индексы, начинающиеся с имени kibana, мы можем выполнить следующий запрос:
завиток -XУДАЛИТЬ «http://localhost:9200/kibana*» -ЧАС 'kbn-xsrf: отчетность'
Предыдущий запрос удаляет все индексы, начинающиеся с kibana.
ПРИМЕЧАНИЕ. Предыдущий запрос требует использования подстановочных знаков. Следовательно, вы должны включить поддержку подстановочных знаков, как показано в предыдущем разделе.
Вывод
В этом руководстве вы узнали, как использовать API удаления индекса Elasticsearch. Вы также узнали, как включить поддержку подстановочных знаков в вашем кластере, удалить все индексы и удалить индексы, соответствующие определенному шаблону.