Pour aider à sauvegarder contre la perte de données, Elasticsearch possède diverses fonctionnalités qui vous permettent d'assurer la disponibilité des données, même dans les cas d'échec des données.
Certaines des façons dont Elasticsearch utilise pour vous fournir la disponibilité des données comprennent:
Ce tutoriel vous montre comment créer des instantanés de cluster, ce qui vous aidera à être prêt si un événement irréversible de défaillance des données se produit.
Commençons.
Qu'est-ce qu'un instantané Elasticsearch?
Comme mentionné, un instantané élastique est une copie de sauvegarde d'un cluster Elasticsearch en cours d'exécution. Cet instantané peut être d'un cluster entier ou des indices et flux de données spécifiques dans un cluster particulier.
Comme vous l'apprennerez bientôt, un plugin de référentiel gère les instantanés Elasticsearch. Ces instantanés sont storables dans divers emplacements de stockage définis par le plugin. Il s'agit notamment de systèmes locaux et de systèmes distants tels que GCP Storage, Amazon EC2, Microsoft Azure et bien d'autres.
Comment créer un référentiel instantané Elasticsearch
Avant de plonger dans la création d'instantanés Elasticsearch, nous devons créer un référentiel instantané car de nombreux services d'Elasticsearch utilisent l'API Snapshot pour effectuer ces tâches.
Certaines des tâches manipulées par l'API instantané sont:
Pour créer un référentiel instantané, nous utilisons le point de terminaison de l'API _snapshot suivi du nom que nous voulons attribuer au référentiel instantané. Considérez la demande ci-dessous qui crée un référentiel appelé backup_repo
Put / _snapshot / backup_repoVoici une commande Curl pour la demande ci-dessus:
curl -xput "http: // localhost: 9200 / _snapshot / backup_repo" -h 'contenu-type: application / json' -d '"type": "fs", "paramètres": "emplacement": "/ Accueil / racine / sauvegardes "," compress ": true 'Pour passer le chemin du référentiel instantané, vous devez d'abord ajouter le chemin du système ou le répertoire parent sur le chemin.Répo Entrée dans Elasticsearch.YML
Le chemin.L'entrée de répension devrait ressembler à:
chemin.repo: [«/ home / root / backups»]Vous pouvez trouver le fichier de configuration Elasticsearch situé dans / etc / elasticsearch / elasticsearch.YML
NOTE: Après avoir ajouté le chemin.Repo, vous devrez peut-être redémarrer les clusters Elasticsearch. De plus, les valeurs prises en charge pour le chemin.Repo peut varier follement en fonction de la plate-forme exécutant Elasticsearch.
Comment afficher le référentiel instantané
Pour confirmer la création réussie du référentiel instantané, utilisez la demande GET avec le point de terminaison _snapshot comme:
Get / _snapshot / backup_repoVous pouvez également utiliser la commande Curl suivante:
curl -xget "http: // localhost: 9200 / _snapshot / backup_repo"Cela devrait afficher des informations sur le référentiel de sauvegarde, par exemple:
Si vous avez plus d'un référentiel d'instantanés et que vous ne vous souvenez pas du nom, vous pouvez omettre le nom du référentiel et appeler le point de terminaison _snapshot pour répertorier tous les référentiels existants.
Get / _snapshot ou curl curl -xget http: // localhost: 9200 / _snapshot
Comment créer un instantané Elasticsearch
La création d'un instantané ElasticSearch pour un référentiel d'instantanage spécifique est géré par l'API Créer un instantané. L'API nécessite le nom du référentiel instantané et le nom de l'instantané.
NOTE: Un seul référentiel instantané peut avoir plus d'un instantané des mêmes clusters tant qu'ils ont des identités / noms uniques.
Considérez la demande suivante pour ajouter un instantané appelé snapshot_2021 au référentiel Backup_Repo.
Put / _snapshot / backup_repo / snapshot_2021Pour utiliser Curl, utilisez la commande:
curl -xput «http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021»La commande doit renvoyer une réponse d'Elasticsearch avec 200 ok et accepté: vrai
Puisqu'il ne spécifie pas les flux de données et les indices que vous souhaitez sauvegarder, appelant la demande ci-dessus sauvegarde toutes les données et l'état de cluster. Pour spécifier les flux de données et les indices à sauvegarder, ajoutez-le au corps de la demande.
Considérez la demande suivante qui sauvegarde le .Index Kibana (un index du système) et spécifie quel utilisateur a autorisé l'instantané et la raison.
Put / _snapshot / backup_repo / snapshot_2La commande curl pour cela est:
curl -xput "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2" -h 'contenu-type: application / json' -d '"Indices": ".Kibana "," ignore_unavailable ": true," include_global_state ": true," métadonnées ": " Taken_By ":" ElasticAdmin "," Taken_because ":" Daily Backup " 'Le ignore_unavailable définit un état booléen qui renvoie une erreur si des flux de données ou des indices spécifiés dans l'instantané sont manquants ou fermés.
Le paramètre include_global_state enregistre l'état actuel du cluster si vrai. Certaines des informations enregistrées sur les cluster comprennent:
NOTE: Vous pouvez spécifier plus d'un indices séparés par des virgules.
Un argument commun utilisé avec le point de terminaison _snapshot est Wait_For_Completion, une valeur booléenne définissant si (true) ou non (faux) la demande doit revenir immédiatement après l'initialisation de l'instant.
Par exemple:
Put / _snapshot / backup_repo / snapshot_3?wait_for_completion = trueLa commande curl est:
curl -xput "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3?wait_for_completion = true "-h 'contenu-type: application / json' -d '" Indices ":".Kibana "," ignore_unavailable ": true," include_global_state ": false," métadonnées ": " Taken_By ":" ElasticAdmin "," Taken_because ":" Sauvegarde hebdomadaire " 'Lorsque le paramètre Wait_For_Completion est défini sur true, vous donnerez une sortie similaire à celle ci-dessous:
Comment afficher les instantanés
L'API GET SNOPSHOT gère la fonctionnalité des instantanés de vue.
Tout ce dont vous avez besoin pour passer dans la demande est le référentiel instantané et le nom de l'instantané que vous souhaitez afficher les détails.
L'instantané doit répondre avec des détails sur un instantané spécifié. Ces détails comprennent:
Par exemple, pour afficher les détails sur le snapshot_3 créé ci-dessus, utilisez la demande ci-dessous:
Get / _snapshot / backup_repo / snapshot_3La demande doit renvoyer une réponse avec les détails de l'instantané comme:
Vous pouvez également personnaliser le corps de la demande pour obtenir des détails spécifiques sur un instantané. Cependant, nous ne examinerons pas cela pour l'instant.
Disons que vous souhaitez afficher des informations sur tous les instantanés dans un référentiel instantané spécifique; Dans ce cas, vous pouvez passer un joker Asterisk dans la demande comme:
Get / _snapshot / backup_repo / *La commande curl pour cela est:
curl -xget “http: // localhost: 9200 / _snapshot / backup_repo / *”La réponse est un vidage détaillé de tous les instantanés de ce référentiel comme:
Les caractères génériques sont très utiles pour filtrer des informations spécifiques sur les instantanés.
Comment supprimer un instantané
La suppression d'un instantané est très simple: tout ce que vous avez à faire est d'utiliser la demande de suppression comme:
Delete / _snapshot / backup_repo / snapshot_2021 /La commande curl est:
curl -xdelete "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021 /"La réponse doit être reconnue: vrai
Si l'instantané n'existe pas, vous obtiendrez un code d'état 404 et une erreur manquante pour:
Conclusion
Dans ce guide, nous avons discuté de la façon de créer des instantanés Elasticsearch à l'aide de l'API Snapshot. Ce que vous avez appris devrait être suffisant pour vous permettre de créer un référentiel instantané, afficher les référentiels d'instantané, créer, afficher et supprimer des instantanés. Bien qu'il y ait des personnalisations que vous pouvez faire avec l'API, les connaissances de ce guide devraient être suffisantes pour vous aider à démarrer.
Merci pour la lecture.