Secara default, jaringan antar instans Alibaba Cloud Elasticsearch (ES) diisolasi demi keamanan. Untuk menggunakan fitur pencarian lintas klaster, Anda harus terlebih dahulu menetapkan konektivitas jaringan antara kedua instans tersebut. Topik ini menjelaskan cara mengonfigurasi konektivitas jaringan antar instans agar pencarian lintas klaster dapat diaktifkan.
Cakupan
Untuk mengaktifkan pencarian lintas klaster antara dua klaster ES, Anda harus terlebih dahulu menetapkan konektivitas jaringan. Klaster-klaster tersebut harus memenuhi kondisi berikut:
Kedua klaster harus menggunakan arsitektur kontrol dasar v2 dan berada dalam Virtual Private Cloud (VPC) yang sama.
Klaster ES mendukung tiga mode penyebaran arsitektur kontrol: kontrol dasar (arsitektur v1), kontrol dasar (arsitektur v2), dan kontrol cloud-native (arsitektur v3). Anda dapat melihat arsitektur klaster pada halaman Basic Information.

Klaster harus menggunakan versi 6.7.0 atau lebih baru.
Pencarian lintas klaster tidak didukung antara klaster yang memiliki OpenStore dan IndexingService aktif sekaligus dengan klaster jenis lainnya.
Jumlah klaster yang saling terhubung dibatasi berdasarkan rumus berikut:
jumlah( jumlah peran dalam klaster * jumlah zona untuk klaster ) ≤ 20.Contoh: Klaster A perlu terhubung ke Klaster B dan Klaster C secara bersamaan. Setiap klaster memiliki tiga peran (Master, coordinating, dan data) serta ditempatkan di tiga zona.
Perhitungan:
(3 peran × 3 zona) × 3 klaster = 27. Nilai ini melebihi 20, sehingga batas dilanggar. Klaster A tidak dapat terhubung ke Klaster B dan Klaster C secara bersamaan.
Prosedur
Langkah 1: Konfigurasikan konektivitas jaringan antar instans
Login ke Alibaba Cloud Elasticsearch console.
Di panel navigasi sebelah kiri, klik Elasticsearch Clusters.
Arahkan ke klaster yang diinginkan.
Di bilah navigasi atas, pilih kelompok sumber daya tempat klaster berada dan wilayah tempat klaster tersebut berlokasi.
Pada halaman Elasticsearch Clusters, temukan klaster tersebut lalu klik ID-nya.
Di panel navigasi sebelah kiri, pilih .
Di bagian Network Settings, di samping Cluster Interconnection, klik Modify.
Pada halaman Modify, klik Add Cluster.
Pada kotak dialog Add Cluster, pilih instans remote yang ingin Anda hubungkan.
PentingPengguna Resource Access Management (RAM) harus memiliki izin `ListInstance` untuk mengambil semua instans dalam Akun Alibaba Cloud yang sesuai. Untuk informasi selengkapnya, lihat Grant permissions to an Elasticsearch instance.
Setelah Anda mengonfigurasi konektivitas jaringan antar instans, instans saat ini juga akan muncul di halaman Cluster Interconnection pada instans remote. Koneksi jaringan bersifat bi-directional. Misalnya, mengonfigurasi koneksi dari instans A ke instans B juga akan menetapkan koneksi dari instans B ke instans A.
Klik OK.
Setelah menambahkan instans, Anda dapat melihat daftar instans yang terhubung di halaman Modify Configuration.
CatatanJika Anda tidak lagi memerlukan koneksi tersebut, Anda dapat menghapus instans yang saling terhubung dengan mengklik Remove.
Langkah 2: Konfigurasikan pencarian lintas klaster
Setelah Anda mengonfigurasi konektivitas jaringan instans, Anda juga harus mengonfigurasi pencarian lintas klaster. Hal ini memungkinkan Anda mencari data di instans remote dari instans saat ini.
Siapkan data uji di instans Elasticsearch remote.
CatatanLangkah ini membantu Anda memverifikasi fitur pencarian lintas klaster. Jika instans remote Anda sudah berisi data untuk pengujian, Anda dapat melewati langkah ini.
Login ke Kibana console instans Elasticsearch remote dan buka halaman utama Kibana.
Untuk informasi selengkapnya tentang cara login ke Kibana console, lihat Log on to the Kibana console.
CatatanDalam contoh ini, digunakan klaster Elasticsearch V6.7.0. Operasi pada klaster versi lain mungkin berbeda. Ikuti operasi aktual di Konsol.
Di panel navigasi kiri, klik Dev Tools.
Di Console, jalankan perintah berikut untuk membuat indeks dan memasukkan dokumen ke instans remote.
Perintah contoh berikut digunakan:
Buat indeks
PUT /twitter { "settings" : { "index" : { "number_of_shards" : 3, "number_of_replicas" : 2 } } }Buat dokumen dan masukkan data
POST twitter/_doc/ { "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch" }
Di instans Elasticsearch saat ini, konfigurasikan pencarian lintas klaster dan verifikasi konfigurasinya.
Login ke Kibana console instans Elasticsearch seperti yang dijelaskan di Langkah 1 dan jalankan perintah berikut untuk mengonfigurasi pencarian lintas klaster.
Contoh berikut menunjukkan konfigurasi untuk Elasticsearch 6.7. Konfigurasi untuk versi lain serupa. Untuk informasi selengkapnya, lihat Cross-cluster search for Elasticsearch 7.x, Cross-cluster search for Elasticsearch 6.3, dan Cross-cluster search for Elasticsearch 5.5.
Contoh berikut menunjukkan cara mengonfigurasi pencarian lintas klaster menggunakan alamat IP node:
PUT _cluster/settings { "persistent": { "cluster": { "remote": { "cluster_one": { "seeds": [ "10.8.xx.xx:9300", "10.8.xx.xx:9300", "10.8.xx.xx:9300" ] } } } } }Anda dapat melihat alamat IP node di bagian Node Visualization pada halaman Basic Information instans tersebut. Untuk informasi selengkapnya, lihat View the cluster status and node information.
PentingMengonfigurasi pencarian lintas klaster menggunakan Nama domain tidak didukung.
Jika Anda mengonfigurasi alamat IP node instans Elasticsearch remote untuk pencarian lintas klaster di instans Elasticsearch saat ini, Anda hanya dapat mengkueri data indeks instans remote tersebut dari instans saat ini. Anda tidak dapat menjalankan perintah serupa di instans remote untuk akses balik. Untuk mengaktifkan akses balik, Anda harus mengonfigurasi alamat IP node instans saat ini di instans remote.
Jalankan perintah berikut untuk memverifikasi konfigurasi pencarian lintas klaster.
POST /cluster_one:twitter/_doc/_search { "query": { "match_all": {} } }Jika verifikasi berhasil, hasil berikut akan dikembalikan.
{ "took" : 78, "timed_out" : false, "_shards" : { "total" : 3, "successful" : 3, "skipped" : 0, "failed" : 0 }, "_clusters" : { "total" : 1, "successful" : 1, "skipped" : 0 }, "hits" : { "total" : 1, "max_score" : 1.0, "hits" : [ { "_index" : "cluster_one:twitter", "_type" : "_doc", "_id" : "qudxxxxxxxxxx_7ie6J", "_score" : 1.0, "_source" : { "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch" } } ] } }