Logstash adalah mesin pengumpulan data open source yang dapat menyaring dan mentransmisikan data secara real time. Jika Anda tidak memiliki persyaratan tinggi terhadap kinerja real-time dalam migrasi data, Anda dapat menggunakan Logstash untuk migrasi tersebut. Topik ini menjelaskan cara menggunakan Elastic Compute Service (ECS) Alibaba Cloud untuk men-deploy kluster Logstash yang dikelola sendiri serta cara memanfaatkan kluster tersebut guna memigrasikan data dari file log ke kluster Alibaba Cloud Elasticsearch.
Prasyarat
Kluster Alibaba Cloud Elasticsearch telah dibuat, dan fitur Auto Indexing diaktifkan untuk kluster tersebut.
CatatanDalam contoh ini, digunakan kluster Elasticsearch V8.5.1 Edisi Standar.
Untuk informasi lebih lanjut, lihat Buat kluster Alibaba Cloud Elasticsearch dan Akses dan konfigurasi kluster Elasticsearch.
Instance ECS telah dibuat. Instance ECS tersebut dapat terhubung ke kluster Elasticsearch dan kluster Logstash yang dikelola sendiri. Untuk informasi lebih lanjut, lihat Buat instance menggunakan wizard.
CatatanDisarankan agar Anda membuat instance ECS yang berada di wilayah, zona, dan virtual private cloud (VPC) yang sama dengan kluster Elasticsearch.
JDK telah diinstal pada instance ECS. Untuk informasi lebih lanjut, lihat Instal JDK.
CatatanJDK harus versi Temurin 17 atau lebih baru. Untuk informasi lebih lanjut mengenai kompatibilitas antara versi Java JDK dan versi Logstash, lihat Kompatibilitas antara Logstash dan JVM.
Data yang akan dimigrasikan telah disiapkan. Dalam contoh ini, digunakan data log ECS.
Prosedur
Langkah 1: (Opsional) Buat role dan user
Instance Logstash yang dikelola sendiri memerlukan akun Elasticsearch untuk mengakses kluster Elasticsearch Anda dan melihat data pemantauan Logstash di Konsol Kibana. Anda dapat menggunakan user bawaan elastic atau user kustom.
Dalam skenario produksi, disarankan agar Anda menggunakan user kustom. Sebelum menggunakan user kustom, Anda harus menetapkan role dengan izin yang diperlukan kepada user tersebut. Penggunaan user elastic dalam skenario produksi dapat mengompromikan keamanan sistem.
Buat role
Bagian ini menjelaskan cara membuat role dengan hak akses baca dan tulis untuk indeks yang sesuai dengan pola logstash-*.
Login ke Konsol Kibana kluster Elasticsearch.
Untuk informasi lebih lanjut, lihat Login ke Konsol Kibana.
Klik ikon
di pojok kiri atas halaman yang muncul, lalu pilih Management > Stack Management.Di panel navigasi kiri, pilih Security > Role.
Pada halaman Role, klik Create role dan konfigurasikan parameter role tersebut.
Tabel berikut menjelaskan beberapa parameter yang ditampilkan.
Parameter
Deskripsi
Role Name
Nama role tersebut. Masukkan nama kustom.
Index
Indeks yang ingin Anda kelola. Pilih logstash-*.
Permission
Izin yang ingin Anda berikan kepada role tersebut. Pilih read, write, create, delete, dan create_index.
Klik Create role.
Buat user
Dalam contoh ini, dibuat user untuk pemantauan Logstash. Anda dapat menggunakan salah satu metode berikut untuk membuat user.
Secara default, Alibaba Cloud Elasticsearch menonaktifkan user bawaan logstash_system. Anda harus membuat user baru dan menetapkan role logstash_system kepadanya. Jangan beri nama user baru tersebut logstash_system.
Metode 1: Buat user di Konsol Kibana
Login ke Konsol Kibana kluster Elasticsearch.
Untuk informasi lebih lanjut, lihat Login ke Konsol Kibana.
Klik ikon
di pojok kiri atas halaman yang muncul, lalu pilih Management > Stack Management.Di panel navigasi sisi kiri, pilih Security > Users.
Pada halaman Users, klik Create user di pojok kanan atas.
Pada halaman Create user, konfigurasikan parameter-parameter tersebut.
Tabel berikut menjelaskan beberapa parameter yang ditampilkan.
Parameter
Deskripsi
Username
Nama user tersebut. Masukkan nama kustom. Contoh: logstash_system_monitor.
Roles
Role yang ditetapkan kepada user tersebut. Pilih logstash_system.
Klik Create user.
Metode 2: Buat user menggunakan antarmuka baris perintah (CLI)
Hubungkan ke instance ECS dan jalankan perintah berikut untuk membuat user:
curl -u elastic:<es-password> -XPOST http://<instanceId>.elasticsearch.aliyuncs.com:9200/_xpack/security/user/logstash_system_monitor -d '{"password" : "<logstash-monitor-password>","roles" : ["logstash_system"],"full_name" : "<your full name>"}'Parameter
Deskripsi
es-password
Password kluster Elasticsearch. Password ini juga digunakan untuk login ke Konsol Kibana kluster tersebut.
<instanceId>
ID kluster Elasticsearch. Anda dapat mengecek ID kluster tersebut di halaman Informasi Dasar kluster Elasticsearch.
<logstash-monitor-password>
Password untuk user
logstash_system_monitor.<your full name>
Nama lengkap user tersebut.
Setelah user dibuat, hasil seperti pada gambar berikut akan dikembalikan.

Langkah 2: Instal Logstash pada instance ECS
Hubungkan ke instance ECS.
Untuk informasi lebih lanjut, lihat Metode koneksi.
Unduh paket instalasi Logstash.
Kunjungi situs web Elastic dan unduh paket instalasi Logstash yang memiliki versi yang sama dengan kluster Elasticsearch.
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.5.1-linux-x86_64.tar.gzCatatanPerintah untuk Logstash V7.4:
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.4.0.tar.gzEkstrak paket instalasi Logstash.
Dalam contoh ini, digunakan Logstash V8.5.1.
tar -xzvf logstash-8.5.1-linux-x86_64.tar.gz
Langkah 3: Konfigurasi dan jalankan pipeline Logstash
Masuk ke direktori Logstash.
cd logstash-8.5.1Buat file .conf.
touch test.confKonfigurasi file test.conf.
Kode contoh berikut memberikan contoh konfigurasi:
input { file { path => "/your/file/path/xxx" } } filter { } output { elasticsearch { hosts => "<http://<instanceId>.elasticsearch.aliyuncs.com:9200>" index => "<index-name>" user => "<user-name>" password => "<logstash-password>" } }Parameter
Deskripsi
pathJalur file log. Dalam contoh ini, digunakan /var/log/messages.
hostsTitik akhir kluster Alibaba Cloud Elasticsearch Anda. Ganti
instanceIddengan ID instance Anda. Contoh:http://es-cn-45xxxxxxxxxxxxju.elasticsearch.aliyuncs.com:9200.indexNama indeks tempat data dalam file log ditulis. Anda dapat menentukan nama kustom.
userUsername yang digunakan untuk mengakses kluster Elasticsearch. Dalam contoh ini, digunakan elastic.
PentingUntuk memastikan keamanan sistem, kami menyarankan agar Anda menggunakan user kustom alih-alih user elastic dalam bisnis aktual.
Username harus diapit tanda kutip ganda ("). Hal ini menghindari potensi error yang disebabkan oleh karakter khusus dalam username saat Anda menjalankan pipeline Logstash.
passwordPassword yang digunakan untuk mengakses kluster Elasticsearch.
PentingPassword harus diapit tanda kutip ganda ("). Hal ini menghindari potensi error yang disebabkan oleh karakter khusus dalam password saat Anda menjalankan pipeline Logstash.
Logstash menyediakan berbagai plugin input, filter, dan output. Anda hanya perlu mengonfigurasi plugin-plugin ini secara sederhana untuk transfer data. Untuk informasi lebih lanjut, lihat Struktur File Konfigurasi.
Jalankan pipeline Logstash.
bin/logstash -f test.confJika perintah berhasil dijalankan, Logstash secara otomatis mendeteksi perubahan pada file log dan menyinkronkan perubahan tersebut ke kluster Elasticsearch. Logstash secara otomatis menyinkronkan data ke kluster Elasticsearch setiap kali data ditambahkan ke file log yang dipantau.
Langkah 4: Lihat data yang dimigrasikan
Login ke Konsol Kibana kluster Elasticsearch.
Untuk informasi lebih lanjut, lihat Login ke Konsol Kibana.
Klik ikon
di pojok kiri atas halaman yang muncul, lalu pilih Management > Dev Tools.Pada tab Console halaman yang muncul, jalankan perintah berikut:
GET /logstash-*/_search
Langkah 5: (Opsional) Pantau node Logstash
Masuk ke folder config di direktori Logstash.
cd logstash-8.5.1/configKonfigurasi file logstash.yml.
Buka file logstash.yml.
vim logstash.ymlDalam file logstash.yml, hapus anotasi parameter yang tercantum dalam tabel berikut. Lalu, konfigurasikan parameter tersebut.
xpack.monitoring.enabled:true xpack.monitoring.elasticsearch.username:"<user-name>" xpack.monitoring.elasticsearch.password:"<logstash-password>" xpack.monitoring.elasticsearch.hosts:["http://es-cn-nwy3fwjp8xxxxxxx.elasticsearch.aliyuncs.com:9200"]Parameter
Deskripsi
xpack.monitoring.enabledAtur parameter ini ke
true. Nilai default-nya adalahfalse.xpack.monitoring.elasticsearch.usernameNama user yang Anda buat untuk pemantauan Logstash. Dalam contoh ini, digunakan user elastic.
PentingUntuk memastikan keamanan sistem, kami menyarankan agar Anda menggunakan user kustom alih-alih user elastic dalam bisnis aktual.
xpack.monitoring.elasticsearch.passwordPassword user yang Anda buat untuk pemantauan Logstash.
xpack.monitoring.elasticsearch.hostsTitik akhir kluster Alibaba Cloud Elasticsearch Anda. Contoh:
http://es-cn-45xxxxxxxxxxxxju.elasticsearch.aliyuncs.com:9200.
Masuk ke direktori Logstash dan launch layanan Logstash.
cd ../ bin/logstash -f test.confLogin ke Konsol Kibana kluster Elasticsearch.
Untuk informasi lebih lanjut, lihat Login ke Konsol Kibana.
Klik ikon
di pojok kiri atas halaman yang muncul, lalu pilih Management > Stack Monitoring.(Opsional) Di kotak dialog Create rules, klik OK.
Pada halaman Cluster overview, lihat data pemantauan Logstash.
Referensi
Plugin Alibaba Cloud Elasticsearch meningkatkan kemampuan kluster, termasuk stabilitas, kinerja query dan write, query tokenized, serta pengambilan data. Untuk informasi lebih lanjut, lihat Ikhtisar plugin.