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.
- 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
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.
CatatanDalam contoh ini, kluster Elasticsearch V7.10.0 digunakan. Operasi pada kluster versi lain mungkin berbeda. Operasi sebenarnya di konsol yang berlaku.
Di pojok kanan atas halaman yang muncul, klik Dev tools.
- 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?valiyun_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.
- 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.
- 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/_closeJika perintah berhasil dijalankan, hasil berikut dikembalikan:{ "acknowledged" : true, "shards_acknowledged" : true, "indices" : { ".kibana_1" : { "closed" : true } } } - 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" }Parameter Deskripsi <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. indices Nama indeks yang ingin Anda pulihkan. rename_pattern Ekspresi reguler yang digunakan untuk mencocokkan nama indeks yang ingin Anda pulihkan. Parameter ini opsional. rename_replacement Ekspresi reguler yang digunakan untuk menamai ulang indeks yang cocok. Parameter ini opsional. Jika perintah berhasil dijalankan,"accepted" : truedikembalikan.Penting Jika kluster Elasticsearch Anda adalah versi selain V7.10, kesalahan serupa denganindex_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. - 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.
- Di pojok kiri atas konsol Kibana, klik ikon
. - Di panel navigasi sisi kiri, pilih .
- Di bagian Kibana, klik Index Patterns.
- Di halaman Index patterns, klik pola yang namanya dimulai dengan kibana_ untuk memeriksa apakah data dipulihkan.

- Di pojok kiri atas konsol Kibana, klik ikon
Panggil API reindex untuk memulihkan indeks .kibana_1
- Tanyakan detail snapshot terbaru dan periksa apakah indeks .kibana_1 ada dalam kluster Elasticsearch.
- 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" }Parameter Deskripsi <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. indices Nama indeks yang ingin Anda pulihkan. rename_pattern Ekspresi reguler yang digunakan untuk mencocokkan nama indeks yang ingin Anda pulihkan. Parameter ini opsional. rename_replacement Nama indeks cadangan. Jika perintah berhasil dijalankan,
"accepted" : truedikembalikan. - 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" : [ ] } - Hapus indeks cadangan. Dalam contoh ini, indeks cadangan adalah kibana123.
DELETE kibana123Jika perintah berhasil dijalankan,
"accepted" : truedikembalikan. - 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.

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?
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"}'