Topik ini menjelaskan cara membuat kluster Alibaba Cloud Logstash dan menggunakan pipeline Logstash untuk menyinkronkan data antar kluster Alibaba Cloud Elasticsearch.
Informasi latar belakang
Sebelum memulai, pastikan Anda memahami konsep berikut:
Prasyarat
-
Anda harus memiliki Akun Alibaba Cloud.
Jika belum memiliki akun, daftarlah sekarang.
-
Anda memiliki Virtual Private Cloud (VPC) dan VSwitch.
Untuk informasi lebih lanjut, lihat Buat VPC berbasis IPv4.
Batasan
-
Kluster Elasticsearch sumber, kluster Logstash, dan kluster Elasticsearch tujuan harus berada dalam Virtual Private Cloud (VPC) yang sama. Jika berada di VPC berbeda, Anda harus mengonfigurasi gerbang NAT agar terhubung melalui internet. Untuk informasi lebih lanjut, lihat Konfigurasi gerbang NAT untuk transfer data publik.
-
Versi kluster Elasticsearch sumber, kluster Logstash, dan kluster Elasticsearch tujuan harus kompatibel. Untuk informasi lebih lanjut, lihat Kompatibilitas produk.
Prosedur
-
Buat kluster Elasticsearch sumber dan tujuan, aktifkan auto-indexing pada kluster tujuan, dan siapkan data uji.
-
Langkah 2: Buat kluster Alibaba Cloud Logstash
Setelah Anda membuat kluster Alibaba Cloud Logstash dan statusnya menjadi Active, Anda dapat membuat dan menjalankan pipeline.
-
Langkah 3: Buat dan jalankan pipeline
Buat dan konfigurasikan pipeline Alibaba Cloud Logstash, lalu jalankan untuk menyinkronkan data.
-
Langkah 4: Lihat hasil sinkronisasi
Lihat hasil sinkronisasi data di Konsol Kibana kluster Elasticsearch tujuan.
Langkah 1: Siapkan lingkungan
-
Buat kluster Alibaba Cloud Elasticsearch.
-
Login ke Konsol Alibaba Cloud Elasticsearch.
-
Di panel navigasi kiri, klik Elasticsearch Clusters.
-
Di halaman Elasticsearch Clusters, buat dua kluster Alibaba Cloud Elasticsearch.
Dua kluster tersebut berfungsi sebagai sumber dan tujuan untuk pipeline Logstash. Untuk informasi lebih lanjut, lihat Buat kluster Alibaba Cloud Elasticsearch. Topik ini menggunakan solusi migrasi data Alibaba Cloud Elasticsearch 6.7.0 > Alibaba Cloud Logstash 6.7.0 > Alibaba Cloud Elasticsearch 6.7.0. Skrip yang disediakan hanya berlaku untuk solusi ini. Kompatibilitas tidak dijamin untuk solusi lain. Tabel berikut menjelaskan konfigurasi kluster Alibaba Cloud Elasticsearch yang dibuat.
Catatan-
Jika Anda menggunakan solusi berbeda, lihat Kompatibilitas produk untuk memeriksa masalah kompatibilitas. Jika ada masalah, upgrade versi kluster atau beli kluster baru.
-
Akun default untuk mengakses kluster Alibaba Cloud Elasticsearch adalah elastic, yang digunakan sebagai contoh dalam topik ini. Jika Anda menggunakan pengguna kustom, Anda harus memberikan peran dan izin yang diperlukan kepada pengguna tersebut. Untuk informasi lebih lanjut, lihat Kontrol izin pengguna dengan peran X-Pack Elasticsearch.
-
-
-
Aktifkan auto-indexing pada kluster Alibaba Cloud Elasticsearch tujuan.
Untuk informasi lebih lanjut, lihat Konfigurasi parameter YML.
CatatanUntuk memastikan keamanan data, Alibaba Cloud Elasticsearch secara default mengatur fitur Auto Indexing ke Not allowed. Saat Alibaba Cloud Logstash mengirim data, indeks dibuat dengan mengirimkan data, bukan dengan menggunakan create index API. Oleh karena itu, sebelum menggunakan Alibaba Cloud Logstash untuk mengunggah data, Anda harus mengatur fitur Auto Indexing kluster Anda ke Permitted atau membuat indeks dan pemetaan terlebih dahulu.
-
Siapkan data uji.
Buka Konsol Kibana kluster Alibaba Cloud Elasticsearch sumber. Di halaman Dev Tools, pada tab Console, jalankan perintah berikut untuk membuat indeks dan dokumen uji.
Penting-
Untuk informasi lebih lanjut tentang cara login ke Konsol Kibana, lihat Login ke Konsol Kibana.
-
Skrip berikut menggunakan Elasticsearch 6.7 sebagai contoh dan hanya untuk pengujian. Untuk skrip contoh Elasticsearch 7.0 atau versi lebih baru, lihat Mulai Cepat untuk Elasticsearch.
-
Buat indeks bernama my_index dengan tipe bernama my_type.
PUT /my_index { "settings" : { "index" : { "number_of_shards" : "5", "number_of_replicas" : "1" } }, "mappings" : { "my_type" : { "properties" : { "post_date": { "type": "date" }, "tags": { "type": "keyword" }, "title" : { "type" : "text" } } } } } -
Masukkan dokumen dengan ID 1 ke dalam my_index.
PUT /my_index/my_type/1?pretty { "title": "One", "tags": ["ruby"], "post_date":"2009-11-15T13:00:00" } -
Masukkan dokumen dengan ID 2 ke dalam my_index.
PUT /my_index/my_type/2?pretty { "title": "Two", "tags": ["ruby"], "post_date":"2009-11-15T14:00:00" }
-
Langkah 2: Buat kluster Alibaba Cloud Logstash
-
Buka halaman Logstash Clusters.
-
Di bilah navigasi atas, pilih wilayah yang sama dengan kluster Alibaba Cloud Elasticsearch tujuan.
-
Di panel navigasi kiri, klik Logstash Clusters.
-
Di halaman Logstash Clusters, klik Create.
-
Di halaman pembelian konfigurasikan kluster baru.
Dalam topik ini, metode penagihan diatur ke pay-as-you-go dan versi diatur ke 6.7. Gunakan nilai default untuk parameter lainnya. Untuk informasi lebih lanjut, lihat Buat kluster Alibaba Cloud Logstash.
Catatan-
Pada tahap awal pengembangan dan pengujian fungsional, kami menyarankan Anda membeli kluster Pay-as-you-go untuk pengujian.
-
Anda bisa mendapatkan diskon saat membeli kluster Subscription.
-
-
Baca dan setujui ketentuan layanan, lalu klik Buy Now.
-
Setelah muncul pesan sukses, klik Console.
-
Di bilah navigasi atas, pilih wilayah tempat kluster berada. Di panel navigasi kiri, klik Logstash Clusters. Di halaman Logstash Clusters, lihat kluster yang telah dibuat.
Langkah 3: Buat dan jalankan pipeline
Setelah status kluster Logstash yang dibuat berubah menjadi Normal, Anda dapat membuat dan menjalankan pipeline untuk menyinkronkan data.
-
Di halaman Logstash Clusters, temukan kluster tujuan dan klik Pipelines di kolom Actions.
-
Di bagian Pipelines, klik Create Pipeline.
-
Masukkan Pipeline ID dan tentukan Config Settings.
Topik ini menggunakan konfigurasi pipeline berikut.
input { elasticsearch { hosts => ["http://es-cn-0pp1f1y5g000h****.elasticsearch.aliyuncs.com:9200"] user => "elastic" password => "your_password" index => "*,-.monitoring*,-.security*,-.kibana*" 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" } }Parameter
Deskripsi
hosts
Titik akhir kluster Alibaba Cloud Elasticsearch. Untuk blok input, gunakan format
http://<source_cluster_ID>.elasticsearch.aliyuncs.com:9200. Untuk blok output, gunakan formathttp://<destination_cluster_ID>.elasticsearch.aliyuncs.com:9200.user
Username yang digunakan untuk mengakses kluster Alibaba Cloud Elasticsearch. Nilai default-nya adalah elastic.
password
Password pengguna yang ditentukan. Anda mengonfigurasi password untuk pengguna elastic saat membuat kluster. Jika lupa password, Anda dapat meresetnya. Untuk informasi lebih lanjut, lihat Reset password akses kluster.
index
Nama indeks yang akan disinkronkan. Jika Anda mengatur parameter ini ke
*,-.monitoring*,-.security*,-.kibana*, pipeline akan menyinkronkan semua indeks kecuali indeks sistem yang namanya diawali titik (.). Nilai%{[@metadata][_index]}menunjukkan bahwa pipeline mencocokkan indeks dalam metadata. Dalam kasus ini, nama indeks tujuan sama dengan nama indeks sumber.CatatanIndeks sistem biasanya menyimpan log pemantauan untuk kluster Elasticsearch dan tidak perlu disinkronkan.
docinfo
Jika Anda mengatur parameter ini ke true, pipeline akan mengekstrak metadata dokumen, seperti indeks, tipe, dan ID.
document_type
Tipe indeks tujuan. Nilai
%{[@metadata][_type]}menunjukkan bahwa pipeline mencocokkan tipe dalam metadata. Dalam kasus ini, tipe indeks tujuan sama dengan tipe indeks sumber.document_id
ID dokumen tujuan. Nilai
%{[@metadata][_id]}menunjukkan bahwa pipeline mencocokkan ID dalam metadata. Dalam kasus ini, ID dokumen tujuan sama dengan ID dokumen sumber.file_extend
Opsional. Parameter ini mengaktifkan fitur logging debug. Gunakan parameter path untuk mengonfigurasi jalur output untuk log debug. Kami menyarankan Anda mengonfigurasi parameter ini. Setelah dikonfigurasi, Anda dapat langsung melihat output di konsol. Jika tidak mengonfigurasi parameter ini, Anda harus memverifikasi output di tujuan lalu kembali ke konsol untuk memodifikasi pipeline, yang tidak efisien. Untuk informasi lebih lanjut, lihat Gunakan fitur debugging untuk konfigurasi pipeline Logstash.
PentingParameter file_extend memerlukan plugin logstash-output-file_extend. Instal atau uninstal plugin. Parameter path secara default menggunakan jalur yang ditentukan sistem. Jangan modifikasi. Anda juga dapat mengambil path dengan mengklik Start Configuration Debug.
Struktur file konfigurasi dan tipe data yang didukung dapat berbeda tergantung versi. Struktur File Konfigurasi.
-
Klik Next step untuk mengonfigurasi parameter pipeline.
Atur Pipeline Workers sesuai jumlah core CPU dalam kluster. Biarkan parameter lain pada nilai default-nya. Untuk informasi lebih lanjut tentang parameter tersebut, lihat Kelola pipeline menggunakan file konfigurasi.
-
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, me-restart instans untuk menerapkan perubahan.
-
-
Di pesan sukses yang muncul, klik OK.
Anda kemudian dapat melihat pipeline yang dibuat di daftar Pipelines. Tunggu hingga pembaruan kluster selesai dan Status pipeline menjadi Running. Ini menunjukkan bahwa Alibaba Cloud Logstash telah memulai sinkronisasi.
Langkah 4: Lihat hasil sinkronisasi
Setelah pipeline dikonfigurasi dan berjalan, Anda dapat melihat hasil sinkronisasi di Konsol Kibana kluster Alibaba Cloud Elasticsearch tujuan.
Login ke Konsol Kibana kluster Elasticsearch Anda.
Untuk petunjuknya, lihat Login ke Konsol Kibana.
CatatanContoh di sini menggunakan Elasticsearch V6.7.0. Operasi dapat sedikit berbeda untuk versi lain.
Di menu navigasi kiri, pilih .
-
Di Console, jalankan perintah berikut untuk melihat hasil sinkronisasi data.
GET /my_index/_search { "query": { "match_all": {} } }Hasil yang diharapkan adalah sebagai berikut:
{ "took" : 2, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 4, "max_score" : 1.0, "hits" : [ { "_index" : "my_index", "_type" : "doc", "_id" : "aKG3bHABnsveUjNW2iXy", "_score" : 1.0, "_source" : { "post_date" : "2009-11-15T14:00:00", "@version" : "1", "@timestamp" : "2020-02-22T11:45:52.992Z", "tags" : [ "ruby" ], "title" : "Two" } }, ... ] } }Jika data di kluster sumber dan tujuan identik, sinkronisasi berhasil. Anda juga dapat menjalankan perintah
GET _cat/indices?vdan membandingkan ukuran indeks yang sama di kluster sumber dan tujuan untuk memverifikasi keberhasilan sinkronisasi.
Topik terkait
-
Pelajari cara mengonfigurasi pemantauan kluster:
-
Pelajari cara migrasi data Elasticsearch pihak ketiga ke Alibaba Cloud: