Logstash adalah mesin pengumpulan data sumber terbuka yang dapat menyaring dan mentransmisikan data secara real-time. Jika Anda tidak memiliki persyaratan tinggi untuk kinerja real-time dalam migrasi data, Anda dapat menggunakan Logstash untuk memigrasikan data. Topik ini menjelaskan cara menggunakan Alibaba Cloud Elastic Compute Service (ECS) untuk menerapkan klaster Logstash yang dikelola sendiri dan cara menggunakan klaster tersebut untuk memigrasikan data dari file log ke klaster Elasticsearch Alibaba Cloud.
Prasyarat
Klaster Elasticsearch Alibaba Cloud telah dibuat, dan fitur Auto Indexing diaktifkan.
CatatanDalam contoh ini, klaster Elasticsearch V8.5.1 Edisi Standar digunakan.
Untuk informasi lebih lanjut, lihat Buat klaster Elasticsearch Alibaba Cloud dan Akses dan konfigurasikan klaster Elasticsearch.
Instance ECS telah dibuat. Instance ECS harus dapat terhubung ke klaster Elasticsearch dan klaster Logstash yang dikelola sendiri. Untuk informasi lebih lanjut, lihat Buat instance menggunakan wizard.
CatatanDisarankan untuk membuat instance ECS di wilayah, zona, dan virtual private cloud (VPC) yang sama dengan klaster Elasticsearch.
JDK telah diinstal pada instance ECS. Untuk informasi lebih lanjut, lihat Instal JDK.
CatatanJDK harus versi Temurin 17 atau yang lebih baru. Untuk informasi lebih lanjut tentang kompatibilitas antara versi Java JDK dan versi Logstash, lihat Kompatibilitas antara Logstash dan JVM.
Data yang akan dimigrasikan telah disiapkan. Dalam contoh ini, data log ECS digunakan.
Prosedur
Langkah 1: (Opsional) Buat peran dan pengguna
Anda memerlukan pengguna Elasticsearch saat menghubungkan klaster Logstash yang dikelola sendiri ke klaster Elasticsearch Alibaba Cloud atau melihat data pemantauan Logstash di konsol Kibana. Anda dapat menggunakan pengguna elastic atau pengguna kustom.
Dalam skenario bisnis nyata, disarankan untuk menggunakan pengguna kustom. Sebelum menggunakan pengguna kustom, tetapkan peran dengan izin yang diperlukan kepada pengguna tersebut. Penggunaan pengguna elastic dalam bisnis nyata dapat menimbulkan risiko keamanan sistem.
Buat peran
Dalam contoh ini, peran dengan izin baca dan tulis pada indeks logstash-* dibuat.
Masuk ke konsol Kibana klaster Elasticsearch.
Untuk informasi lebih lanjut, lihat Masuk ke konsol Kibana.
Klik ikon
di pojok kiri atas halaman yang muncul, lalu pilih Management > Stack Management.Di panel navigasi sebelah kiri, pilih Security > Roles.
Di halaman Roles, klik Create role di pojok kanan atas. Di halaman Create role, konfigurasikan parameter.
Tabel berikut menjelaskan beberapa parameter yang ditampilkan.
Parameter
Deskripsi
Role name
Nama peran. Masukkan nama kustom.
Indices
Indeks yang ingin Anda kelola. Pilih logstash-*.
Privileges
Izin yang ingin Anda berikan kepada peran. Pilih read, write, create, delete, dan create_index.
Klik Create role.
Buat pengguna
Dalam contoh ini, pengguna untuk memantau Logstash dibuat. Anda dapat menggunakan salah satu metode berikut untuk membuat pengguna.
Secara default, Elasticsearch menonaktifkan pengguna logstash_system, dan Anda tidak diizinkan membuat pengguna bernama logstash_system. Anda harus membuat pengguna yang ditetapkan peran logstash_system.
Metode 1: Buat pengguna di konsol Kibana
Masuk ke konsol Kibana klaster Elasticsearch.
Untuk informasi lebih lanjut, lihat Masuk ke konsol Kibana.
Klik ikon
di pojok kiri atas halaman yang muncul, lalu pilih Management > Stack Management.Di panel navigasi sebelah kiri, pilih Security > Users.
Di halaman Users, klik Create user di pojok kanan atas.
Di halaman Create user, konfigurasikan parameter berikut.
Tabel berikut menjelaskan beberapa parameter yang ditampilkan.
Parameter
Deskripsi
Username
Nama pengguna. Masukkan nama kustom. Contoh: logstash_system_monitor.
Roles
Peran yang ditetapkan kepada pengguna. Pilih logstash_system.
Klik Create user.
Metode 2: Buat pengguna menggunakan antarmuka baris perintah (CLI)
Sambungkan ke instance ECS dan jalankan perintah berikut untuk membuat pengguna:
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
Kata sandi klaster Elasticsearch. Kata sandi ini juga digunakan untuk masuk ke konsol Kibana klaster.
<instanceId>
ID klaster Elasticsearch. Anda dapat memeriksa ID klaster di halaman Informasi Dasar klaster Elasticsearch.
<logstash-monitor-password>
Kata sandi pengguna
logstash_system_monitor.<your full name>
Nama lengkap pengguna.
Setelah pengguna dibuat, hasil seperti pada gambar berikut dikembalikan.

Langkah 2: Instal Logstash pada instance ECS
Sambungkan ke instance ECS.
Untuk informasi lebih lanjut, lihat Metode untuk menghubungkan ke instance ECS.
Unduh paket instalasi Logstash.
Kunjungi Situs web Elastic dan unduh paket instalasi Logstash yang sesuai dengan versi klaster 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, Logstash V8.5.1 digunakan.
tar -xzvf logstash-8.5.1-linux-x86_64.tar.gz
Langkah 3: Konfigurasikan dan jalankan pipeline Logstash
Pergi ke direktori Logstash.
cd logstash-8.5.1Buat file .conf.
touch test.confKonfigurasikan file test.conf.
Contoh kode 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
pathPath file log. Dalam contoh ini, /var/log/messages digunakan.
hostsTitik akhir klaster Elasticsearch. Ganti
instanceIddengan ID klaster Elasticsearch. Anda dapat memeriksa ID klaster di halaman Informasi Dasar klaster. Contoh:http://es-cn-45xxxxxxxxxxxxju.elasticsearch.aliyuncs.com:9200.indexNama indeks tempat data dalam file log ditulis. Anda dapat menentukan nama kustom.
userNama pengguna yang digunakan untuk mengakses klaster Elasticsearch. Dalam contoh ini, elastic digunakan.
PentingUntuk memastikan keamanan sistem, kami merekomendasikan agar Anda menggunakan pengguna kustom alih-alih pengguna elastic dalam bisnis nyata.
Nama pengguna harus diapit oleh tanda kutip ganda ("). Ini menghindari kesalahan potensial yang disebabkan oleh karakter khusus dalam nama pengguna saat Anda menjalankan pipeline Logstash.
passwordKata sandi yang digunakan untuk mengakses klaster Elasticsearch.
PentingKata sandi harus diapit oleh tanda kutip ganda ("). Ini menghindari kesalahan potensial yang disebabkan oleh karakter khusus dalam kata sandi saat Anda menjalankan pipeline Logstash.
Logstash menyediakan berbagai plug-in input, filter, dan output. Anda hanya perlu mengonfigurasi plug-in 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 klaster Elasticsearch. Logstash secara otomatis menyinkronkan data ke klaster Elasticsearch setiap kali data ditambahkan ke file log yang dipantau.
Langkah 4: Lihat data yang dimigrasikan
Masuk ke konsol Kibana klaster Elasticsearch.
Untuk informasi lebih lanjut, lihat Masuk ke konsol Kibana.
Klik ikon
di pojok kiri atas halaman yang muncul, lalu pilih Management > Dev Tools.Di tab Console halaman yang muncul, jalankan perintah berikut:
GET /logstash-*/_search
Langkah 5: (Opsional) Pantau node Logstash
Navigasikan ke folder config di direktori Logstash.
cd logstash-8.5.1/configKonfigurasikan file logstash.yml.
Buka file logstash.yml.
vim logstash.ymlDi file logstash.yml, hapus anotasi parameter yang terdaftar dalam tabel berikut. Kemudian, konfigurasikan parameter.
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.enableAtur parameter ini ke
true. Nilai default:false.xpack.monitoring.elasticsearch.usernameNama pengguna yang Anda buat untuk pemantauan Logstash. Dalam contoh ini, pengguna elastic digunakan.
PentingUntuk memastikan keamanan sistem, kami merekomendasikan agar Anda menggunakan pengguna kustom alih-alih pengguna elastic dalam bisnis nyata.
xpack.monitoring.elasticsearch.passwordKata sandi pengguna yang Anda buat untuk pemantauan Logstash.
xpack.monitoring.elasticsearch.hostsTitik akhir klaster Elasticsearch. Contoh:
http://es-cn-45xxxxxxxxxxxxju.elasticsearch.aliyuncs.com:9200.
Pergi ke direktori Logstash dan luncurkan layanan Logstash.
cd ../ bin/logstash -f test.confMasuk ke konsol Kibana klaster Elasticsearch.
Untuk informasi lebih lanjut, lihat Masuk 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.
Di halaman Cluster overview, lihat data pemantauan Logstash.
Referensi
Plug-in Elasticsearch Alibaba Cloud meningkatkan stabilitas, kinerja query, kinerja penulisan, query tokenized, dan pencarian data klaster Elasticsearch Alibaba Cloud. Untuk informasi lebih lanjut, lihat Ikhtisar plug-in.