全部产品
Search
文档中心

Elasticsearch:Migrasi data dari kluster Elasticsearch yang dikelola sendiri ke Alibaba Cloud Elasticsearch menggunakan Alibaba Cloud Logstash

更新时间:Jan 24, 2026

Topik ini menjelaskan cara menggunakan fitur konfigurasi pipeline Alibaba Cloud Logstash untuk memigrasikan data dari kluster Elasticsearch yang dikelola sendiri ke kluster Alibaba Cloud Elasticsearch.

Batasan

  • Instans ECS yang menjalankan kluster Elasticsearch yang dikelola sendiri harus berada dalam virtual private cloud (VPC). Instans ECS yang terhubung melalui ClassicLink tidak didukung.

  • Instans Alibaba Cloud Logstash ditempatkan di VPC. Jika kluster Elasticsearch yang dikelola sendiri dan kluster Logstash berada dalam VPC yang sama, Anda dapat menghubungkannya secara langsung. Jika berada di jaringan yang berbeda, Anda harus menggunakan NAT Gateway untuk menghubungkan ke jaringan publik. Untuk informasi selengkapnya, lihat Konfigurasi gateway NAT untuk transmisi data publik.

  • Security group dari instans ECS yang menjalankan kluster Elasticsearch yang dikelola sendiri harus mengizinkan akses dari alamat IP node kluster Logstash. Anda dapat menemukan alamat IP tersebut di halaman Informasi Dasar. Port 9200 juga harus dibuka.

  • Topik ini menggunakan contoh migrasi dari kluster Elasticsearch 8.17 yang dikelola sendiri ke kluster Alibaba Cloud Elasticsearch 8.17 menggunakan Alibaba Cloud Logstash 8.11.4. Skrip yang disediakan hanya berlaku untuk skenario migrasi ini dan mungkin tidak kompatibel dengan versi lain. Jika Anda menggunakan konfigurasi yang berbeda, lihat Kompatibilitas produk untuk memeriksa masalah kompatibilitas. Jika terdapat masalah, Anda harus melakukan upgrade instans atau membeli instans baru.

Prosedur

  1. Langkah 1: Siapkan lingkungan

  2. Langkah 2: Konfigurasikan dan jalankan pipeline Logstash

  3. Langkah 3: Lihat hasil migrasi data

Langkah 1: Siapkan lingkungan

  1. Siapkan kluster Elasticsearch yang dikelola sendiri.

    Anda dapat menggunakan Alibaba Cloud ECS untuk menyiapkan kluster Elasticsearch yang dikelola sendiri. Topik ini menggunakan versi 8.17 sebagai contoh. Untuk informasi selengkapnya, lihat Instal dan Jalankan Elasticsearch.

  2. Buat instans Alibaba Cloud Logstash.

    Buat instans Logstash dalam VPC yang sama dengan instans ECS yang menjalankan kluster Elasticsearch yang dikelola sendiri. Untuk informasi selengkapnya, lihat Buat instans Alibaba Cloud Logstash.

  3. Buat instans tujuan Alibaba Cloud Elasticsearch dan aktifkan pembuatan indeks otomatis.

    • Buat instans Elasticsearch yang berada dalam VPC yang sama dan memiliki versi yang sama dengan instans Logstash. Topik ini menggunakan versi 8.17 sebagai contoh. Untuk informasi selengkapnya, lihat Buat instans Alibaba Cloud Elasticsearch.

    • Untuk mengaktifkan pembuatan indeks otomatis, lihat Konfigurasi parameter YML.

      Catatan

      Logstash hanya menyinkronkan data, bukan struktur data. Jika Anda mengaktifkan pembuatan indeks otomatis, struktur data sebelum dan sesudah sinkronisasi mungkin tidak konsisten. Untuk memastikan konsistensi struktur data, Anda harus terlebih dahulu membuat indeks kosong secara manual di instans Elasticsearch tujuan. Saat membuat indeks tersebut, salin struktur mappings dan settings dari instans sumber dan alokasikan jumlah shard yang wajar.

Langkah 2: Konfigurasikan dan jalankan pipeline Logstash

  1. Buka halaman Kluster Logstash di Konsol Alibaba Cloud Elasticsearch.

  2. Navigasikan ke kluster yang diinginkan.

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

    2. Di halaman Logstash Clusters, temukan kluster tersebut lalu klik ID-nya.

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

  4. Di halaman Pipelines, klik Create Pipeline.

  5. Di halaman Create Pipeline Task, masukkan ID pipeline dan konfigurasikan pipeline tersebut.

    Konfigurasi pipeline yang digunakan dalam topik ini adalah sebagai berikut.

    input {
      elasticsearch {
        hosts => ["http://<IP address of the self-managed Elasticsearch master node>: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][input][elasticsearch][_index]}"
        document_id => "%{[@metadata][input][elasticsearch][_id]}"
      }    
      file_extend {
            path => "/ssd/1/ls-cn-v0h1kzca****/logstash/logs/debug/test"
        }
    }

    Tabel 1. Deskripsi parameter

    Parameter

    Deskripsi

    hosts

    Titik akhir layanan Elasticsearch yang dikelola sendiri atau Alibaba Cloud Elasticsearch. Di bagian input, formatnya adalah http://<IP address of the self-managed Elasticsearch master node>:<Port>. Di bagian output, formatnya adalah http://<Alibaba Cloud Elasticsearch instance ID>.elasticsearch.aliyuncs.com:9200.

    Penting

    Saat mengonfigurasi pipeline, ganti <IP address of the self-managed Elasticsearch master node>, <Port>, dan <Alibaba Cloud Elasticsearch instance ID> dengan nilai aktualnya.

    user

    Username untuk mengakses layanan Elasticsearch yang dikelola sendiri atau Alibaba Cloud Elasticsearch.

    Penting
    • user dan password adalah parameter yang diperlukan. Jika X-Pack tidak diinstal pada kluster Elasticsearch yang dikelola sendiri Anda, Anda dapat mengosongkan parameter ini.

    • Username default untuk mengakses instans Alibaba Cloud Elasticsearch adalah elastic. Topik ini menggunakan username ini sebagai contoh. Jika ingin menggunakan pengguna kustom, Anda harus menetapkan role dan izin yang diperlukan kepada pengguna tersebut. Untuk informasi selengkapnya, lihat Gunakan manajemen role X-Pack Elasticsearch untuk mengontrol izin pengguna.

    password

    Password untuk mengakses layanan Elasticsearch yang dikelola sendiri atau Alibaba Cloud Elasticsearch.

    index

    Nama indeks yang akan disinkronkan. Di bagian input, atur parameter ini menjadi *,-.monitoring*,-.security*,-.kibana* untuk menyinkronkan semua indeks kecuali indeks sistem yang diawali titik (.). Di bagian output, atur parameter ini menjadi %{[@metadata][input][elasticsearch][_index]} untuk mencocokkan indeks dalam metadata. Hal ini memastikan bahwa indeks yang dihasilkan oleh Alibaba Cloud Elasticsearch memiliki nama yang sama dengan indeks di kluster Elasticsearch yang dikelola sendiri.

    docinfo

    Atur parameter ini ke true agar Alibaba Cloud Elasticsearch dapat mengambil metadata dari dokumen di kluster Elasticsearch yang dikelola sendiri, seperti indeks, tipe, dan ID.

    document_id

    Atur parameter ini ke %{[@metadata][input][elasticsearch][_id]} untuk mencocokkan ID dokumen dalam metadata. Hal ini memastikan bahwa ID dokumen yang dihasilkan oleh Alibaba Cloud Elasticsearch sama dengan ID dokumen di kluster Elasticsearch yang dikelola sendiri.

    file_extend

    Opsional. Mengaktifkan fitur log debug. Parameter path menentukan jalur output untuk log debug. Konfigurasikan parameter ini untuk melihat output langsung di konsol. Jika tidak dikonfigurasi, Anda harus memeriksa output di tujuan lalu kembali ke konsol untuk melakukan perubahan, yang bisa memakan waktu. Untuk informasi selengkapnya, lihat Gunakan pipeline Logstash untuk mengonfigurasi fitur debug.

    Penting

    Sebelum menggunakan parameter file_extend, Anda harus menginstal plugin logstash-output-file_extend. Untuk informasi selengkapnya, lihat Instal dan hapus plugin. Secara default, field path diatur ke jalur yang ditentukan sistem. Kami menyarankan agar Anda tidak mengubah jalur tersebut. Anda dapat mengklik Start Configuration Debug untuk mendapatkan path.

    Plugin input Elasticsearch membaca dokumen dari kluster Elasticsearch berdasarkan pernyataan kueri yang dikonfigurasi. Ini berguna untuk operasi seperti impor batch log pengujian. Secara default, aksi sinkronisasi otomatis berhenti setelah membaca data. Namun, Alibaba Cloud Logstash memerlukan proses berjalan terus-menerus. Jika proses berhenti, proses tersebut akan dimulai ulang. Hal ini dapat menyebabkan penulisan data duplikat dalam skenario tugas tunggal, seperti `logstash input es`. Untuk mencegah penulisan duplikat, atur tugas terjadwal dengan interval panjang. Misalnya, Anda dapat menjadwalkan tugas untuk dijalankan pada pukul 13.20 tanggal 5 Maret. Setelah tugas pertama kali dijalankan, hentikan pipeline. Gunakan sintaks cron dengan parameter schedule untuk melakukan hal ini. Untuk informasi selengkapnya, lihat bagian Penjadwalan dalam dokumentasi Logstash.

    Contohnya, untuk menjadwalkan tugas dijalankan pada pukul 13.20 tanggal 5 Maret:

    schedule => "20 13 5 3 *"

    Untuk informasi selengkapnya tentang pengaturan file konfigurasi, lihat Deskripsi file konfigurasi Logstash.

  6. Klik Next untuk mengonfigurasi parameter pipeline.

    管道参数配置

    Parameter

    Deskripsi

    Pipeline Workers

    Jumlah thread pekerja yang menjalankan plugin filter dan output pipeline secara paralel. Jika terdapat antrean event atau beberapa sumber daya CPU tidak digunakan, kami sarankan untuk menambah jumlah thread guna memaksimalkan pemanfaatan CPU. Nilai default parameter ini adalah jumlah vCPU.

    Pipeline Batch Size

    Jumlah maksimum event yang dapat dikumpulkan oleh satu thread pekerja dari plugin input sebelum mencoba menjalankan plugin filter dan output. Jika Anda mengatur parameter ini ke nilai besar, satu thread pekerja dapat mengumpulkan lebih banyak event tetapi mengonsumsi memori lebih besar. Jika ingin memastikan thread pekerja memiliki memori yang cukup untuk mengumpulkan lebih banyak event, tentukan variabel LS_HEAP_SIZE untuk menambah ukuran heap Java virtual machine (JVM). Nilai default: 125.

    Pipeline Batch Delay

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

    Queue Type

    Model antrian internal untuk buffering event. Nilai yang valid:

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

    • PERSISTED: antrian berbasis disk dengan ACK, yaitu antrian persisten.

    Queue Max Bytes

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

    Catatan

    Nilai ini harus lebih kecil dari kapasitas total disk Anda.

    Queue Checkpoint Writes

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

    Peringatan

    Setelah mengonfigurasi parameter, Anda harus menyimpan pengaturan dan menerapkan pipeline. Hal ini akan memicu restart kluster Logstash. Pastikan restart tersebut tidak memengaruhi bisnis Anda sebelum melanjutkan.

  7. Klik Save atau Save and Deploy.

    • Save: Setelah mengklik tombol ini, sistem menyimpan pengaturan pipeline dan memicu perubahan kluster. Namun, pengaturan tersebut belum berlaku. Setelah mengklik Save, halaman Pipelines akan muncul. Di halaman Pipelines, temukan pipeline yang telah dibuat lalu klik Deploy Now di kolom Actions. Sistem kemudian akan me-restart kluster Logstash agar pengaturan berlaku.

    • Save and Deploy: Setelah mengklik tombol ini, sistem akan me-restart kluster Logstash agar pengaturan berlaku.

Langkah 3: Lihat hasil migrasi data

  1. Di instans Alibaba Cloud Elasticsearch Anda, login ke konsol Kibana. Di panel navigasi sebelah kiri, klik ikon 展开图标 lalu pilih Management > Developer Tools.

    Catatan

    Topik ini menggunakan Alibaba Cloud Elasticsearch 8.17 sebagai contoh. Operasi dapat berbeda untuk versi lain. Antarmuka pengguna (UI) aktual di konsol yang berlaku.

  2. Di Console, jalankan perintah GET /_cat/indices?v untuk melihat indeks yang berhasil dimigrasikan.

    image

FAQ

  • Q: Kluster Elasticsearch yang dikelola sendiri saya di instans ECS dan instans Alibaba Cloud Logstash saya berada di akun yang berbeda. Bagaimana cara mengonfigurasi konektivitas jaringan untuk migrasi data?

    A: Karena instans ECS dan instans Logstash berada di akun yang berbeda, keduanya berada di VPC yang berbeda. Anda harus mengonfigurasi konektivitas antara kedua VPC tersebut. Anda dapat menggunakan Cloud Enterprise Network (CEN) untuk melakukan hal ini. Untuk informasi selengkapnya, lihat Langkah 3: Muat instans jaringan.

  • Q: Apa yang harus saya lakukan jika terjadi masalah saat Logstash menulis data?

    A: Lihat Pemecahan masalah penulisan data Logstash.