В Elasticsearch под индексом понимается логическое пространство имен, содержащее отображения нескольких типов. Представьте себе индекс как базу данных в реляционной базе данных. Индекс очень важен, поскольку он закладывает основу для организации и разделения данных".
В этой статье мы покажем различные методы и приемы, которые можно использовать для получения всех индексов в кластере Elasticsearch.
Elasticsearch CAT API
Elasticsearch в значительной степени опирается на RESTful API. Поэтому практически любая операция, которую необходимо выполнить в Elasticsearch, может быть осуществлена с помощью определенной конечной точки API.
Чтобы получить список всех индексов в кластере Elasticsearch, можно воспользоваться API cat, который предоставляет функциональность для просмотра и сбора информации о различных частях кластера.
Несмотря на то что API _cat очень полезны при работе с командной строкой и консольным потреблением Kibana, Elasticsearch запрещает использовать их для потребления приложениями.
Синтаксис запроса
Запрос на просмотр всех индексов в кластере имеет простой синтаксис:
1 | GET /_cat/indices |
В результате запроса будет возвращена информация о каждом индексе в кластере Elasticsearch. Такая информация включает в себя:
- Количество шардов
- Количество документов в индексе
- Количество удаленных документов
- Размер первичного хранилища
- Общий размер всех хранилищ и реплик.
Пример с использованием CURL
1 | curl -k https://127.0.0.1:9200/_cat/indices?v |
Параметры пути
Запрос позволяет указать целевую информацию, которую необходимо получить, задав параметр target. Параметр target представляет собой список значений, разделенных запятыми: индексы, псевдонимы, потоки данных и т.д.
Синтаксис показан на рисунке:
1 | GET /_cat/indices/<target> |
К примеру с помощью CURL
1 | curl -k https://127.0.0.1:9200/_cat/indices/*2022.20.20* |
Параметры запроса
В запрос можно передавать и другие параметры. К наиболее популярным параметрам, которые необходимо знать, относятся:
- bytes - задает единицу измерения, используемую для отображения байтовых значений.
- h - определяет столбцы для отображения в виде значений, разделенных запятыми.
- health - возвращает индексы с указанным состоянием здоровья. Принимаемые значения включают:
- green (зеленый)
- yellow (желтый)
- red (красный)
- help - отображение справочной информации.
- s - столбцы, используемые для сортировки ответа.
- v - включать заголовки столбцов (по умолчанию false).
- expand_wildcards - указывает, должен ли Elasticsearch расширять указанные шаблоны подстановочных знаков.
Рассмотрим реальные примеры использования API cat index.
Пример 1 - Показать все индексы
Чтобы показать все индексы в кластере и информацию о них, можно выполнить запрос, как показано на рисунке:
1 | curl -XGET "http://localhost:9200/_cat/indices/?v=true" -H "kbn-xsrf: reporting" |
Приведенный запрос должен вернуть все индексы и соответствующую им информацию.
Пример 2 - показать только имя индекса
Чтобы показать только имя индекса, можно получить только заголовок индекса с помощью параметра h. Пример запроса показан на рисунке:
1 | curl -XGET "http://localhost:9200 /_cat/indices?h=index" -H "kbn-xsrf: reporting" |
В приведенном выше запросе должны быть только имена индексов, как показано на рисунке:
Мы можем включить health, index и store, чтобы включить столбцы index health и index store.size:
Пример запроса показан на рисунке:
1 | curl -XGET "http://localhost:9200/_cat/indices?h=health,index,store.size&v=true" -H "kbn-xsrf: reporting" |
Полученный результат выглядит так, как показано на рисунке:
Заключение
В этом руководстве вы узнали, как использовать API cat index для получения информации обо всех индексах в вашем кластере.