Elasticsearch / OpenSearch
Здоровье кластера, индексы и шарды, поиск, маппинги и реиндекс — через REST API и curl.
Кластер
Здоровье кластера
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 }'