Поиск…


замечания

Cluster Health предоставляет много информации о кластере, например количество выделенных («активных»), а также количество не назначенных и перемещаемых. Кроме того, он предоставляет текущее количество узлов и узлов данных в кластере, что позволяет вам опросить отсутствующие узлы (например, если вы ожидаете, что оно будет 15 , но оно отображает только 14 , то вам не хватает узла) ,

Для тех, кто знает об Elasticsearch, «назначенные» и «неназначенные» осколки могут помочь им выявить проблемы.

Наиболее распространенным полем, отмеченным в разделе « status кластера», является status , который может находиться в одном из трех состояний:

  • красный
  • желтый
  • зеленый

Цвета каждого означают один - и только один - очень простая вещь:

  1. Красный означает, что у вас отсутствует хотя бы один первичный осколок.
    • Отсутствующий первичный осколок означает, что индекс не может использоваться для записи (индексации) новых данных в большинстве случаев.
      • Технически вы можете индексировать все первичные осколки, доступные в этом индексе, но практически это означает, что вы не можете, потому что обычно не контролируете, какой осколок получает какой-либо документ.
      • Поиск по-прежнему возможен против красного кластера, но это означает, что вы получите частичные результаты, если какой-либо индекс, который вы ищете, не содержит осколков.
    • В обычных условиях это просто означает, что первичный осколок выделяется ( initializing_shards ).
    • Если узел просто покинул кластер (например, из-за того, что работающий на нем компьютер потерял электроэнергию), тогда имеет смысл, что вы временно потеряете некоторые первичные осколки.
      • Любой реплика-осколок для этого первичного осколка будет продвигаться как основной осколок в этом сценарии.
  2. Желтый означает, что все первичные осколки активны, но по крайней мере один осколок реплики отсутствует.
    • Отсутствующая реплика влияет только на индексирование, если для параметров согласованности требуется, чтобы это повлияло на индексацию.
      • По умолчанию для любой первичной версии существует только одна реплика, и индексирование может происходить с одной отсутствующей репликой.
    • В обычных обстоятельствах это просто означает, что выделяется осколок реплики ( initializing_shards ).
    • Один кластер узлов с включенными репликами всегда будет в лучшем случае желтым. Он может быть красным, если первичный осколок еще не назначен.
      • Если у вас только один узел, тогда имеет смысл отключить реплики, потому что вы не ожидаете. Тогда он может быть зеленым.
  3. Зеленый означает, что все осколки активны.
    • Единственное действие наложения, которое разрешено для зеленого кластера, - это relocating_shards .
    • Новые индексы и, следовательно, новые осколки приведут к тому, что кластер переходит от красного к желтому до зеленого, так как каждый осколок выделяется (сначала первичный, делая его желтым, а затем реплики, если это возможно, делая его зеленым).
      • В Elasticsearch 5.x и более поздних версиях новые индексы не будут красить ваш кластер, если не потребуется слишком много времени для их выделения.

Человекочитаемое табличное кластерное здоровье с заголовками

В примере используется базовый синтаксис HTTP. Любые <#> в этом примере должны быть удалены при копировании.

Вы можете использовать API-интерфейсы _cat чтобы получить доступный для чтения, табличный вывод по различным причинам.

GET /_cat/health?v <1>
  1. « ?v является необязательным, но это означает, что вы хотите «подробный» вывод.

_cat/health существует с Elasticsearch 1.x, но вот пример его выхода из Elasticsearch 5.x:

С подробным выходом:

epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1469302011 15:26:51  elasticsearch yellow          1         1     45  45    0    0       44             0                  -                 50.6%

Человеческое чтение, табличное здоровье кластера без заголовков

В примере используется базовый синтаксис HTTP. Любые <#> в этом примере должны быть удалены при копировании.

Вы можете использовать API-интерфейсы _cat чтобы получить доступный для чтения, табличный вывод по различным причинам.

GET /_cat/health <1>

_cat/health существует с Elasticsearch 1.x, но вот пример его выхода из Elasticsearch 5.x:

Без подробного вывода:

1469302245 15:30:45 elasticsearch yellow 1 1 45 45 0 0 44 0 - 50.6%

Человеко-читаемое табличное кластерное здоровье с выбранными заголовками

В примере используется базовый синтаксис HTTP. Любые <#> в этом примере должны быть удалены при копировании.

Как и большинство API-интерфейсов _cat в Elasticsearch, API выборочно отвечает набором полей по умолчанию. Однако другие поля существуют из API, если вы хотите:

GET /_cat/health?help <1>
  1. ?help заставляет API возвращать поля (и короткие имена), а также краткое описание.

_cat/health существует с Elasticsearch 1.x, но вот пример его выхода из Elasticsearch 5.x:

Поля, доступные на момент создания этого примера:

epoch                 | t,time                                   | seconds since 1970-01-01 00:00:00  
timestamp             | ts,hms,hhmmss                            | time in HH:MM:SS                   
cluster               | cl                                       | cluster name                       
status                | st                                       | health status                      
node.total            | nt,nodeTotal                             | total number of nodes              
node.data             | nd,nodeData                              | number of nodes that can store data
shards                | t,sh,shards.total,shardsTotal            | total number of shards             
pri                   | p,shards.primary,shardsPrimary           | number of primary shards           
relo                  | r,shards.relocating,shardsRelocating     | number of relocating nodes         
init                  | i,shards.initializing,shardsInitializing | number of initializing nodes       
unassign              | u,shards.unassigned,shardsUnassigned     | number of unassigned shards        
pending_tasks         | pt,pendingTasks                          | number of pending tasks            
max_task_wait_time    | mtwt,maxTaskWaitTime                     | wait time of longest task pending  
active_shards_percent | asp,activeShardsPercent                  | active number of shards in percent 

Затем вы можете использовать это для печати только тех полей:

GET /_cat/health?h=timestamp,cl,status&v <1>
  1. h=... определяет список полей, которые вы хотите вернуть.
  2. v (verbose) определяет, что вы хотите, чтобы он печатал заголовки.

Результат из экземпляра Elasticsearch 5.x:

timestamp cl            status
15:38:00  elasticsearch yellow

JSON-кластерное здоровье

В примере используется базовый синтаксис HTTP. Любые <#> в этом примере должны быть удалены при копировании.

API-интерфейсы _cat часто удобны для людей, чтобы получить подробные сведения о кластере. Но вы часто хотите, чтобы последовательно анализируемый вывод использовался с программным обеспечением. В общем, API JSON предназначены для этой цели.

GET /_cluster/health

_cluster/health существует с Elasticsearch 1.x, но вот пример его вывода из Elasticsearch 5.x:

{
  "cluster_name": "elasticsearch",
  "status": "yellow",
  "timed_out": false,
  "number_of_nodes": 1,
  "number_of_data_nodes": 1,
  "active_primary_shards": 45,
  "active_shards": 45,
  "relocating_shards": 0,
  "initializing_shards": 0,
  "unassigned_shards": 44,
  "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": 50.56179775280899
}


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow