Buscar..


Observaciones

El estado del clúster proporciona mucha información sobre el clúster, como la cantidad de fragmentos asignados ("activos") y cuántos están sin asignar y reubicados. Además, proporciona el número actual de nodos y nodos de datos en el clúster, lo que puede permitirle sondear los nodos faltantes (por ejemplo, si espera que sean 15 , pero solo muestra 14 , entonces falta un nodo) .

Para alguien que sepa sobre Elasticsearch, los fragmentos "asignados" y "no asignados" pueden ayudarlos a localizar problemas.

El campo más común verificado desde Cluster Health es el status , que puede estar en uno de tres estados:

  • rojo
  • amarillo
  • verde

Cada uno de los colores significa uno, y solo uno, algo muy simple:

  1. Rojo indica que falta al menos un fragmento primario.
    • Un fragmento primario faltante significa que no se puede usar un índice para escribir (indexar) datos nuevos en la mayoría de los casos.
      • Técnicamente, aún puede indexar a cualquier fragmento primario que esté disponible en ese índice, pero prácticamente significa que no puede hacerlo porque generalmente no controla qué fragmento recibe un documento determinado.
      • La búsqueda aún es posible contra un clúster rojo, pero significa que obtendrá resultados parciales si faltan fragmentos en algún índice que busque.
    • En circunstancias normales, solo significa que se está asignando el fragmento primario ( initializing_shards ).
    • Si un nodo acaba de abandonar el clúster (por ejemplo, porque la máquina que lo ejecuta perdió energía), tiene sentido que le falten algunos fragmentos primarios temporalmente .
      • Cualquier fragmento de réplica para ese fragmento primario se promocionará para ser el fragmento primario en este escenario.
  2. El amarillo indica que todos los fragmentos primarios están activos, pero falta al menos un fragmento de réplica.
    • Una réplica que falta solo afecta a la indexación si la configuración de coherencia requiere que afecte a la indexación.
      • De forma predeterminada, solo hay una réplica para cualquier primario y la indexación puede ocurrir con una sola réplica faltante.
    • En circunstancias normales, solo significa que el fragmento de réplica se está asignando ( initializing_shards ).
    • Un clúster de un nodo con réplicas habilitadas siempre será amarillo en el mejor de los casos . Puede ser rojo si aún no se ha asignado un fragmento primario.
      • Si solo tiene un solo nodo, tiene sentido deshabilitar las réplicas porque no espera ninguna. Entonces puede ser verde.
  3. Verde indica que todos los fragmentos están activos.
    • La única actividad de fragmento permitida para un clúster verde es relocating_shards .
    • Los nuevos índices, y por lo tanto los nuevos fragmentos, harán que el grupo pase de rojo a amarillo a verde, ya que cada fragmento se asigna (primero el primario, lo hace amarillo y luego las réplicas si es posible, haciéndolo verde).
      • En Elasticsearch 5.x y versiones posteriores, los nuevos índices no harán que su clúster se vuelva rojo a menos que se demore demasiado en asignarlos.

Salud de grupo tabular legible por humanos con encabezados

Ejemplo utiliza la sintaxis básica de HTTP. Cualquier <#> en el ejemplo debe eliminarse al copiarlo.

Puede usar las API _cat para obtener un resultado tabular, legible por el ser humano, por varias razones.

GET /_cat/health?v <1>
  1. El ?v es opcional, pero implica que desea una salida "detallada".

_cat/health existe desde Elasticsearch 1.x, pero aquí hay un ejemplo de su salida de Elasticsearch 5.x:

Con salida verbosa:

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%

Salud del grupo tabular legible por humanos sin encabezados

Ejemplo utiliza la sintaxis básica de HTTP. Cualquier <#> en el ejemplo debe eliminarse al copiarlo.

Puede usar las API _cat para obtener un resultado tabular, legible por el ser humano, por varias razones.

GET /_cat/health <1>

_cat/health existe desde Elasticsearch 1.x, pero aquí hay un ejemplo de su salida de Elasticsearch 5.x:

Sin salida verbosa:

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

Salud de grupo tabular legible por humanos con encabezados seleccionados

Ejemplo utiliza la sintaxis básica de HTTP. Cualquier <#> en el ejemplo debe eliminarse al copiarlo.

Como la mayoría de _cat API de _cat en Elasticsearch, la API responde selectivamente con un conjunto predeterminado de campos. Sin embargo, existen otros campos de la API si los desea:

GET /_cat/health?help <1>
  1. ?help hace que la API devuelva los campos (y los nombres cortos), así como una breve descripción.

_cat/health existe desde Elasticsearch 1.x, pero aquí hay un ejemplo de su salida de Elasticsearch 5.x:

Campos disponibles a partir de la fecha de creación de este ejemplo:

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 

Luego puede usar esto para imprimir solo esos campos:

GET /_cat/health?h=timestamp,cl,status&v <1>
  1. h=... define la lista de campos que desea que se devuelvan.
  2. v (detallado) define que desea que imprima los encabezados.

La salida de una instancia de Elasticsearch 5.x:

timestamp cl            status
15:38:00  elasticsearch yellow

Salud de clúster basada en JSON

Ejemplo utiliza la sintaxis básica de HTTP. Cualquier <#> en el ejemplo debe eliminarse al copiarlo.

Las API _cat menudo son convenientes para que los humanos obtengan detalles de un vistazo sobre el clúster. Pero con frecuencia se desea que la salida se pueda analizar de forma consistente para usar con el software. En general, las API de JSON están diseñadas para este propósito.

GET /_cluster/health

_cluster/health ha existido desde Elasticsearch 1.x, pero aquí hay un ejemplo de su salida de 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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow