GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo realizar una copia de seguridad de un clúster de Elasticsearch

El mecanismo para realizar una copia de seguridad en Elasticsearch se llama Instantánea. Una instantánea es una copia de seguridad tomada de un clúster de Elasticsearch que se encuentra en ejecución. No es necesario desactivar el clúster, lo que ayuda a evitar ventanas de mantenimiento de las aplicaciones. Se puede tomar una instantánea de un índice individual o de todo el clúster y almacenarla en un repositorio en un sistema de archivos compartido.

Las instantáneas en Elasticsearch se toman de forma incremental. Esto significa que cuando crea una instantánea de un índice, Elasticsearch evita copiar cualquier dato que ya esté almacenado como parte de una instantánea anterior del mismo índice. Por lo tanto, puede resultar eficaz tomar instantáneas del clúster periódicamente.

De la misma manera que podemos realizar una copia de seguridad del clúster en estado de ejecución, también podemos restaurar una instantánea en un clúster en ejecución. Cuando restauramos un índice, podemos incluso modificar el nombre del índice restaurado, así como algunas de sus configuraciones.

Para hacer copias de seguridad, debemos registrar un repositorio de instantáneas antes de poder realizar las operaciones de instantánea y restauración. Para registrar el repositorio del sistema de archivos compartidos para el clúster, es necesario montar el mismo sistema de archivos compartidos en la misma ubicación en todos los nodos principales y de datos. Esta ubicación debe registrarse en el archivo de configuración en todos los nodos maestros y de datos.

En este artículo, verificaremos el repositorio compartido de NFS y veremos los pasos para tomar una instantánea y restaurarlo.

Requisitos previos

  1. Directorio compartido de NFS disponible y montado en los 3 nodos de Elasticsearch en la misma ubicación
  2. Clúster de Elasticsearch de 3 nodos en 3 servidores Ubuntu.

Lo que haremos

  1. Verifique la configuración del servidor NFS.
  2. Verificar la configuración del clúster de Elasticsearch
  3. Registre un repositorio para realizar copias de seguridad.
  4. Realice una copia de seguridad y restaure.

Verifique la configuración del servidor/cliente NFS.

En este artículo, no hablaremos sobre la configuración de NFS, ya que no entra dentro del alcance de este artículo. Pero para realizar una copia de seguridad de Elasticsearch, necesitaríamos la siguiente configuración.

es-node-1(10.11.10.61)  : NFS Client
es-node-2(10.11.10.62) : NFS Client
es-node-3(10.11.10.63) : NFS Client
NFS Server(10.11.10.64) : NFS Server

Aquí, 

El servidor NFS ha compartido su “/home/ubuntu/shared/” directorio con Nodos de Elasticsearch.

Cada Elasticsearch tiene su directorio local “/home/ubuntu/mounted” montado en el directorio compartido de NFS “/home/ubuntu/shared/” . Necesitamos asegurarnos de que la propiedad de todos los directorios pertenezca al mismo usuario con el que iniciaríamos Elasticsearch.

Una vez que tengamos esta configuración en su lugar, podemos continuar.

Verificar la configuración del clúster de Elasticsearch

Realice las siguientes configuraciones para configurar Elasticsearch para que funcione en modo Clúster:

Aquí, si ha configurado un clúster de Elasticsearch, debe tener en cuenta la siguiente configuración.

La única configuración que debemos realizar para tomar la copia de seguridad del clúster de Elasticsearch aparte de la configuración del clúster de Elasticsearch existente es "ruta.repo:["/home/ubuntu/mounted"] ": 

vim config/elasticsearch.yml
path.repo: ["/home/ubuntu/mounted"] 

Mantenga esto mismo en cada nodo.

Configuración en el Nodo1

#give your cluster a name.
cluster.name: my-cluster
#give your nodes a name (change node number from node to node).
node.name: "es-node-1"
#define node 1 as master-eligible:
node.master: true
#define nodes 2 and 3 as data nodes:
node.data: true
#enter the private IP and port of your node:
network.host: 10.11.10.61
http.port: 9200
#detail the private IPs of your nodes:
discovery.zen.ping.unicast.hosts: ["10.11.10.61", "10.11.10.62", "10.11.10.63"]
cluster.initial_master_nodes:
- 10.11.10.61
path.repo: ["/home/ubuntu/mounted"]

Configuración en Nodo2

#give your cluster a name.
cluster.name: my-cluster
#give your nodes a name (change node number from node to node).
node.name: "es-node-2"
#define node 2 as master-eligible:
node.master: false
#define nodes 2 and 3 as data nodes:
node.data: true 
#enter the private IP and port of your node:
network.host: 10.11.10.62
http.port: 9200 
#detail the private IPs of your nodes:
discovery.zen.ping.unicast.hosts: ["10.11.10.61", "10.11.10.62", "10.11.10.63"
path.repo: ["/home/ubuntu/mounted"]

Configuración en Nodo3

#give your cluster a name.
cluster.name: my-cluster
#give your nodes a name (change node number from node to node).
node.name: "es-node-3"
#define node 3 as master-eligible:
node.master: false
#define nodes 2 and 3 as data nodes:
node.data: true
#enter the private IP and port of your node:
network.host: 10.11.10.63
http.port: 9200
#detail the private IPs of your nodes:
discovery.zen.ping.unicast.hosts: ["10.11.10.61","10.11.10.62","10.11.10.63""]
path.repo: ["/home/ubuntu/mounted"]

Una vez que tenga toda esta configuración en su lugar, inicie todos los nodos de Elasticsearch, primero inicie el maestro inicial.

Registrar un repositorio para realizar copias de seguridad

Verifique los repositorios existentes usando el siguiente comando.

curl -XGET 'http://IP_Of_Elasticsearch_Node_Or_Master:9200/_snapshot/_all?pretty=true'

Si recibimos una respuesta en blanco, indica que aún no tenemos ningún repositorio configurado

  Para configurar un repositorio, ejecute el siguiente comando.

curl -XPUT 'http://IP_Of_Elasticsearch_Node_Or_Master:9200/_snapshot/my_backup' -d {
"type": "fs",
"settings": {
"location": "/home/ubuntu/mounted",
"compress": true
}
}'

Aquí, "my_backup" en el comando anterior es el nombre del repositorio.

Podemos comprobar los repositorios registrados mediante el siguiente comando

curl -XGET 'http://IP_Of_Elasticsearch_Node_Or_Master:9200/_snapshot/_all?pretty=true'

Copia de seguridad y restauración de un clúster de Elasticsearch

Hacer una copia de seguridad

Una vez que hayamos creado un repositorio, estamos listos para realizar una copia de seguridad.

Utilice el siguiente comando para realizar una copia de seguridad denominada "snapshot_name"

curl -XPUT "https://IP_Of_Elasticsearch_Node_Or_Master:9200/_snapshot/my_backup/snapshot_name?wait_for_completion=true"

Restaurar una copia de seguridad

La instantánea que hemos tomado se puede restaurar con el siguiente comando.

Use el siguiente comando para restaurar la copia de seguridad llamada "snapshot_name"

curl -XPOST "http://IP_Of_Elasticsearch_Node_Or_Master:9200/_snapshot/my_backup/snapshot_name/_restore?wait_for_completion=true"

Conclusión

En este artículo, vimos los pasos para registrar un repositorio y realizar una copia de seguridad y restaurarlo.


Linux
  1. Cómo instalar Elasticsearch en Ubuntu 18.04

  2. Cómo crear una copia de seguridad

  3. Cómo realizar una copia de seguridad del buzón de la cuenta de Zimbra desde la CLI

  4. ¿Cómo hacer una copia de seguridad cifrada similar a rsync?

  5. ¿Cómo hacer una copia de seguridad de los archivos crontab -e?

¿Cómo realizar una copia de seguridad de la base de datos MySQL desde WebsitePanel 2.1?

¿Cómo realizar una copia de seguridad completa con el asistente de copia de seguridad en cPanel?

Cómo hacer una copia de seguridad completa del sitio web desde cPanel

Cómo realizar una copia de seguridad de la base de datos en Plesk

¿Cómo tomar una copia de seguridad de la configuración de Exim de WHM?

¿Cómo tomar una captura de pantalla del menú?