全部产品
Search
文档中心

Elasticsearch:Aktifkan pembuatan otomatis snapshot dan simpan snapshot ke repositori OSS

更新时间:Jul 06, 2025

Alibaba Cloud Elasticsearch memungkinkan Anda menggunakan snapshot untuk mengotomatiskan cadangan data kluster Elasticsearch. Untuk kluster Elasticsearch versi V7.6 atau yang lebih baru, Anda dapat mengonfigurasi kebijakan manajemen siklus hidup snapshot (SLM) guna mengaktifkan pembuatan otomatis snapshot. Untuk kluster dengan versi lebih lama dari V7.6, Anda harus membuat tugas terjadwal pada klien yang digunakan untuk mengakses kluster tersebut. Topik ini menjelaskan cara mengaktifkan pembuatan otomatis snapshot untuk kluster Alibaba Cloud Elasticsearch dan menyimpan snapshot ke repositori Alibaba Cloud Object Storage Service (OSS).

Informasi latar belakang

  • Untuk informasi lebih lanjut tentang SLM, lihat Snapshot Lifecycle Management.

  • Cadangan data dan pemulihan kluster Alibaba Cloud Elasticsearch bergantung pada plugin elasticsearch-repository-oss. Plugin ini diinstal secara default pada kluster Alibaba Cloud Elasticsearch dan tidak dapat dihapus. Untuk informasi lebih lanjut tentang plugin, lihat elasticsearch-repository-oss.

Prasyarat

  • OSS telah diaktifkan, dan Bucket OSS telah dibuat. Untuk informasi lebih lanjut, lihat Aktifkan OSS dan Buat bucket.

    Penting

    Kelas penyimpanan Bucket OSS harus Standar, dan daftar kontrol akses (ACL) bucket harus Publik Baca. Elasticsearch tidak mendukung Bucket OSS dengan kelas penyimpanan Arsip. Selain itu, Bucket OSS harus berada di wilayah yang sama dengan kluster Elasticsearch.

  • Repositori yang digunakan untuk menyimpan snapshot otomatis telah dibuat. Untuk informasi lebih lanjut, lihat Buat repositori.

    Penting

    Sebelum memulihkan data dari snapshot ke kluster, Anda harus membuat repositori di kluster dan memetakan repositori ke Titik akhir OSS yang sama dengan snapshot.

Prosedur

Kluster Elasticsearch versi V7.6 atau yang lebih baru

  1. Konfigurasikan kebijakan SLM untuk kluster Elasticsearch.

    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
      }
    }

    Parameter

    Deskripsi

    schedule

    Interval di mana snapshot dibuat secara otomatis. Nilai parameter ini mirip dengan ekspresi cron yang digunakan dalam sistem operasi Linux. Bagian-bagian dalam nilai parameter ini sesuai dengan detik, menit, jam, hari, bulan, minggu, dan tahun. Tahun bersifat opsional. Sebagai contoh, nilai "0 0 0/12 * * ?" menunjukkan bahwa snapshot otomatis dibuat setiap interval 12 jam.

    name

    Format penamaan snapshot otomatis.

    repository

    Nama repositori yang digunakan untuk menyimpan snapshot otomatis. Untuk informasi tentang cara mendapatkan nama repositori, lihat Kueri informasi repositori.

    config

    Informasi konfigurasi snapshot otomatis.

    • indices: Data dan indeks untuk snapshot otomatis yang dibuat. Asterisk (*) menunjukkan bahwa snapshot otomatis dibuat untuk semua data dan indeks dalam kluster Elasticsearch.

    • include_global_state: Menentukan apakah akan membuat snapshot otomatis untuk informasi status kluster Elasticsearch dan fitur. Nilai valid: true dan false. Nilai true menunjukkan bahwa snapshot otomatis dibuat untuk informasi tersebut. Nilai false menunjukkan bahwa snapshot otomatis tidak dibuat untuk informasi tersebut.

    retention

    Kebijakan retensi untuk snapshot otomatis. Konfigurasi dalam kode sebelumnya menunjukkan bahwa 5 hingga 50 snapshot otomatis dapat disimpan, dan periode retensinya adalah 30 hari. Parameter berikut dikonfigurasi:

    • expire_after: Menentukan periode retensi untuk snapshot otomatis.

    • min_count: Menentukan jumlah minimum snapshot otomatis yang dapat disimpan. Parameter min_count memiliki prioritas lebih tinggi daripada parameter expire_after.

    • max_count: Menentukan jumlah maksimum snapshot otomatis yang dapat disimpan. Parameter max_count memiliki prioritas lebih tinggi daripada parameter expire_after.

  2. Jalankan perintah berikut untuk menjalankan kebijakan SLM:

    POST _slm/policy/auto-snapshots/_execute

    Setelah perintah berhasil dijalankan, Alibaba Cloud Elasticsearch secara otomatis membuat snapshot setiap interval 12 jam. Anda juga dapat menjalankan perintah berikut untuk segera menjalankan kebijakan retensi yang telah dikonfigurasi:

    POST _slm/_execute_retention

Kluster Elasticsearch dengan versi lebih lama dari V7.6

  1. Konfigurasikan klien yang ingin Anda gunakan untuk mengakses kluster Elasticsearch.

  2. Buat dan jalankan tugas terjadwal untuk kluster Elasticsearch.

    Dalam contoh ini, tugas terjadwal crontab dibuat dan operasi berikut dilakukan pada klien:

    1. Buat skrip.

      vi /root/snapshot.sh
    2. Tambahkan perintah cURL yang digunakan untuk mengakses snapshot otomatis yang dibuat untuk kluster Elasticsearch ke skrip. Lalu, simpan skrip.

      curl -u elastic:***** -X PUT http://es-*****.public.elasticsearch.aliyuncs.com:9200/_snapshot/my_auto_backup_crontab/snapshot_$(date +%s)
    3. Berikan izin eksekusi ke skrip.

      chmod +x /root/snapshot.sh
    4. Konfigurasikan tugas terjadwal crontab dan tentukan waktu skrip dijalankan. Dalam contoh ini, skrip dijalankan pada pukul 02:00 setiap hari.

      crontab -e
      0 2 * * * /bin/bash /root/snapshot.sh
    5. Mulai ulang tugas terjadwal crontab.

      sudo /usr/sbin/cron restart

Setelah snapshot otomatis dibuat dan disimpan ke repositori, Anda dapat melakukan operasi seperti menghapus snapshot, memulihkan data dari snapshot, dan menanyakan informasi pemulihan. Untuk informasi lebih lanjut, lihat Buat snapshot manual dan pulihkan data dari snapshot manual.