[Enseñarle a través de ELK] Gestión de clústeres de Elasticsearch

Elasticsearch es un motor de búsqueda y análisis distribuido. Su principio de administración de clústeres se basa en la arquitectura distribuida de fragmentos y réplicas.

En Elasticsearch, cada índice se divide en varios fragmentos y cada fragmento es un índice de Lucene independiente. Los fragmentos se pueden distribuir entre diferentes nodos para escalamiento horizontal y alta disponibilidad. Para mejorar la redundancia de datos y la tolerancia a fallas, cada fragmento puede tener una o más copias, que son copias de fragmentos idénticas y pueden ejecutarse en el mismo nodo o en nodos diferentes.

El objetivo principal de la administración de clústeres de Elasticsearch es habilitar la asignación y redistribución automáticas de fragmentos y réplicas para garantizar una alta disponibilidad y equilibrio de carga. Cuando un nuevo nodo se une al clúster, Elasticsearch asigna automáticamente algunos fragmentos al nuevo nodo y replica las réplicas en el nuevo nodo. Si un nodo deja de funcionar o falla, Elasticsearch reasigna automáticamente fragmentos y réplicas para garantizar la disponibilidad e integridad de los datos.

El siguiente es un diagrama de arquitectura de administración de clústeres de Elasticsearch simple, que muestra un clúster de Elasticsearch que consta de tres nodos:

     +----------+          +----------+          +----------+
     |  Node 1  |          |  Node 2  |          |  Node 3  |
     |          |          |          |          |          |
     |   Data   |          |   Data   |          |   Data   |
     |  Master  +----------+  Master  |          |  Master  |
     |   Node   |          |   Node   +----------+   Node   |
     |          |          |          |          |          |
     +----------+          +----------+          +----------+

En esta arquitectura, cada nodo tiene algunos fragmentos de datos y algunas réplicas. Entre ellos, cada nodo tiene un nodo maestro (Master Node), y el nodo maestro es responsable de coordinar la asignación y redistribución de fragmentos, así como la administración general del clúster. Cuando un nuevo nodo se une al clúster, el nodo principal asigna automáticamente algunos fragmentos al nuevo nodo y replica las réplicas en el nuevo nodo. Si un nodo deja de funcionar o falla, el nodo principal reasigna automáticamente fragmentos y réplicas para garantizar la disponibilidad y la integridad de los datos.

El siguiente es un ejemplo simple de implementación de la administración de clústeres de Elasticsearch:

  1. Inicie el clúster de Elasticsearch

Primero, se deben iniciar al menos dos nodos de Elasticsearch para formar un clúster. Ambos nodos se pueden iniciar con el siguiente comando:

bin/elasticsearch -E node.name=node1 -E cluster.name=my_cluster -E path.data=data1 -E path.logs=log1
bin/elasticsearch -E node.name=node2 -E cluster.name=my_cluster -E path.data=data2 -E path.logs=log2

Entre ellos, node.nameespecifique el nombre del nodo, cluster.nameespecifique el nombre del clúster path.datay path.logsespecifique las rutas de almacenamiento de datos y registros, respectivamente.

  1. agregar nodo

Para agregar un nodo al clúster, se puede usar el siguiente comando:

PUT /_cluster/settings
{
  "transient": {
    "cluster.routing.allocation.enable": "all"
  }
}

Esto habilitará la asignación automática de fragmentos para que los nuevos nodos puedan recibir fragmentos. Luego, inicie un nuevo nodo y especifique el mismo nombre de clúster, y el nuevo nodo se unirá automáticamente al clúster.

  1. Ver el estado del clúster

Para ver el estado y la información del clúster, puede usar el siguiente comando:

GET /_cluster/health
GET /_cluster/stats

Esto devolverá información sobre el estado del clúster, la cantidad de nodos, la cantidad de fragmentos, la cantidad de índices, etc.

  1. administrar índice

Para administrar índices, puede usar los siguientes comandos:

  • Crear un índice:
PUT /my_index
  • Eliminar el índice:
DELETE /my_index
  • Obtener información del índice:
GET /my_index/_stats
  • Cambiar la configuración del índice:
PUT /my_index/_settings
{
  "index": {
    "refresh_interval": "30s"
  }
}
  • Añadir documentos al índice:
POST /my_index/_doc
{
  "title": "Elasticsearch Tutorial",
  "content": "This is a tutorial on Elasticsearch",
  "tags": ["elasticsearch", "tutorial"]
}
  • Índice de búsqueda:
GET /my_index/_search
{
  "query": {
    "match": {
      "title": "Elasticsearch"
    }
  }
}
  1. nodo de gestión

Para administrar los nodos, se pueden usar los siguientes comandos:

  • Ver información del nodo:
GET /_nodes
  • Ver información específica del nodo:
GET /_nodes/node1
  • Apague el nodo:
POST /_cluster/nodes/node1/_shutdown

Esto apagará node1el nodo llamado . Después de que un nodo se apaga, sus fragmentos se redistribuirán automáticamente a otros nodos.

La administración de clústeres de Elasticsearch se usa comúnmente en los siguientes escenarios:

- Manejar datos a gran escala: Elasticsearch puede manejar una gran cantidad de datos estructurados y no estructurados, y es adecuado para escenarios de aplicaciones que necesitan procesar datos a gran escala.

- Alta disponibilidad: a través de la asignación y reasignación automática de fragmentos y copias, Elasticsearch puede lograr una alta disponibilidad y tolerancia a fallas, lo cual es adecuado para escenarios de aplicaciones que requieren alta disponibilidad.

- Realice el equilibrio de carga: el clúster de Elasticsearch puede distribuir solicitudes automáticamente a diferentes nodos y fragmentos para lograr el equilibrio de carga y la optimización del rendimiento.

Aquí hay algunos enlaces a la literatura sobre la gestión de clústeres de Elasticsearch:

- Documentación oficial de Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cluster.html

- Introducción a los principios de la gestión de clústeres de Elasticsearch: https://www.elastic.co/cn/blog/a-deep-dive-into-elasticsearch-cluster-management

- Mejores prácticas de administración de clústeres de Elasticsearch: https://www.elastic.co/cn/blog/elasticsearch-cluster-management-best-practices

- Tamaño del clúster de Elasticsearch y optimización del rendimiento: https://www.elastic.co/cn/blog/how-many-shards-should-i-have-in-my-elasticsearch-cluster

- Supervisión y depuración de clústeres de Elasticsearch: https://www.elastic.co/cn/blog/monitoring-and-debugging-elasticsearch-performance-and-health

Supongo que te gusta

Origin blog.csdn.net/feng1790291543/article/details/132102566
Recomendado
Clasificación