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
Langkah 1: Siapkan lingkungan
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.
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.
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.
CatatanLogstash 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
Buka halaman Kluster Logstash di Konsol Alibaba Cloud Elasticsearch.
Navigasikan ke kluster yang diinginkan.
Di bilah navigasi atas, pilih wilayah tempat kluster berada.
Di halaman Logstash Clusters, temukan kluster tersebut lalu klik ID-nya.
Di panel navigasi sebelah kiri halaman yang muncul, klik Pipelines.
Di halaman Pipelines, klik Create Pipeline.
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 adalahhttp://<Alibaba Cloud Elasticsearch instance ID>.elasticsearch.aliyuncs.com:9200.PentingSaat 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.
Pentinguser 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.
PentingSebelum 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.
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.CatatanNilai 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.
PeringatanSetelah 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.
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
Di instans Alibaba Cloud Elasticsearch Anda, login ke konsol Kibana. Di panel navigasi sebelah kiri, klik ikon
lalu pilih .CatatanTopik ini menggunakan Alibaba Cloud Elasticsearch 8.17 sebagai contoh. Operasi dapat berbeda untuk versi lain. Antarmuka pengguna (UI) aktual di konsol yang berlaku.
Di Console, jalankan perintah
GET /_cat/indices?vuntuk melihat indeks yang berhasil dimigrasikan.
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?