Per aiutare a salvaguardare dalla perdita di dati, Elasticsearch ha varie funzionalità che consentono di garantire la disponibilità dei dati, anche nelle istanze di errore dei dati.
Alcuni dei modi in cui Elasticsearch utilizza per fornire la disponibilità dei dati includono:
Questo tutorial mostra come creare snapshot del cluster, che ti aiuterà a essere pronto in caso di evento irreversibile di errore dei dati.
Iniziamo.
Cos'è un'istantanea di Elasticsearch?
Come accennato, un'istantanea elastica è una copia di backup di un cluster in esecuzione ElaSticSearch. Questa istantanea può essere di un intero cluster o indici e flussi di dati specifici all'interno di un particolare cluster.
Come presto imparerai, un plug -in repository gestisce le snapshot di ElasticSearch. Queste istantanee sono memorizzabili in varie posizioni di archiviazione definite dal plug -in. Questi includono sistemi locali e sistemi remoti come l'archiviazione GCP, Amazon EC2, Microsoft Azure e molti altri.
Come creare un repository di Elasticsearch Snapshot
Prima di immergerci nella creazione di istantanee di ElaSticSearch, dobbiamo creare un repository di istantanee perché molti dei servizi di ElasticSearch utilizzano l'API Snapshot per eseguire queste attività.
Alcune delle attività gestite dall'API snapshot sono:
Per creare un repository snapshot, utilizziamo l'endpoint API _SnapShot seguito dal nome che vogliamo assegnare al repository snapshot. Considera la richiesta di seguito che crea un repository chiamato backup_repo
Put /_snapshot /backup_repoEcco un comando Curl per la richiesta sopra:
curl -xput "http: // localhost: 9200/_snapshot/backup_repo" -h 'content -type: applicazione/json' -d '"type": "fs", "impostazioni": "posizione": "/ Home/Root/Backups "," Compress ": True 'Per passare il percorso del repository snapshot, è necessario prima aggiungere il percorso del sistema o la directory genitore al percorso.Entrata Repo in Elasticsearch.YML
Il sentiero.La voce Repo dovrebbe apparire simile a:
sentiero.Repo: [“/home/root/backups”]È possibile trovare il file di configurazione di ElasticSearch situato in/etc/elasticsearch/elasticsearch.YML
NOTA: Dopo aver aggiunto il percorso.Repo, potrebbe essere necessario riavviare i cluster di ElasticSearch. Inoltre, i valori supportati per il percorso.Il repository può variare selvaggiamente a seconda della piattaforma che esegue Elasticsearch.
Come visualizzare il repository di Snapshot
Per confermare la creazione riuscita del repository snapshot, utilizzare la richiesta GET con l'endpoint _snapshot come:
Get /_snapshot /backup_repoPuoi anche utilizzare il seguente comando Curl:
Curl -Xget "http: // localhost: 9200/_snapshot/backup_repo"Questo dovrebbe visualizzare informazioni sul repository di backup, ad esempio:
Se hai più di un repository di istantanee e non ricordi il nome, puoi omettere il nome Repo e chiamare l'endpoint _snapshot per elencare tutti i repository esistenti.
Get/_snapshot o arricciaio curl -xget http: // localhost: 9200/_snapshot
Come creare un'istantanea di Elasticsearch
La creazione di un'istantanea di ElasticSearch per un repository Snapshot specifico è gestita dall'API Crea Snapshot. L'API richiede il nome del repository snapshot e il nome dell'istantanea.
NOTA: Un singolo repository di istantanee può avere più di un'istantanea degli stessi cluster purché abbiano identità/nomi univoci.
Considera la seguente richiesta per aggiungere un'istantanea chiamata Snapshot_2021 al repository Backup_Repo.
Put/_snapshot/backup_repo/snapshot_2021Per usare Curl, usa il comando:
Curl -xput “http: // localhost: 9200/_snapshot/backup_repo/snapshot_2021"Il comando dovrebbe restituire una risposta da Elasticsearch con 200 OK e accettato: True
Poiché non specifica quali flussi di dati e indici che si desidera eseguire il backup, chiamando i backup della richiesta sopra tutti i dati e lo stato del cluster. Per specificare quali flussi di dati e indici eseguiti il backup, aggiungilo all'organismo di richiesta.
Considera la seguente richiesta che backup il .Kibana Index (un indice di sistema) e specifica quale utente ha autorizzato l'istantanea e il motivo.
Put/_snapshot/backup_repo/snapshot_2Il comando Curl per questo è:
Curl -xput "http: // localhost: 9200/_snapshot/backup_repo/snapshot_2" -h 'content -type: applicazione/json' -d '"indici": ".kibana "," ignore_unavailable ": true," include_global_state ": true," metadata ": " take_by ":" elasticadmin "," take_because ":" backup quotidiano " 'Ignore_unavailable imposta uno stato booleano che restituisce un errore se i flussi di dati o gli indici specificati nell'istantanea sono mancanti o chiusi.
Il parametro include_global_state salva lo stato corrente del cluster se vero. Alcune delle informazioni del cluster salvate includono:
NOTA: È possibile specificare più di un indici separati dalle virgole.
Un argomento comune usato con l'endpoint _snapshot è wait_for_completion, un valore booleano che definisce (true) o meno (falso) la richiesta deve restituire immediatamente dopo l'inizializzazione snapshot (impostazione predefinita).
Per esempio:
Put/_snapshot/backup_repo/snapshot_3?wait_for_completion = trueIl comando Curl è:
Curl -xput "http: // localhost: 9200/_snapshot/backup_repo/snapshot_3?wait_for_completion = true "-h 'contenuti -type: applicazione/json' -d '" indici ":".Kibana "," Ignore_unavailable ": true," include_global_state ": false," metadata ": " take_by ":" elasticadmin "," take_because ":" backup settimanale " 'Quando hai il parametro wait_for_completion impostato su True, fornirai un output simile a quello mostrato di seguito:
Come visualizzare le istantanee
L'API GET Snapshot gestisce la funzionalità di visualizzazione.
Tutto ciò che devi passare nella richiesta è il repository snapshot e il nome dell'istantanea che si desidera visualizzare i dettagli.
L'istantanea dovrebbe rispondere con i dettagli su un'istantanea specificata. Questi dettagli includono:
Ad esempio, per visualizzare i dettagli su Snapshot_3 creati sopra, utilizzare la richiesta mostrata di seguito:
Get/_snapshot/backup_repo/snapshot_3La richiesta deve restituire una risposta con i dettagli dell'istantanea come:
Puoi anche personalizzare l'organismo di richiesta per ottenere dettagli specifici su un'istantanea. Tuttavia, non lo esamineremo per ora.
Diciamo che desideri visualizzare informazioni su tutte le istantanee in un repository di istantanee specifico; In tal caso, puoi passare un jolly asterisco nella richiesta come:
Get/_snapshot/backup_repo/*Il comando Curl per questo è:
Curl -Xget “http: // localhost: 9200/_snapshot/backup_repo/*"La risposta è un dump dettagliato di tutte le istantanee in quel repository come:
I caratteri jolly sono molto utili per filtrare informazioni specifiche sulle istantanee.
Come eliminare un'istantanea
Eliminare un'istantanea è molto semplice: tutto ciò che devi fare è usare la richiesta di eliminazione come:
Delete/_snapshot/backup_repo/snapshot_2021/Il comando Curl è:
Curl -xdelete “http: // localhost: 9200/_snapshot/backup_repo/snapshot_2021/"La risposta dovrebbe essere riconosciuta: vera
Se l'istantanea non esiste, otterrai un codice di stato 404 e un errore mancante di istantanea come:
Conclusione
In questa guida, abbiamo discusso di come creare istantanee di ElasticSearch usando l'API Snapshot. Quello che hai imparato dovrebbe essere sufficiente per consentirti di creare un repository snapshot, visualizzare i repository di istantanee, creare, visualizzare ed eliminare le istantanee. Sebbene ci siano personalizzazioni che puoi effettuare con l'API, le conoscenze in questa guida dovrebbero essere sufficienti per iniziare.
Grazie per aver letto.