$ command-helper

Elasticsearch / OpenSearch

Здоровье кластера, индексы и шарды, поиск, маппинги и реиндекс — через REST API и curl.

Потребуется вход через Google

Кластер

Здоровье кластера
curl -s '<es>/_cluster/health?pretty'
Ноды с нагрузкой и диском
curl -s '<es>/_cat/nodes?v&h=name,cpu,load_1m,heap.percent,disk.used_percent,node.role'
Распределение диска по нодам
curl -s '<es>/_cat/allocation?v'
Почему шард не распределёнпродвинутая
curl -s '<es>/_cluster/allocation/explain?pretty'

Индексы

Список индексов по размеру
curl -s '<es>/_cat/indices?v&s=store.size:desc'
Шарды индекса
curl -s '<es>/_cat/shards/<index>?v'
Маппинг индекса
curl -s '<es>/<index>/_mapping?pretty'
Удалить индекс
curl -X DELETE '<es>/<index>'
Алиасы
curl -s '<es>/_cat/aliases?v'

Поиск

Быстрый поиск через query string
curl -s '<es>/<index>/_search?q=status:error&size=5&pretty'
Посчитать документы
curl -s '<es>/<index>/_count?pretty'
Поиск с JSON-запросом
curl -s '<es>/<index>/_search?pretty' -H 'Content-Type: application/json' -d '
{
  "query": { "match": { "message": "timeout" } },
  "size": 10,
  "sort": [{ "@timestamp": "desc" }]
}'
Получить документ по id
curl -s '<es>/<index>/_doc/<id>?pretty'

Обслуживание

Скопировать данные в новый индекспродвинутая
curl -X POST '<es>/_reindex?wait_for_completion=false' -H 'Content-Type: application/json' -d '
{ "source": { "index": "<index>" }, "dest": { "index": "<index>-v2" } }'
Запущенные задачи (например, прогресс реиндекса)продвинутая
curl -s '<es>/_tasks?actions=*reindex&detailed&pretty'
Снять блокировку индексов после заполнения дискапродвинутая
curl -X PUT '<es>/_all/_settings' -H 'Content-Type: application/json' \
  -d '{ "index.blocks.read_only_allow_delete": null }'