Cómo lidiar con unassigned shards en Elasticsearch


Lo primero es lo primero, saber qué significa el estado del cluster de elasticsearch:

  • Green: Cluster 100% operacional con todos los shards, tanto primarios como réplicas asignados.
  • Yellow: Todos los shards primarios asignados, pero al menos hay problemas con una réplica. El funcionamiento de las búsquedas no se ve afectado, pero la alta disponibilidad del cluster podría estar comprometida.
  • Red: Al menos un shard primario tiene problemas. Tus búsquedas devolverán resultados incompletos y el indexado podría devolver alguna excepción.

Fuentes: [elastic.co] [chrissimpson.co.uk]

Red cluster. ¿Y ahora qué?

En el siguiente ejemplo, vemos un cluster en estado RED, con 2 shards no asignados.

Muchas de las ocasiones en los que me he encontrado con un cluster con unassigned shards ha sido por falta de espacio en disco, ya sea porque el cluster en sí se estaba quedando sin espacio, o porque había caído alguno de los data nodes. Así pues, tras verificar que no haya problemas de espacio, seguramente deberíamos revisar que el cluster tenga el número y tipo de nodos esperados.

Continuar leyendo «Cómo lidiar con unassigned shards en Elasticsearch»

Reemplazar un data nodo de Elasticsearch de forma segura

Es probable que en alguna ocasión necesitemos reemplazar uno de nuestros nodos de datos del cluster de Elasticsearch. Una opción (a lo loco, y nada recomendable) sería directamente eliminar el nodo, y añadir uno nuevo, el cual, en algún momento se sincronizará con el cluster. Obviamente lo malo de esta opción, es que el cluster quedará en status yellow o red mientras no termine la sincronización.

Una buena opción (probado en un ES 5.6.3) para hacer de este proceso, un proceso seguro y controlado, es como primer paso, quitar el nodo del cluster, esperar a que los shards (primarios y réplicas) se re-asignen, y una vez tengamos el nodo desacoplado del cluster, reemplazarlo. La idea es continuar con el cluster en «green» durante todo el proceso.

A continuación los pasos.

Continuar leyendo «Reemplazar un data nodo de Elasticsearch de forma segura»