Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Create a Snapshot Repository

    First, create a snapshot repository where the snapshots will be stored. This can be a shared file system, Amazon S3, HDFS, etc. For this example, we'll use a shared file system.

    Code Block
    curl -X PUT "http://<es_node_ip>:9200/_snapshot/my_backup" -H 'Content-Type: application/json' -d'
    {
      "type": "fs",
      "settings": {
        "location": "/mount/backups/my_backup"
      }
    }'

    When the target repository is another Swarm cluster, the command to create the snapshot repository would be as follows:

    Code Block
    curl -X PUT "http://<es_node_ip>:9200/_snapshot/my_s3_backup" -H 'Content-Type: application/json' -d'
    {
      "type": "s3",
      "settings": {
        "bucket": "my-elasticsearch-backup-bucket",
        "endpoint": "https://datacore-swarm.example.com",
        "access_key": "your_access_key",
        "secret_key": "your_secret_key",
        "protocol": "https"
      }
    }'

Ensure that the location path is accessible and writable by all nodes in the cluster.

  1. Verify the Repository

    After creating the repository, verify it to ensure it is set up correctly:

    Code Block
    curl -X GET "http://<es_node_ip>:9200/_snapshot/my_backup"
  2. Create a Snapshot

    Once the repository is set up and verified, create a snapshot of your index. Replace index_mumbkctcomobs.ipstorage.tatacommunications.com0 with your index name.

    Code Block
    curl -X PUT "http://<es_node_ip>:9200/_snapshot/my_backup/snapshot_$(date +\%Y\%m\%d\%H\%M)" -H 'Content-Type: application/json' -d'
    {
      "indices": "index_mumbkctcomobs.ipstorage.tatacommunications.com0",
      "ignore_unavailable": true,
      "include_global_state": false
    }'
  3. Automate Snapshot Creation

    To automate the creation of snapshots, you can use cron jobs on Linux or scheduled tasks on Windows.

    Example using a cron job (runs daily at 2 AM):

    Code Block
    0 2 * * * curl -X PUT "http://<es_node_ip>:9200/_snapshot/my_backup/snapshot_$(date +\%Y\%m\%d\%H\%M)" -H 'Content-Type: application/json' -d'
    {
      "indices": "index_mumbkctcomobs.ipstorage.tatacommunications.com0",
      "ignore_unavailable": true,
      "include_global_state": false
    }'
  4. Monitor Snapshots

    Regularly check the status of your snapshots to ensure they are completing successfully:

    Code Block
    curl -X GET "http://<es_node_ip>:9200/_snapshot/my_backup/_all/_status"
  5. Restoring a Snapshot (if needed)

    If you need to restore a snapshot, you can do so with the following command:

    Code Block
    curl -X POST "http://<es_node_ip>:9200/_snapshot/my_backup/snapshot_<snapshot_date>/_restore" -H 'Content-Type: application/json' -d'
    {
      "indices": "index_mumbkctcomobs.ipstorage.tatacommunications.com0",
      "ignore_unavailable": true,
      "include_global_state": false
    }'

Automating with Elasticsearch Curator

...