Elasticsearch
Racimo
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:
- 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.
- Un fragmento primario faltante significa que no se puede usar un índice para escribir (indexar) datos nuevos en la mayoría de los casos.
- 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.
- Una réplica que falta solo afecta a la indexación si la configuración de coherencia requiere que afecte a la indexación.
- 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.
- La única actividad de fragmento permitida para un clúster verde es
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>
- El
?ves 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>
-
?helphace 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>
-
h=...define la lista de campos que desea que se devuelvan. -
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
}