Состояние кластера Elasticsearch является важным показателем, который необходимо отслеживать, поскольку он дает представление об общем состоянии и производительности кластера.
В этой статье мы рассмотрим ключевые аспекты состояния кластера, способы интерпретации состояния и шаги по его улучшению.
Основные аспекты здоровья кластера
- Состояние здоровья: Состояние здоровья кластера Elasticsearch может быть зеленым, желтым или красным. Зеленый статус означает, что все первичные и копийные серверы выделены, желтый - что все первичные серверы выделены, но один или несколько копий не выделены. Красный статус означает, что один или несколько первичных серверов не выделены.
- Active Primary Shards: Количество активных первичных шардов в кластере. На этих шардах хранятся фактические данные, и они отвечают за операции индексирования и поиска.
- Активные шарды (Active Shards): Общее количество активных шардов в кластере, включая первичные и реплики.
- Не назначенные шарды (Unassigned Shards): Количество шардов, не выделенных ни одному узлу кластера. Нераспределенные карты могут возникать из-за отказов узлов, нехватки ресурсов или проблем с конфигурацией.
- Initializing Shards: Количество шардов, которые в настоящее время инициализируются либо при запуске кластера, либо после сбоя узла.
- Перемещение шардов: Количество шардов, перемещаемых с одного узла на другой, как правило, для балансировки нагрузки на кластер.
Интерпретация состояния кластера
Чтобы проверить состояние здоровья кластера Elasticsearch, можно воспользоваться API Cluster Health:
1 | GET /_cluster/health |
В ответе API будет представлен статус здоровья, а также другие ключевые метрики:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | { "cluster_name": "my_cluster", "status": "green", "timed_out": false, "number_of_nodes": 3, "number_of_data_nodes": 3, "active_primary_shards": 10, "active_shards": 20, "relocating_shards": 0, "initializing_shards": 0, "unassigned_shards": 0, "delayed_unassigned_shards": 0, "number_of_pending_tasks": 0, "number_of_in_flight_fetch": 0, "task_max_waiting_in_queue_millis": 0, "active_shards_percent_as_number": 100.0 } |