全部产品
Search
文档中心

Elasticsearch:Pulihkan indeks .kibana_{num}

更新时间:Jul 02, 2025

Setelah layanan Kibana di-restart karena pengecualian, indeks .kibana_{num} untuk layanan tersebut di-reset. Dalam kasus ini, Anda harus memulihkan indeks untuk mengembalikan data. Di dalam .kibana_{num}, {num} adalah variabel. Sebagai contoh, indeks .kibana_1 dan .kibana_2 mungkin ada. Topik ini menjelaskan cara menggunakan snapshot atau memanggil API reindex untuk memulihkan indeks .kibana_{num}. Dalam topik ini, indeks .kibana_1 digunakan.

Informasi latar belakang

Indeks .kibana_{num} digunakan untuk menyimpan informasi konfigurasi Kibana, seperti konfigurasi dashboard dan pola indeks. Secara default, Kibana membaca data dari indeks .kibana_{num} berdasarkan alias .kibana. Jika beberapa indeks .kibana_{num} ada, hanya satu dari indeks tersebut yang menggunakan alias .kibana.

Dalam skenario bisnis yang kompleks, informasi konfigurasi Kibana yang disimpan dalam indeks .kibana_{num} mungkin di-reset. Sebagai contoh, jika struktur indeks .kibana_1 rusak atau terjadi kesalahan saat mengakses layanan Kibana, Anda perlu menghapus indeks .kibana_1 dan me-restart layanan Kibana. Jika terjadi pengecualian konfigurasi pada tugas penjadwalan, indeks .kibana_1 mungkin dihapus, dan layanan Kibana mungkin di-restart. Dalam skenario ini, setelah layanan Kibana di-restart, .kibana_task_manager_1 secara otomatis menghasilkan indeks baru .kibana_1 yang menggunakan alias .kibana, dan informasi konfigurasi Kibana diatur ulang dalam indeks .kibana_1 yang baru. Informasi tersebut mencakup pola indeks, konfigurasi dashboard, dan peran pengguna.

Anda dapat menggunakan salah satu metode berikut untuk memulihkan indeks .kibana_1:
  • Gunakan snapshot untuk langsung memulihkan indeks .kibana_1.
  • Pulihkan data dalam snapshot ke indeks cadangan dan reindex data dalam indeks cadangan ke indeks .kibana_1.
  • Buat pola indeks atau peran pengguna secara manual dalam layanan Kibana.

Prasyarat

  • Fitur Auto Snapshot diaktifkan untuk kluster Elasticsearch Anda, atau snapshot manual dibuat untuk indeks sistem dalam kluster Elasticsearch Anda. Struktur indeks .kibana_1 dalam snapshot normal.
  • Alias .kibana digunakan untuk indeks .kibana_1. Jika indeks .kibana_1 tidak ada, kami sarankan Anda me-restart layanan Kibana untuk menghasilkan indeks .kibana_1.

Prosedur

Gunakan snapshot untuk memulihkan indeks .kibana_1

  1. Masuk ke konsol Kibana kluster Elasticsearch Anda dan buka halaman utama konsol Kibana sesuai petunjuk.

    Untuk informasi lebih lanjut tentang cara masuk ke konsol Kibana, lihat Masuk ke konsol Kibana.

    Catatan

    Dalam contoh ini, kluster Elasticsearch V7.10.0 digunakan. Operasi pada kluster versi lain mungkin berbeda. Operasi sebenarnya di konsol yang berlaku.

  2. Di pojok kanan atas halaman yang muncul, klik Dev tools.

  3. Pada tab Console halaman yang muncul, jalankan perintah berikut untuk menanyakan informasi tentang snapshot otomatis yang disimpan di repositori terkait:
    GET _cat/snapshots/aliyun_auto_snapshot?v

    aliyun_auto_snapshot adalah nama repositori yang menyimpan snapshot otomatis. Jika Anda menggunakan fitur Auto Snapshot yang disediakan oleh Alibaba Cloud Elasticsearch untuk secara berkala membuat snapshot otomatis untuk data dalam kluster Elasticsearch Anda, nama repositori yang menyimpan snapshot tetap sebagai aliyun_auto_snapshot. Jika Anda secara manual membuat snapshot untuk data dalam kluster Elasticsearch Anda, Anda harus mengganti aliyun_auto_snapshot dengan nama repositori yang Anda gunakan.

    Jika perintah berhasil dijalankan, sistem mengembalikan informasi tentang semua snapshot yang disimpan dalam repositori, seperti IDs dan status snapshot.
    Catatan Kami sarankan Anda mencatat ID snapshot terbaru yang dibuat sebelum terjadi kesalahan pada layanan Kibana untuk digunakan nanti.
    Query information about snapshots in the repository
  4. Jalankan perintah berikut untuk menanyakan detail snapshot terbaru dan periksa apakah indeks .kibana_1 ada dalam kluster Elasticsearch:
    GET _snapshot/aliyun_auto_snapshot/<yourSnapshotId>

    Parameter <yourSnapshotId> menentukan ID snapshot otomatis terbaru yang dibuat sebelum terjadi kesalahan pada layanan Kibana. Atur parameter ini ke ID yang Anda peroleh di Langkah 3. Dalam contoh ini, parameter ini diatur ke es-cn-m7r23wodb006n****_20220303020235.

    Jika perintah berhasil dijalankan, hasil yang ditunjukkan pada gambar berikut dikembalikan. Anda hanya dapat melanjutkan ke langkah-langkah berikutnya jika hasilnya berisi indeks .kibana_1.Check whether the .kibana_1 index exists
  5. Jalankan perintah berikut untuk mengatur status indeks .kibana_1 menjadi tutup:
    Penting Jika Anda tidak dapat masuk ke konsol Kibana setelah Anda mengatur status indeks .kibana_1 menjadi tutup dan kemudian me-restart layanan Kibana, Anda harus menjalankan perintah cURL untuk memulihkan indeks .kibana_1. Untuk informasi lebih lanjut, lihat FAQ.
    POST /.kibana_1/_close
    Jika perintah berhasil dijalankan, hasil berikut dikembalikan:
    {
      "acknowledged" : true,
      "shards_acknowledged" : true,
      "indices" : {
        ".kibana_1" : {
          "closed" : true
        }
      }
    }
  6. Jalankan perintah berikut untuk memulihkan indeks .kibana_1 dari snapshot:
    POST _snapshot/aliyun_auto_snapshot/<yourSnapshotId>/_restore
    {
       "indices": ".kibana_1",
       "rename_pattern": ".kibana_1",
       "rename_replacement": ".kibana_1"
    }
    ParameterDeskripsi
    <yourSnapshotId>IDIDID snapshot otomatis terbaru yang dibuat sebelum terjadi kesalahan pada layanan Kibana. Dalam contoh ini, atur parameter ini ke ID yang Anda peroleh di Langkah 3.
    indicesNama indeks yang ingin Anda pulihkan.
    rename_patternEkspresi reguler yang digunakan untuk mencocokkan nama indeks yang ingin Anda pulihkan. Parameter ini opsional.
    rename_replacementEkspresi reguler yang digunakan untuk menamai ulang indeks yang cocok. Parameter ini opsional.
    Jika perintah berhasil dijalankan, "accepted" : true dikembalikan.
    Penting Jika kluster Elasticsearch Anda adalah versi selain V7.10, kesalahan serupa dengan index_closed_exception index=".kibana_1" mungkin dilaporkan saat Anda menggunakan snapshot untuk memulihkan indeks .kibana_1. Anda dapat menyelesaikan kesalahan berdasarkan instruksi yang diberikan di FAQ.
  7. Lihat hasil pemulihan.
    Lakukan langkah-langkah berikut untuk memeriksa apakah pola indeks yang dibuat dalam layanan Kibana dipulihkan. Jika pola indeks dipulihkan, indeks .kibana_1 dipulihkan dari snapshot.
    1. Di pojok kiri atas konsol Kibana, klik ikon Show the left-side navigation pane.
    2. Di panel navigasi sisi kiri, pilih Management > Stack Management.
    3. Di bagian Kibana, klik Index Patterns.
    4. Di halaman Index patterns, klik pola yang namanya dimulai dengan kibana_ untuk memeriksa apakah data dipulihkan.
      View the restoration result

Panggil API reindex untuk memulihkan indeks .kibana_1

  1. Tanyakan detail snapshot terbaru dan periksa apakah indeks .kibana_1 ada dalam kluster Elasticsearch.
    Untuk informasi lebih lanjut, lihat Langkah 1 hingga Langkah 4 di Gunakan snapshot untuk memulihkan indeks .kibana_1.
    Catatan Anda hanya dapat melanjutkan ke langkah-langkah berikutnya jika indeks .kibana_1 ada dalam kluster Elasticsearch.
  2. Jalankan perintah berikut untuk memulihkan indeks .kibana_1 dalam snapshot ke indeks cadangan. Dalam contoh ini, indeks cadangan adalah kibana123.
    POST _snapshot/aliyun_auto_snapshot/<yourSnapshotId>/_restore
    {
       "indices": ".kibana_1",
       "rename_pattern": ".kibana_1",
       "rename_replacement": "kibana123"
    }
    ParameterDeskripsi
    <yourSnapshotId>IDIDID snapshot otomatis terbaru yang dibuat sebelum terjadi kesalahan pada layanan Kibana. Dalam contoh ini, atur parameter ini ke ID yang Anda peroleh di Langkah 1.
    indicesNama indeks yang ingin Anda pulihkan.
    rename_patternEkspresi reguler yang digunakan untuk mencocokkan nama indeks yang ingin Anda pulihkan. Parameter ini opsional.
    rename_replacementNama indeks cadangan.

    Jika perintah berhasil dijalankan, "accepted" : true dikembalikan.

  3. Panggil API reindex untuk mereindex data dalam indeks cadangan ke indeks .kibana_1 saat ini.
    POST _reindex
    {
      "source": {
        "index": "kibana123"
      },
      "dest": {
        "index": ".kibana_1"
      }
    }
    Jika perintah berhasil dijalankan, hasil berikut dikembalikan:
    {
      "took" : 731,
      "timed_out" : false,
      "total" : 33,
      "updated" : 33,
      "created" : 0,
      "deleted" : 0,
      "batches" : 1,
      "version_conflicts" : 0,
      "noops" : 0,
      "retries" : {
        "bulk" : 0,
        "search" : 0
      },
      "throttled_millis" : 0,
      "requests_per_second" : -1.0,
      "throttled_until_millis" : 0,
      "failures" : [ ]
    }
  4. Hapus indeks cadangan. Dalam contoh ini, indeks cadangan adalah kibana123.
    DELETE kibana123

    Jika perintah berhasil dijalankan, "accepted" : true dikembalikan.

  5. Lihat hasil pemulihan.
    Periksa apakah pola indeks yang dibuat dalam layanan Kibana dipulihkan. Jika pola indeks dipulihkan, indeks .kibana_1 dipulihkan. Untuk informasi lebih lanjut, lihat Langkah 7 di Gunakan snapshot untuk memulihkan indeks .kibana_1.View the restoration result

FAQ

  • T: Saat saya menggunakan snapshot untuk memulihkan indeks .kibana_1 yang menggunakan alias .kibana, sistem menampilkan pesan kesalahan yang menunjukkan bahwa alias indeks .kibana_1 bertentangan dengan nama indeks .kibana. Apa yang harus saya lakukan?

    A: Setelah indeks .kibana_1 dihapus, Elasticsearch tidak dapat membaca data berdasarkan alias .kibana. Akibatnya, Elasticsearch membuat indeks .kibana. Indeks .kibana_1 dalam snapshot menggunakan .kibana sebagai aliasnya. Saat Anda memulihkan indeks .kibana_1, sistem menampilkan pesan kesalahan yang menunjukkan bahwa terjadi konflik alias. Dalam kasus ini, kami sarankan Anda menghapus indeks .kibana sebelum Anda memulihkan indeks .kibana_1 dari snapshot.

  • T: Saat saya menjalankan perintah terkait untuk kluster Elasticsearch versi selain V7.10 untuk memulihkan indeks .kibana_1 dari snapshot, pesan kesalahan yang ditunjukkan pada gambar berikut dilaporkan. Apa yang harus saya lakukan?Error
    A: Pesan kesalahan dilaporkan karena indeks .kibana_1 berada dalam keadaan tertutup. Jika indeks berada dalam keadaan tertutup, pesan kesalahan dilaporkan saat Anda menjalankan perintah apa pun untuk indeks tersebut di konsol Kibana. Kami sarankan Anda menggunakan instance Elastic Compute Service (ECS) untuk terhubung ke kluster Elasticsearch dan menjalankan perintah cURL untuk memulihkan indeks. Untuk informasi lebih lanjut, lihat Gunakan perintah curl dan operasi API untuk mengelola kluster Elasticsearch Alibaba Cloud. Sebagai contoh, Anda dapat menjalankan perintah cURL berikut untuk memulihkan indeks .kibana_1:
    curl -u <user>:<password> -XPOST "http://<host>:<port>/_snapshot/aliyun_auto_snapshot/<yourSnapshotId>/_restore" -H 'Content-Type: application/json' -d'{"indices": ".kibana_1","rename_pattern": ".kibana_1","rename_replacement": ".kibana_1"}'