全部产品
Search
文档中心

Elasticsearch:Gunakan Alibaba Cloud Logstash untuk Migrasi Data dari Cluster Elasticsearch yang Dikelola Sendiri ke Cluster Elasticsearch Alibaba Cloud

更新时间:Jul 02, 2025

Anda dapat menggunakan pipeline Alibaba Cloud Logstash untuk memigrasikan data dari cluster Elasticsearch yang dikelola sendiri ke cluster Elasticsearch Alibaba Cloud. Topik ini menjelaskan prosedur secara rinci.

Batasan

  • Instance Elastic Compute Service (ECS) yang menampung cluster Elasticsearch yang dikelola sendiri harus berada di dalam virtual private cloud (VPC). Anda tidak dapat menggunakan instance ECS yang terhubung ke VPC melalui koneksi ClassicLink.

  • Cluster Alibaba Cloud Logstash ditempatkan di dalam VPC. Sebelum mengonfigurasi pipeline Logstash, pastikan bahwa instance ECS yang menampung cluster Elasticsearch yang dikelola sendiri berada di VPC yang sama dengan cluster Alibaba Cloud Logstash yang ingin Anda gunakan. Jika mereka berada di VPC yang berbeda, konfigurasikan Network Address Translation (NAT) gateway dan gunakan gateway tersebut untuk menghubungkan instance ECS dan cluster Logstash ke Internet. Untuk informasi lebih lanjut, lihat Konfigurasikan NAT Gateway untuk Transmisi Data melalui Internet.

  • Konfigurasikan aturan grup keamanan untuk mengizinkan akses dari alamat IP node dalam cluster Logstash ke grup keamanan instance ECS yang menampung cluster Elasticsearch yang dikelola sendiri. Selain itu, aktifkan port 9200. Anda bisa mendapatkan alamat IP node dalam cluster Logstash pada halaman Informasi Dasar cluster Logstash.

  • Dalam contoh ini, cluster Alibaba Cloud Logstash V6.7.0 digunakan untuk memigrasikan data dari cluster Elasticsearch 5.6.16 yang dikelola sendiri ke cluster Elasticsearch Alibaba Cloud V6.7.0. Skrip yang disediakan dalam topik ini hanya berlaku untuk jenis migrasi data ini. Jika Anda ingin melakukan jenis migrasi data lainnya, periksa apakah cluster Elasticsearch dan cluster Logstash Anda memenuhi persyaratan kompatibilitas berdasarkan instruksi di Matriks Kompatibilitas. Jika mereka tidak memenuhi persyaratan kompatibilitas, Anda dapat meningkatkan versi mereka atau membeli cluster baru.

Prosedur

  1. Langkah 1: Persiapkan

  2. Langkah 2: Konfigurasikan dan jalankan pipeline Logstash

  3. Langkah 3: Lihat hasil migrasi data

Langkah 1: Persiapkan

  1. Buat cluster Elasticsearch yang dikelola sendiri.

    Kami merekomendasikan agar Anda menggunakan instance Alibaba Cloud ECS untuk membuat cluster Elasticsearch yang dikelola sendiri. Dalam contoh ini, cluster Elasticsearch 5.6.16 yang dikelola sendiri dibuat. Untuk informasi lebih lanjut, lihat Instal dan Jalankan Elasticsearch.

  2. Buat cluster Alibaba Cloud Logstash.

    Kami merekomendasikan agar Anda membuat cluster Alibaba Cloud Logstash di VPC yang sama dengan instance ECS yang menampung cluster Elasticsearch yang dikelola sendiri. Untuk informasi lebih lanjut, lihat Buat cluster Alibaba Cloud Logstash.

  3. Buat cluster Alibaba Cloud Elasticsearch dan aktifkan fitur Auto Indexing untuk cluster tersebut.

    • Kami merekomendasikan agar Anda membuat cluster Alibaba Cloud Elasticsearch di VPC yang sama dengan cluster Alibaba Cloud Logstash. Pastikan bahwa cluster Alibaba Cloud Elasticsearch memiliki versi yang sama dengan cluster Logstash. Dalam contoh ini, V6.7.0 digunakan. Untuk informasi lebih lanjut, lihat Buat cluster Alibaba Cloud Elasticsearch.

    • Untuk informasi tentang cara mengaktifkan fitur Auto Indexing, lihat Konfigurasikan file YML.

      Catatan

      Logstash tidak menyinkronkan fitur struktur data saat memigrasikan data. Oleh karena itu, jika Anda mengaktifkan fitur Auto Indexing, struktur data mungkin berubah setelah data dimigrasikan ke tujuan. Jika Anda ingin struktur data tetap tidak berubah, kami merekomendasikan agar Anda membuat indeks kosong di tujuan dan memigrasikan data ke indeks tersebut. Saat membuat indeks, salin konfigurasi mappings dan settings dari sumber dan atur jumlah shard ke nilai yang sesuai.

Langkah 2: Konfigurasikan dan jalankan pipeline Logstash

  1. Pergi ke halaman Cluster Logstash dari konsol Elasticsearch Alibaba Cloud.

  2. Navigasikan ke cluster yang diinginkan.

    1. Di bilah navigasi atas, pilih wilayah tempat cluster berada.

    2. Di halaman Logstash Clusters, temukan cluster dan klik ID-nya.

  3. Di panel navigasi sisi kiri halaman yang muncul, klik Pipelines.

  4. Di halaman Pipeline, klik Create Pipeline.

  5. Di wizard Create, masukkan ID pipeline dan konfigurasikan pipeline.

    Dalam contoh ini, konfigurasi berikut digunakan untuk pipeline:

    input {
      elasticsearch {
        hosts => ["http://<Alamat IP Node master dalam cluster Elasticsearch yang dikelola sendiri>:9200"]
        user => "elastic"
        index => "*,-.monitoring*,-.security*,-.kibana*"
        password => "your_password"
        docinfo => true
      }
    }
    filter {
    }
    output {
      elasticsearch {
        hosts => ["http://es-cn-mp91cbxsm000c****.elasticsearch.aliyuncs.com:9200"]
        user => "elastic"
        password => "your_password"
        index => "%{[@metadata][_index]}"
        document_type => "%{[@metadata][_type]}"
        document_id => "%{[@metadata][_id]}"
      }    
      file_extend {
            path => "/ssd/1/ls-cn-v0h1kzca****/logstash/logs/debug/test"
        }
    }

    Tabel 1. Parameter

    Parameter

    Deskripsi

    hosts

    Titik akhir cluster Elasticsearch yang dikelola sendiri atau cluster Elasticsearch Alibaba Cloud. Di bagian input, tentukan nilai untuk parameter ini dalam format http://<Alamat IP Node master dalam cluster Elasticsearch yang dikelola sendiri>:<Nomor Port>. Di bagian output, tentukan nilai untuk parameter ini dalam format http://<ID cluster Elasticsearch Alibaba Cloud>.elasticsearch.aliyuncs.com:9200.

    Penting

    Saat mengonfigurasi parameter ini, Anda harus mengganti <Alamat IP Node master dalam cluster Elasticsearch yang dikelola sendiri>, <Nomor Port>, dan <ID cluster Elasticsearch Alibaba Cloud> dengan nilai sebenarnya.

    user

    Nama pengguna yang digunakan untuk mengakses cluster Elasticsearch yang dikelola sendiri atau cluster Elasticsearch Alibaba Cloud.

    Penting
    • Parameter user dan password diperlukan dalam banyak kasus. Jika plug-in X-Pack tidak diinstal pada cluster Elasticsearch yang dikelola sendiri, Anda dapat membiarkan kedua parameter tersebut kosong.

    • Nama pengguna default yang digunakan untuk mengakses cluster Elasticsearch Alibaba Cloud adalah elastic. Nama pengguna default digunakan dalam contoh ini. Anda dapat menggunakan nama pengguna kustom. Sebelum menggunakan nama pengguna kustom, Anda harus membuat peran untuknya dan memberikan izin yang diperlukan kepada peran tersebut. Untuk informasi lebih lanjut, lihat Gunakan mekanisme RBAC yang disediakan oleh Elasticsearch X-Pack untuk mengimplementasikan kontrol akses.

    password

    Kata sandi yang digunakan untuk mengakses cluster Elasticsearch yang dikelola sendiri atau cluster Elasticsearch Alibaba Cloud.

    index

    Nama indeks yang datanya ingin Anda migrasikan atau ke mana Anda ingin memigrasikan data. Jika Anda menetapkan parameter ini ke *,-.monitoring*,-.security*,-.kibana* di bagian input, sistem akan memigrasikan data di indeks selain indeks sistem yang namanya dimulai dengan titik (.). Jika Anda menetapkan parameter ini ke %{[@metadata][_index]} di bagian output, sistem akan mencocokkan parameter indeks dalam metadata. Ini menunjukkan bahwa nama indeks yang dihasilkan pada cluster Elasticsearch Alibaba Cloud sama dengan nama indeks pada cluster Elasticsearch yang dikelola sendiri.

    docinfo

    Jika Anda menetapkan parameter ini ke true, sistem akan mengekstrak metadata dokumen dalam cluster Elasticsearch yang dikelola sendiri, seperti bidang indeks, tipe, dan id.

    document_type

    Jika Anda menetapkan parameter ini ke %{[@metadata][_type]}, sistem akan mencocokkan tipe indeks dalam metadata. Ini menunjukkan bahwa tipe indeks yang dihasilkan pada cluster Elasticsearch Alibaba Cloud sama dengan tipe indeks pada cluster Elasticsearch yang dikelola sendiri.

    Catatan

    Jika versi cluster Elasticsearch sumber adalah 6.X dan versi cluster Elasticsearch tujuan adalah 7.X, tetapkan document_type ke _doc.

    document_id

    Jika Anda menetapkan parameter ini ke %{[@metadata][_id]}, sistem akan mencocokkan ID dokumen dalam metadata. Ini menunjukkan bahwa ID dokumen yang dihasilkan pada cluster Elasticsearch Alibaba Cloud sama dengan ID dokumen pada cluster Elasticsearch yang dikelola sendiri.

    file_extend

    Parameter ini opsional. Ini menentukan apakah fitur debugging konfigurasi pipeline diaktifkan. Anda dapat menggunakan bidang path untuk menentukan jalur yang menyimpan log debug. Kami merekomendasikan agar Anda mengonfigurasi parameter ini. Setelah parameter dikonfigurasi, Anda dapat langsung melihat data keluaran pipeline di konsol. Jika parameter tidak dikonfigurasi, Anda perlu memeriksa data keluaran pipeline di tujuan. Jika data keluaran salah, Anda perlu memodifikasi konfigurasi pipeline di konsol. Ini meningkatkan biaya waktu dan tenaga. Untuk informasi tentang fitur ini, lihat Gunakan fitur debugging konfigurasi pipeline.

    Penting

    Sebelum menggunakan parameter file_extend, Anda harus menginstal plug-in logstash-output-file_extend. Untuk informasi lebih lanjut, lihat Instal dan hapus plug-in. Secara default, bidang path diatur ke jalur yang ditentukan sistem. Kami merekomendasikan agar Anda tidak mengubah jalur. Anda dapat mengklik Start Configuration Debug untuk mendapatkan path.

    Plug-in input yang menentukan cluster Elasticsearch dapat membaca data dari cluster berdasarkan pernyataan query yang dikonfigurasi untuk plug-in. Plug-in ini cocok untuk skenario di mana beberapa log uji perlu diimpor sekaligus. Secara default, operasi sinkronisasi dinonaktifkan secara otomatis dan proses Logstash dihentikan setelah data dibaca. Namun, Logstash perlu memastikan bahwa proses terus berjalan. Oleh karena itu, Logstash memulai ulang proses. Ini dapat menyebabkan penulisan data duplikat jika hanya ada satu pipeline. Untuk mengatasi masalah ini, Anda dapat menentukan periode untuk memungkinkan Logstash menjalankan pipeline secara berkala. Misalnya, Anda dapat mengaktifkan Logstash untuk menjalankan pipeline pada pukul 13:20 tanggal 5 Maret setiap tahun. Setelah pipeline dijalankan untuk pertama kalinya, Logstash menghentikannya. Anda dapat menggunakan parameter schedule bersama dengan sintaks ekspresi cron untuk menentukan periode. Untuk informasi lebih lanjut, lihat Penjadwalan dalam dokumentasi Logstash open source.

    Kode berikut memberikan contoh. Dalam contoh ini, pipeline dijadwalkan untuk dijalankan pada pukul 13:20 tanggal 5 Maret setiap tahun.

    schedule => "20 13 5 3 *"

    Untuk informasi lebih lanjut tentang cara mengonfigurasi parameter di bidang Config Settings, lihat File konfigurasi Logstash.

  6. Klik Next untuk mengonfigurasi parameter pipeline.

    管道参数配置

    Parameter

    Deskripsi

    Pipeline Workers

    Jumlah thread pekerja yang menjalankan filter dan plug-in output pipeline secara paralel. Jika backlog acara ada atau beberapa sumber daya CPU tidak digunakan, kami merekomendasikan agar Anda meningkatkan jumlah thread untuk memaksimalkan pemanfaatan CPU. Nilai default parameter ini adalah jumlah vCPU.

    Pipeline Batch Size

    Jumlah maksimum acara yang dapat dikumpulkan oleh satu thread pekerja dari plug-in input sebelum mencoba menjalankan filter dan plug-in output. Jika Anda menetapkan parameter ini ke nilai besar, satu thread pekerja dapat mengumpulkan lebih banyak acara tetapi mengonsumsi lebih banyak memori. Jika Anda ingin memastikan bahwa thread pekerja memiliki memori yang cukup untuk mengumpulkan lebih banyak acara, tentukan variabel LS_HEAP_SIZE untuk meningkatkan ukuran heap Java Virtual Machine (JVM). Nilai default: 125.

    Pipeline Batch Delay

    Waktu tunggu untuk sebuah acara. Waktu ini terjadi sebelum Anda menetapkan batch kecil ke thread pekerja pipeline dan setelah Anda membuat tugas batch untuk acara pipeline. Nilai default: 50. Unit: milidetik.

    Queue Type

    Model antrian internal untuk menyangga acara. Nilai valid:

    • MEMORY: antrian berbasis memori tradisional. Ini adalah nilai default.

    • PERSISTED: antrian berbasis disk ACKed, yaitu antrian persisten.

    Queue Max Bytes

    Ukuran data maksimum untuk antrian. Unit: MB. Nilai valid: bilangan bulat mulai dari 1 hingga 2<sup>53</sup> - 1. Nilai default: 1024.

    Catatan

    Nilai harus kurang dari kapasitas total disk Anda.

    Queue Checkpoint Writes

    Jumlah maksimum acara yang ditulis sebelum checkpoint diberlakukan ketika antrian persisten diaktifkan. Nilai 0 menunjukkan tidak ada batas. Nilai default: 1024.

    Peringatan

    Setelah Anda mengonfigurasi parameter, Anda harus menyimpan pengaturan dan menerapkan pipeline. Ini memicu restart cluster Logstash. Sebelum Anda melanjutkan, pastikan bahwa restart tidak memengaruhi bisnis Anda.

  7. Klik Save atau Save and Deploy.

    • Save: Setelah Anda mengklik tombol ini, sistem menyimpan pengaturan pipeline dan memicu perubahan cluster. Namun, pengaturan tidak berlaku. Setelah Anda mengklik Simpan, halaman Pipelines muncul. Di halaman Pipelines, temukan pipeline yang dibuat dan klik Deploy Now di kolom Actions. Kemudian, sistem memulai ulang cluster Logstash untuk membuat pengaturan berlaku.

    • Save and Deploy: Setelah Anda mengklik tombol ini, sistem memulai ulang cluster Logstash untuk membuat pengaturan berlaku.

Langkah 3: Lihat hasil migrasi data

  1. Masuk ke konsol Kibana cluster 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, cluster Elasticsearch V6.7.0 digunakan. Operasi pada cluster versi lain mungkin berbeda. Operasi sebenarnya di konsol yang berlaku.

  2. Di panel navigasi sisi kiri halaman yang muncul, klik Dev Tools.

  3. Pada tab Console halaman yang muncul, jalankan perintah GET /_cat/indices?v untuk melihat indeks yang menyimpan data yang dimigrasikan.

    迁移成功的索引

FAQ

  • T: Bagaimana cara menghubungkan instance ECS yang menampung cluster Elasticsearch yang dikelola sendiri ke cluster Alibaba Cloud Logstash ketika instance ECS dan cluster Logstash milik akun yang berbeda?

    J: Instance ECS dan cluster Logstash milik akun yang berbeda. Oleh karena itu, instance ECS dan cluster Logstash berada di VPC yang berbeda. Dalam kasus ini, Anda dapat menggunakan Cloud Enterprise Network (CEN) untuk menghubungkan instance ECS ke cluster Logstash. Untuk informasi lebih lanjut, lihat Langkah 3: Lampirkan instance jaringan.

  • T: Terjadi kesalahan saat Logstash menulis data ke tujuan. Apa yang harus saya lakukan?

    J: Lakukan pemecahan masalah berdasarkan instruksi yang disediakan di FAQ tentang transfer data menggunakan Logstash.