Tous les produits
Search
Centre de documentation

Elasticsearch:Automatiser les sauvegardes par snapshot vers un référentiel OSS

Dernière mise à jour :Aug 09, 2026

Alibaba Cloud Elasticsearch propose deux méthodes pour automatiser les sauvegardes par snapshot. Pour les clusters exécutant la version 7,6 ou ultérieure, utilisez la gestion du cycle de vie des snapshots (SLM) afin de planifier les snapshots et de gérer leur conservation. Pour les versions antérieures à la 7,6, utilisez une tâche crontab côté client pour déclencher la création des snapshots. Les deux méthodes stockent les snapshots dans un référentiel OSS.

Contexte

  • Pour plus d'informations sur la gestion du cycle de vie des snapshots, consultez Snapshot lifecycle management.

  • La sauvegarde et la restauration des données dans Elasticsearch dépendent du plugin elasticsearch-repository-oss. Ce plugin est préinstallé sur les clusters Alibaba Cloud Elasticsearch et ne peut pas être supprimé. Pour plus d'informations sur ce plugin, consultez elasticsearch-repository-oss.

Versions 7,6 et ultérieures (recommandé)

Avant de commencer, assurez-vous de remplir les conditions préalables suivantes :

  • Créez un bucket OSS de classe de stockage Standard. Les buckets de classe Archive ne sont pas pris en charge. Le bucket doit se trouver dans la même région que votre cluster Elasticsearch. Pour obtenir des instructions, consultez Create a bucket.

  • Créez un référentiel pour associer le bucket OSS à votre cluster Elasticsearch. Pour obtenir des instructions, consultez Create a repository.

Dans la console Kibana de votre cluster, cliquez sur Dev Tools et suivez les étapes ci-dessous.

  1. Créez une politique SLM.

    PUT _slm/policy/auto-snapshots
    {
      "schedule": "0 0 0/12 * * ?",
      "name": "<auto-snap-{now/d}>",
      "repository": "my_auto_backup",
      "config": {
        "indices": "*",
        "include_global_state": true
      },
      "retention": {
        "expire_after": "30d",
        "min_count": 5,
        "max_count": 50
      }
    }

    Paramètre

    Description

    schedule

    Le format d'une expression Cron est le suivant : Seconde Minute Heure Jour du mois Mois Jour de la semaine Année (facultatif). L'expression "0 0 0/12 * * ?" crée un snapshot toutes les 12 heures. Pour plus d'informations, consultez Cron.

    name

    Le format du nom du snapshot. Vous pouvez utiliser des expressions mathématiques de date, telles que <auto-snap-{now/d}>, pour une dénomination basée sur la date.

    repository

    Le nom du référentiel de snapshots. Pour trouver le nom du référentiel, consultez Get repository information.

    config.indices

    Les index inclus dans le snapshot. Le caractère * indique tous les index.

    config.include_global_state

    Indique s'il faut inclure l'état du cluster et l'état des fonctionnalités. La valeur true les inclut, tandis que false ne les inclut pas.

    retention.expire_after

    La période de conservation des snapshots. L'exemple définit cette durée sur 30 jours.

    retention.min_count

    Le nombre minimum de snapshots à conserver. Ce nombre minimal est préservé même si les snapshots sont plus anciens que la période définie par expire_after.

    retention.max_count

    Le nombre maximum de snapshots à conserver. Si cette limite est dépassée, les snapshots les plus anciens sont supprimés, quel que soit leur âge.

  2. Exécutez la politique SLM pour créer immédiatement un snapshot.

    POST _slm/policy/auto-snapshots/_execute

    Une fois la commande exécutée, Elasticsearch crée automatiquement des snapshots selon le paramètre schedule. Pour exécuter immédiatement la politique de conservation, exécutez la commande suivante :

    POST _slm/_execute_retention

Versions antérieures à 7,6

Les versions antérieures à 7,6 ne prennent pas en charge SLM. Utilisez une tâche crontab côté client pour automatiser les snapshots.

Avant de commencer, assurez-vous de remplir les conditions préalables suivantes :

  • Créez un bucket OSS de classe de stockage Standard. Les buckets de classe Archive ne sont pas pris en charge. Le bucket doit se trouver dans la même région que votre cluster Elasticsearch. Pour obtenir des instructions, consultez Create a bucket.

  • Créez un référentiel. Pour obtenir des instructions, consultez Create a repository.

  • Configurez un client capable d'accéder au cluster Elasticsearch via le réseau public ou un réseau interne. Pour plus d'informations, consultez Use a client to access an Alibaba Cloud Elasticsearch cluster.

Sur votre serveur client, procédez comme suit :

  1. Créez un script de sauvegarde par snapshot.

    vi /root/snapshot.sh
  2. Ajoutez le contenu suivant au fichier de script et enregistrez-le. Remplacez elastic:***** par le nom d'utilisateur et le mot de passe réels, et es-***** par l'ID réel du cluster.

    curl -u elastic:***** -X PUT https://es-*****.public.elasticsearch.aliyuncs.com:9200/_snapshot/my_auto_backup_crontab/snapshot_$(date +%s)
  3. Accordez les permissions d'exécution au script.

    chmod +x /root/snapshot.sh
  4. Configurez une tâche crontab. L'exemple suivant programme l'exécution de la tâche tous les jours à 2 h 00.

    crontab -e

    Ajoutez la ligne suivante :

    0 2 * * * /bin/bash /root/snapshot.sh

    Après avoir enregistré le fichier, crontab charge automatiquement la nouvelle configuration. Il n'est pas nécessaire de redémarrer le service cron.

Une fois les snapshots sauvegardés, vous pouvez les supprimer, les restaurer ou consulter leurs détails. Pour plus d'informations, consultez Manual backup and restoration. Pour restaurer un snapshot dans un cluster différent, vous devez créer un référentiel dans le cluster cible qui pointe vers le même bucket OSS.