All Products
Search
Document Center

Elasticsearch:Migrasi data Elasticsearch yang dikelola sendiri menggunakan Alibaba Cloud Logstash

Last Updated:Aug 22, 2026

Anda dapat menggunakan pipeline Alibaba Cloud Logstash untuk memigrasikan data dari kluster Elasticsearch yang dikelola sendiri ke instans Alibaba Cloud Elasticsearch.

Batasan

  • Instans ECS yang menjalankan kluster Elasticsearch yang dikelola sendiri harus dideploy di VPC. Instans ECS yang terhubung melalui ClassicLink tidak didukung.

  • Instans Alibaba Cloud Logstash dideploy di VPC. Jika kluster Elasticsearch yang dikelola sendiri dan instans Alibaba Cloud Logstash berada dalam VPC yang sama, keduanya dapat terhubung secara langsung. Jika berada di VPC yang berbeda, Anda harus menggunakan NAT Gateway untuk terhubung melalui internet publik. Untuk informasi selengkapnya, lihat Konfigurasi transmisi data melalui jaringan publik menggunakan NAT Gateway.

  • Security group untuk instans ECS yang menjalankan kluster Elasticsearch yang dikelola sendiri harus mengizinkan lalu lintas pada port 9200 dari semua alamat IP node instans Logstash. Anda dapat menemukan alamat IP node tersebut di halaman Informasi Dasar.

  • Dokumen ini menggunakan kluster Elasticsearch 8.17 yang dikelola sendiri, instans Alibaba Cloud Elasticsearch 8.17, dan instans Alibaba Cloud Logstash 8.11.4 sebagai contoh. Skrip yang disediakan hanya berlaku untuk skenario ini dan mungkin tidak kompatibel dengan konfigurasi lainnya.

Prosedur

  1. Langkah 1: Siapkan lingkungan

  2. Langkah 2: Konfigurasikan dan jalankan pipeline Logstash

  3. Langkah 3: Lihat hasil migrasi

Langkah 1: Siapkan lingkungan

  1. Siapkan kluster Elasticsearch yang dikelola sendiri.

    Deploy kluster Elasticsearch yang dikelola sendiri di Alibaba Cloud ECS. Dokumen 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 auto indexing untuk instans tersebut.

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

    • Untuk mengetahui cara mengaktifkan auto indexing, lihat Konfigurasi parameter YML.

      Catatan

      Logstash hanya menyinkronkan data, bukan struktur data. Mengaktifkan auto indexing dapat menyebabkan ketidakkonsistenan struktur data setelah migrasi. Untuk memastikan konsistensi, buat indeks kosong di instans Elasticsearch tujuan sebelum memulai. Saat membuat indeks, salin mappings dan settings dari indeks sumber dan konfigurasikan jumlah shard yang sesuai.

Langkah 2: Konfigurasikan dan jalankan pipeline Logstash

  1. Buka halaman Logstash Clusters.

  2. Navigasi ke kluster target.

    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, klik Pipelines.

  4. Klik Create Pipeline.

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

    Gunakan konfigurasi pipeline 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. Parameter

    Parameter

    Deskripsi

    hosts

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

    Penting

    Ganti <IP address of the self-managed Elasticsearch master node>, <port>, dan <ID of the Alibaba Cloud Elasticsearch instance> dengan nilai aktual Anda.

    user

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

    Penting
    • Parameter user dan password wajib diisi. Jika kluster Elasticsearch yang dikelola sendiri Anda tidak memiliki X-Pack yang terinstal, Anda dapat mengosongkan parameter ini.

    • Username default untuk mengakses instans Alibaba Cloud Elasticsearch adalah elastic, yang digunakan dalam panduan ini. Untuk menggunakan pengguna kustom, Anda harus memberikan role dan izin yang diperlukan kepada pengguna tersebut. Untuk informasi selengkapnya, lihat Gunakan Elasticsearch X-Pack untuk kontrol akses berbasis peran.

    password

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

    index

    Tentukan nama indeks yang akan disinkronkan. Atur parameter input menjadi ,-.monitoring*,-.security*,-.kibana untuk menyinkronkan semua indeks kecuali indeks sistem yang diawali dengan .. Atur parameter output menjadi %{[@metadata][input][elasticsearch][_index]} untuk mencocokkan nama indeks dari metadata. Hal ini memastikan bahwa nama indeks di Alibaba Cloud Elasticsearch sama dengan nama indeks di Elasticsearch yang dikelola sendiri.

    docinfo

    Jika diatur ke true, plugin input elasticsearch mengekstrak metadata dokumen, seperti indeks, tipe, dan ID, dari dokumen Elasticsearch yang dikelola sendiri.

    document_id

    Jika diatur ke %{[@metadata][input][elasticsearch][_id]}, ID dokumen dicocokkan dari metadata. Hal ini memastikan bahwa ID dokumen di instans tujuan sama dengan ID dokumen di sumber.

    file_extend

    Opsional. Mengaktifkan logging debug dan menggunakan parameter path untuk mengatur path output log debug. Kami menyarankan Anda mengonfigurasi parameter ini. Setelah diaktifkan, Anda dapat langsung melihat output di konsol. Jika tidak diaktifkan, Anda harus memverifikasi output di tujuan lalu kembali ke konsol untuk memodifikasi pipeline, yang merupakan proses yang memakan waktu. Untuk informasi selengkapnya, lihat Gunakan debugging konfigurasi pipeline.

    Penting

    Parameter file_extend memerlukan plugin logstash-output-file_extend. Instal atau uninstal plugin. Parameter path secara default menggunakan path yang ditentukan sistem. Jangan ubah nilai ini. Anda juga dapat mengambil path dengan mengklik Start Configuration Debug.

    Plugin input Elasticsearch berguna untuk tugas seperti mengimpor log pengujian secara massal dengan membaca dokumen dari kluster Alibaba Cloud Elasticsearch. Secara default, proses ini berhenti setelah membaca semua data. Namun, instans Alibaba Cloud Logstash berjalan terus-menerus dan secara otomatis me-restart proses yang berhenti. Dalam skenario tugas tunggal, perilaku ini dapat menyebabkan penulisan data duplikat. Untuk mencegah hal ini, gunakan parameter schedule dengan ekspresi cron agar tugas hanya dijalankan sekali. Pipeline akan berhenti setelah eksekusi tunggal ini, sehingga mencegah pengulangan. Untuk informasi selengkapnya, lihat dokumentasi resmi Logstash tentang Penjadwalan.

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

    schedule => "20 13 5 3 *"

    Untuk informasi selengkapnya tentang opsi konfigurasi pipeline, lihat File konfigurasi Logstash.

  6. Klik Next step dan konfigurasikan parameter pipeline.

    Parameter

    Deskripsi

    Pipeline Workers

    Jumlah thread pekerja untuk tahap filter dan output. Tingkatkan nilai ini jika terjadi backlog event atau CPU belum dimanfaatkan secara optimal. Default: jumlah core CPU.

    Pipeline Batch Size

    Jumlah maksimum event yang dikumpulkan oleh worker sebelum mengeksekusi filter dan output. Batch yang lebih besar meningkatkan penggunaan memori dan mungkin memerlukan ukuran heap JVM (LS_HEAP_SIZE) yang lebih besar. Default: 125.

    Pipeline Batch Delay

    Waktu tunggu dalam milidetik sebelum mengirimkan batch yang ukurannya belum penuh ke thread pekerja. Default: 50 ms.

    Queue Type

    Model antrian internal untuk buffering event antar tahap. Nilai yang valid:

    • MEMORY: Default. Menggunakan antrian berbasis memori.

    • PERSISTED: Antrian persisten berbasis disk.

    Queue Max Bytes

    Jumlah maksimum data yang dapat disimpan oleh antrian, dalam MB. Nilainya harus berupa bilangan bulat dari 1 hingga 2<sup>53</sup>-1. Nilai default: 1024.

    Catatan

    Pastikan nilai ini lebih kecil dari kapasitas disk total Anda.

    Queue Checkpoint Writes

    Jumlah maksimum event yang ditulis sebelum checkpoint dipaksakan (hanya untuk antrian persisten). Nilai 0 berarti tanpa batas. Default: 1024.

    Peringatan

    Menyimpan dan menerapkan konfigurasi akan memicu restart instans. Lanjutkan hanya jika hal ini tidak akan memengaruhi bisnis Anda.

  7. Klik Save atau Save and Deploy.

    • Save: Menyimpan konfigurasi pipeline tetapi tidak menerapkannya. Setelah disimpan, Anda akan kembali ke halaman Pipelines. Di bagian Pipelines, Anda dapat mengklik Deploy Now di kolom Actions untuk me-restart instans dan menerapkan konfigurasi.

    • Save and Deploy: Menyimpan dan menerapkan konfigurasi, serta me-restart instans untuk menerapkan perubahan.

Langkah 3: Lihat hasil migrasi

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

    Catatan

    Dokumen ini menggunakan Alibaba Cloud Elasticsearch 8.17 sebagai contoh. Antarmuka pengguna mungkin berbeda tergantung pada versi Anda.

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

    Hasil yang dikembalikan menunjukkan bahwa indeks orders memiliki status kesehatan green, status open, dan docs.count sebesar 1, yang menandakan bahwa data telah berhasil dimigrasikan.

FAQ

  • Q: Bagaimana cara menetapkan konektivitas jaringan jika instans ECS yang menjalankan kluster Elasticsearch yang dikelola sendiri dan instans Alibaba Cloud Logstash berada di akun yang berbeda?

    A: Jika instans ECS dan instans Logstash berada di akun yang berbeda, keduanya pasti berada di VPC yang berbeda. Hubungkan kedua VPC tersebut menggunakan Cloud Enterprise Network (CEN). Untuk informasi selengkapnya, lihat Langkah 3: Lampirkan instans jaringan.

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

    A: Lihat Pemecahan masalah penulisan data Logstash untuk langkah diagnosis dan penyelesaian.

  • Q: Dapatkah saya menggunakan Alibaba Cloud Logstash 8.11 untuk memigrasikan data dari instans Elasticsearch 7.2 yang dikelola sendiri ke instans Alibaba Cloud Elasticsearch 7.10?

    A: Ya. Namun, Anda harus memenuhi persyaratan utama berikut:

    • Jaringan dan autentikasi

      • Elasticsearch yang dikelola sendiri → Alibaba Cloud Logstash

        • Instans Elasticsearch yang dikelola sendiri harus memiliki IP publik dan daftar izin (allowlist) yang dikonfigurasi.

        • Konfigurasikan autentikasi untuk plugin input: user/password (Basic Auth) atau sertifikat SSL.

      • Alibaba Cloud Logstash → Alibaba Cloud Elasticsearch

        • Gunakan koneksi privat langsung dalam VPC yang sama (disarankan). Metode ini menyediakan akses tanpa password yang diotorisasi melalui asosiasi instans.

        • Jika instans berada di VPC yang berbeda, konfigurasikan security group dan allowlist.

      Contoh konfigurasi Logstash

      input {
        elasticsearch {
          hosts => ["http://<public_IP_of_self-managed_ES>:9200"]
          user => "self_es_user"
          password => "self_es_password"
          index => "source_index"
          query => '{ "query": { "match_all": {} } }'
          size => 500
          scroll => "5m"
          docinfo => true  # Preserves _source metadata, which is used to specify _id on write.
        }
      }
      filter {
        # Optional: Add field cleanup, mapping conversion, and more.
      }
      output {
        elasticsearch {
          hosts => ["https://<internal_endpoint_of_Alibaba_Cloud_ES>:9200"]
          # Alibaba Cloud Logstash typically injects authentication automatically after you select the destination Elasticsearch instance.
          index => "target_index"
          document_id => "%{[@metadata][_id]}"  # Ensures consistent document IDs.
          ssl => true
          ssl_certificate_verification => false # You can disable this in test environments. We recommend that you use a CA certificate in production.
        }
      }