Simple Log Service (SLS) mendukung konsumsi data menggunakan Logstash. Dengan mengonfigurasi Plugin Input untuk SLS, Anda dapat mengintegrasikannya dengan Logstash untuk mengambil data dari SLS dan menulisnya ke sistem lain seperti Kafka dan HDFS.
Fitur
Konsumsi Terdistribusi: Konfigurasikan beberapa server untuk mengonsumsi data dari satu logstore secara bersamaan.
Kinerja Tinggi: Berdasarkan implementasi Java ConsumerGroup, kecepatan konsumsi inti tunggal mencapai hingga 20 MB/s sebelum kompresi.
Keandalan Tinggi: Kemajuan konsumsi disimpan di server. Jika terjadi pengecualian, konsumsi akan dilanjutkan otomatis dari checkpoint terakhir setelah pemulihan.
Penyeimbangan Beban Otomatis: Shard dialokasikan secara otomatis berdasarkan jumlah konsumen. Beban akan diseimbangkan secara otomatis saat konsumen ditambahkan atau dihapus.
Prosedur
Unduh paket instalasi Logstash untuk sistem operasi Anda dari Logstash.
Panduan ini menggunakan Linux sebagai contoh:
Instal Logstash. Untuk informasi lebih lanjut, lihat Logstash.
Unduh dan instal kunci tanda tangan publik.
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearchDi direktori
/etc/yum.repos.d/, buat file dengan akhiran.repo. Sebagai contoh, buat filelogstash.repodan tambahkan konten berikut:[logstash-9.x] name=Elastic repository for 9.x packages baseurl=https://artifacts.elastic.co/packages/9.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-mdUnduh dan instal Logstash.
sudo yum install logstash
Instal plugin input.
Unduh plugin input dari logstash-input-sls.
Instal plugin input.
/usr/share/logstash/bin/logstash-plugin install logstash-input-sls.zipCatatanUntuk informasi tentang potensi kegagalan instalasi dan solusinya, lihat Instalasi dan Konfigurasi Plugin.
Buat pengguna
logstash. Logstash harus dijalankan sebagai pengguna non-root.Buat pengguna
logstash.sudo adduser --system --no-create-home --group logstashTetapkan izin untuk pengguna logstash. Pastikan bahwa pengguna
logstashmemiliki akses ke direktori terkait Logstash, seperti/usr/share/logstash,/etc/logstash, dan/var/log/logstash.sudo chown -R logstash:logstash /usr/share/logstash /etc/logstash /var/log/logstashVerifikasi bahwa pengguna
logstashtelah dibuat.id logstashKeluaran menampilkan ID Pengguna (UID) dan ID Grup (GID) dari pengguna
logstash. Ini menunjukkan bahwa pengguna telah berhasil dibuat.
Jalankan Logstash sebagai pengguna
logstash.Di direktori
/etc/logstash, buat file dengan akhiran .conf. Panduan ini menggunakan file bernamalogstash-sample.confsebagai contoh.Di file
logstash-sample.conf, tambahkan kode contoh dan jalankan Logstash sebagai penggunalogstash.sudo -u logstash /usr/share/logstash/bin/logstash -f /etc/logstash/logstash-sample.confContoh berikut menunjukkan cara mengonfigurasi Logstash untuk mengonsumsi data dari logstore dan mencetak data ke output standar. Parameter juga dijelaskan:
Deskripsi parameter
Kode contoh
input { logservice{ endpoint => "your project endpoint" access_id => "your_accesskey_id" access_key => "your_accesskey_secret" project => "your project name" logstore => "your logstore name" consumer_group => "consumer group name" consumer_name => "consumer name" position => "end" checkpoint_second => 30 include_meta => true consumer_name_with_ip => true } } output { stdout {} }endpoint
string(Diperlukan)Titik akhir proyek di SLS. Untuk informasi lebih lanjut, lihat Titik Akhir Layanan.
access_id
string(Diperlukan)ID AccessKey dari akun Alibaba Cloud Anda. ID AccessKey harus memiliki izin untuk mengelola kelompok konsumen. Untuk informasi lebih lanjut, lihat Memberikan Izin untuk Mengonsumsi Data dari Logstore.
access_key
string(Diperlukan)Rahasia AccessKey dari akun Alibaba Cloud Anda. Rahasia AccessKey harus memiliki izin untuk mengelola kelompok konsumen. Untuk informasi lebih lanjut, lihat Memberikan Izin untuk Mengonsumsi Data dari Logstore.
project
string(Diperlukan)Nama proyek SLS.
logstore
string(Diperlukan)Nama logstore.
consumer_group
string(Diperlukan)Nama kelompok konsumen.
consumer_name
string(Diperlukan)Nama konsumen. Nama konsumen harus unik dalam kelompok konsumen yang sama.
position
string(Diperlukan)Posisi dari mana konsumsi dimulai.
begin: Mulai konsumsi dari data pertama yang ditulis ke logstore.
end: Mulai konsumsi dari titik waktu saat ini.
yyyy-MM-dd HH:mm:ss: Mulai konsumsi dari titik waktu tertentu.
checkpoint_second
number(Opsional)Interval, dalam detik, pada saat checkpoint dibuat. Nilainya harus bilangan bulat dari 10 hingga 60. Nilai default adalah 30.
include_meta
boolean(Opsional)Menentukan apakah akan menyertakan metadata dalam data. Metadata mencakup sumber, waktu, tag, dan topik. Nilai default adalah true.
consumer_name_with_ip
boolean(Opsional)Menentukan apakah akan menyertakan alamat IP dalam nama konsumen. Nilai default adalah true. Untuk konsumsi terdistribusi, Anda harus mengatur parameter ini ke true.