Ricerca nel sito web

Come eseguire un backup di un cluster Elasticsearch


Su questa pagina

  1. Prerequisiti
  2. Cosa faremo
  3. Verifica la configurazione del cluster Elasticsearch
    1. Configurazione su Node1
    2. Configurazione su Node2
    3. Configurazione su Node3

    1. Fai un backup
    2. Ripristina un backup

    Il meccanismo per eseguire il backup in Elasticsearch si chiama Snapshot. Uno snapshot è un backup eseguito da un cluster Elasticsearch in esecuzione. Non è necessario rimuovere il cluster, il che consente di evitare le finestre di manutenzione delle applicazioni. Uno snapshot di un singolo indice o dell'intero cluster può essere acquisito e archiviato in un repository su un file system condiviso.

    Gli snapshot in Elasticsearch vengono acquisiti in modo incrementale. Ciò significa che quando crea uno snapshot di un indice, Elasticsearch evita di copiare i dati già archiviati come parte di uno snapshot precedente dello stesso indice. Pertanto, può essere efficiente acquisire istantanee del cluster su base regolare.

    Allo stesso modo in cui possiamo eseguire un backup del cluster in esecuzione, possiamo anche ripristinare uno snapshot in un cluster in esecuzione. Quando ripristiniamo un indice, possiamo persino modificare il nome dell'indice ripristinato e alcune delle sue impostazioni.

    Per eseguire i backup, dobbiamo registrare un repository di snapshot prima di poter eseguire le operazioni di snapshot e ripristino. Per registrare il repository del file system condiviso per il cluster, è necessario montare lo stesso file system condiviso nella stessa posizione su tutti i nodi master e dati. Questa posizione deve essere registrata nel file di configurazione su tutti i nodi master e dati.

    In questo articolo, verificheremo il repository condiviso NFS e vedremo i passaggi per acquisire uno snapshot e ripristinarlo.

    Prerequisiti

    1. Directory condivisa NFS disponibile e montata su tutti e 3 i nodi di Elasticsearch nella stessa posizione
    2. Cluster Elasticsearch di 3 nodi su 3 server Ubuntu.

    Cosa faremo

    1. Verifica la configurazione del server NFS.
    2. Verifica la configurazione del cluster Elasticsearch
    3. Registra un repository per eseguire i backup.
    4. Fai un backup e ripristina.

    Verificare la configurazione del server/client NFS.

    In questo articolo non parleremo della configurazione NFS poiché non rientra nell'ambito di questo articolo. Ma per eseguire il backup di Elasticsearch avremmo bisogno della seguente configurazione.

    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

    Qui,

    Il server NFS ha condiviso la sua directory \/home/ubuntu/shared/” con Elasticsearch Nodes.

    Ogni Elasticsearch ha la sua directory locale \/home/ubuntu/mounted” montata sulla directory condivisa di NFS \/home/ubuntu/shared/” . Dobbiamo assicurarci che la proprietà di tutte le directory appartenga allo stesso utente con cui avremmo avviato Elasticsearch.

    Una volta stabilita questa configurazione, possiamo procedere oltre.

    Verifica la configurazione del cluster Elasticsearch

    Eseguire le seguenti configurazioni per impostare Elasticsearch in modo che funzioni in modalità Cluster:

    Qui, se hai configurato un cluster Elasticsearch devi essere a conoscenza della seguente configurazione.

    L'unica configurazione di cui abbiamo bisogno per prendere Elasticsearch Cluster Backup oltre alla configurazione esistente di Elasticsearch Cluster è \path.repo: [\/home/ubuntu/monted\]\:

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

    Mantieni lo stesso su ogni nodo.

    Configurazione su 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"]

    Configurazione su Node2

    #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"]

    Configurazione su Node3

    #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"]

    Dopo aver impostato tutta questa configurazione, avvia tutti i nodi Elasticsearch, avviando prima il master iniziale.

    Registra un repository per eseguire i backup

    Controlla i repository esistenti usando il seguente comando.

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

    Se riceviamo una risposta vuota, indica che non abbiamo ancora configurato alcun repository

    Per impostare un repository eseguire il seguente comando.

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

    Qui, \my_backup nel comando precedente è il nome del repository.

    Possiamo controllare i repository registrati usando il seguente comando

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

    Backup e ripristino di un cluster Elasticsearch

    Fai un backup

    Dopo aver creato un repository, siamo pronti per eseguire un backup.

    Utilizzare il seguente comando per eseguire un backup denominato \snapshot_name”

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

    Ripristina un backup

    L'istantanea che abbiamo acquisito può essere ripristinata utilizzando il seguente comando.

    Utilizzare il seguente comando per ripristinare il backup denominato \snapshot_name”

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

    Conclusione

    In questo articolo, abbiamo visto i passaggi per registrare un repository, eseguire un backup e ripristinarlo.