Topik ini menjelaskan cara membuat kluster Alibaba Cloud Logstash dan mengonfigurasi pipeline Logstash untuk menyinkronkan data antar kluster Alibaba Cloud Elasticsearch.
Latar belakang
Sebelum memulai, pastikan Anda memahami konsep berikut:
Prasyarat
-
Anda harus memiliki Akun Alibaba Cloud.
Untuk informasi selengkapnya, lihat Buat Akun Alibaba Cloud.
-
Anda harus memiliki VPC dan vSwitch.
Untuk informasi selengkapnya, lihat Buat VPC dengan Blok CIDR IPv4.
Batasan
-
Kluster Alibaba Cloud Elasticsearch sumber, kluster Alibaba Cloud Logstash, dan kluster Alibaba Cloud Elasticsearch tujuan harus berada dalam VPC yang sama. Jika berada di VPC berbeda, Anda harus mengonfigurasi Gateway NAT untuk mengaktifkan akses internet. Untuk informasi selengkapnya, lihat Konfigurasi Gateway NAT untuk transfer data publik.
-
Versi kluster Alibaba Cloud Elasticsearch sumber, kluster Alibaba Cloud Logstash, dan kluster Alibaba Cloud Elasticsearch tujuan harus kompatibel. Untuk informasi selengkapnya, lihat Kompatibilitas.
Prosedur
-
Buat kluster Alibaba Cloud Elasticsearch sumber dan tujuan, aktifkan auto-indexing untuk kluster tujuan, dan siapkan data uji.
-
Langkah 2: Buat kluster Alibaba Cloud Logstash
Buat kluster Alibaba Cloud Logstash. Anda hanya dapat membuat dan menjalankan pipeline setelah status kluster berubah menjadi Active.
-
Langkah 3: Buat dan jalankan pipeline
Buat dan konfigurasikan pipeline Alibaba Cloud Logstash, lalu jalankan untuk menyinkronkan data.
-
Langkah 4: Verifikasi hasil sinkronisasi data
Periksa hasil sinkronisasi di Konsol Kibana kluster Alibaba Cloud 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.
Kedua kluster ini akan berfungsi sebagai input dan output untuk Logstash. Untuk informasi selengkapnya, lihat Buat kluster Alibaba Cloud Elasticsearch. Tutorial ini menggunakan jalur migrasi data berikut: Alibaba Cloud Elasticsearch 6.7.0 (Commercial Edition) > Alibaba Cloud Logstash 6.7.0 > Alibaba Cloud Elasticsearch 6.7.0 (Commercial Edition). Skrip yang disediakan hanya kompatibel dengan jalur ini. Tutorial ini menggunakan konfigurasi berikut untuk kluster Alibaba Cloud Elasticsearch.
Catatan-
Jika Anda menggunakan jalur migrasi berbeda, lihat Kompatibilitas untuk memeriksa masalah kompatibilitas. Jika terdapat masalah, Anda harus melakukan upgrade kluster atau membeli kluster baru.
-
Username default untuk mengakses kluster Alibaba Cloud Elasticsearch adalah
elastic, yang digunakan dalam tutorial ini. Jika Anda perlu menggunakan pengguna kustom, Anda harus memberikan peran dan izin yang diperlukan. Untuk informasi selengkapnya, lihat Kontrol izin pengguna dengan menggunakan peran X-Pack Elasticsearch.
-
-
-
Aktifkan auto-indexing untuk kluster Alibaba Cloud Elasticsearch tujuan.
Untuk informasi selengkapnya, lihat Konfigurasi parameter YML.
CatatanUntuk memastikan keamanan data, Alibaba Cloud Elasticsearch mengatur fitur Auto Indexing ke Not allowed secara default. Saat Alibaba Cloud Logstash mengirim data, indeks dibuat dengan mengirimkan data tersebut, 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, buka tab Console dan jalankan perintah berikut untuk membuat indeks dan dokumen yang ingin Anda sinkronkan.
Penting-
Untuk informasi selengkapnya tentang cara login ke Konsol Kibana, lihat Login ke Konsol Kibana.
-
Skrip berikut merupakan contoh untuk Elasticsearch 6.7 dan hanya untuk tujuan pengujian. Untuk skrip contoh Elasticsearch 7.0 atau versi lebih baru, lihat Memulai dengan Elasticsearch.
-
Buat indeks my_index dengan tipe 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 indeks 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 indeks my_index.
PUT /my_index/my_type/2?pretty { "title": "Two", "tags": ["ruby"], "post_date":"2009-11-15T14:00:00" }
-
Langkah 2: Buat kluster Logstash
-
Buka halaman Logstash Clusters.
-
Di bilah navigasi atas, pilih wilayah yang sama dengan kluster Alibaba Cloud Elasticsearch tujuan Anda.
-
Di panel navigasi kiri, klik Logstash Clusters.
-
Di halaman Logstash Clusters, klik Create.
-
Di halaman pembelian konfigurasikan pengaturan peluncuran kluster.
Tutorial ini memilih Pay-As-You-Go sebagai metode penagihan dan 6.7 sebagai versi. Biarkan semua pengaturan lainnya pada nilai default. Untuk informasi selengkapnya tentang konfigurasi, lihat Buat kluster Alibaba Cloud Logstash.
Catatan-
Untuk pengembangan dan pengujian fungsional, kami menyarankan Anda membeli kluster Pay-as-you-go.
-
Anda bisa mendapatkan diskon saat membeli kluster Subscription.
-
-
Baca dan centang syarat layanan, lalu klik DataWorks Exclusive Resources (Subscription).
-
Setelah muncul pesan sukses, klik DataWorks Exclusive Resources (Subscription).
-
Di bilah navigasi atas, pilih wilayah tempat kluster berada. Di panel navigasi kiri, klik Logstash Clusters. Di halaman Logstash Clusters, lihat kluster yang baru dibuat.
Langkah 3: Buat dan jalankan pipeline
Setelah status kluster Logstash berubah menjadi Normal, Anda dapat membuat dan menjalankan pipeline untuk menyinkronkan data.
-
Di halaman Logstash Clusters, klik Pipelines di kolom Actions kluster.
-
Di bagian Pipelines, klik Create Pipeline.
-
Masukkan Pipeline ID dan definisikan Config Settings.
Tutorial ini menggunakan konfigurasi 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
hostsAlamat akses layanan Alibaba Cloud Elasticsearch. Untuk input, alamatnya adalah
http://<ID kluster sumber>.elasticsearch.aliyuncs.com:9200. Untuk output, alamatnya adalahhttp://<ID kluster tujuan>.elasticsearch.aliyuncs.com:9200.userUsername untuk mengakses layanan Alibaba Cloud Elasticsearch. Nilai default-nya adalah
elastic.passwordPassword untuk pengguna tersebut. Password untuk pengguna
elasticditetapkan saat pembuatan kluster. Jika lupa, Anda dapat meresetnya. Untuk informasi selengkapnya, lihat Reset password akses kluster.indexIndeks yang akan disinkronkan. Mengatur nilai ini ke
*,-.monitoring*,-.security*,-.kibana*akan menyinkronkan semua indeks kecuali indeks sistem yang diawali titik (.).%{[@metadata][_index]}mencocokkan indeks dari metadata, artinya indeks tujuan akan memiliki nama yang sama dengan indeks sumber.CatatanIndeks sistem, yang biasanya menyimpan log pemantauan untuk kluster Elasticsearch, tidak perlu disinkronkan.
docinfoSaat diatur ke true, parameter ini mengekstrak metadata dari dokumen Elasticsearch, seperti indeks, tipe, dan ID.
document_typeMenentukan tipe indeks tujuan. Atur parameter ini ke
%{[@metadata][_type]}untuk mencocokkantypedari metadata. Hal ini memastikan bahwa indeks tujuan memiliki tipe yang sama dengan indeks sumber.document_idTentukan ID dokumen yang disinkronkan. Atur nilai ini ke
%{[@metadata][_id]}untuk mencocokkan ID dari metadata. Artinya, ID dokumen yang disinkronkan sama dengan ID dokumen sumber.file_extendOpsional. Mengaktifkan fitur logging debug dan menggunakan parameter path untuk mengonfigurasi jalur output log debug. Kami menyarankan Anda mengonfigurasi parameter ini karena memungkinkan Anda melihat output langsung di konsol. Jika parameter ini tidak dikonfigurasi, Anda harus memeriksa output di tujuan target lalu kembali ke konsol untuk melakukan modifikasi, yang memakan waktu. Untuk informasi selengkapnya, lihat Gunakan Pipeline Logstash untuk Mengonfigurasi Fitur Debugging.
PentingParameter file_extend memerlukan plugin logstash-output-file_extend. Instal atau uninstal plugin. Parameter path secara default menggunakan jalur yang ditentukan sistem. Jangan ubah. Anda juga dapat mengambil path dengan mengklik Start Configuration Debug.
Struktur file konfigurasi dan tipe data yang didukung bervariasi tergantung versi. Untuk detailnya, lihat Structure of a Config File.
-
Klik Next step untuk mengonfigurasi parameter pipeline.
Atur Pipeline Workers sesuai jumlah core CPU di kluster Anda. Biarkan parameter lain pada nilai default. Untuk deskripsi parameter lengkap, lihat Kelola pipeline dengan 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 merestart instans dan menerapkan konfigurasi.
-
Save and Deploy: Menyimpan dan menerapkan konfigurasi, merestart instans untuk menerapkan perubahan.
-
-
Di kotak dialog sukses, klik OK.
Anda kemudian dapat melihat pipeline yang telah dibuat di daftar Pipelines. Setelah pembaruan kluster selesai dan Status pipeline menunjukkan Running, Alibaba Cloud Logstash mulai menyinkronkan data.
Langkah 4: Verifikasi hasil sinkronisasi data
Setelah pipeline dikonfigurasi dan berjalan, Anda dapat memverifikasi hasilnya 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 mungkin sedikit berbeda untuk versi lain.
Di bilah navigasi kiri, pilih .
-
Di Console, jalankan perintah berikut untuk melihat hasil sinkronisasi data.
GET /my_index/_search { "query": { "match_all": {} } }Output 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 sumber dan tujuan konsisten, sinkronisasi data berhasil. Anda juga dapat menjalankan perintah
GET _cat/indices?vuntuk memeriksa apakah ukuran indeks yang sama di sumber dan tujuan konsisten, sehingga dapat menentukan apakah sinkronisasi data berhasil.
Dokumen terkait
-
Pelajari cara mengonfigurasi pemantauan kluster:
-
Pelajari cara migrasi data Elasticsearch pihak ketiga ke Alibaba Cloud: