logstash-input-sls adalah plug-in input bawaan dari Alibaba Cloud Logstash yang digunakan untuk mengambil log dari Simple Log Service.
logstash-input-sls adalah plug-in open source yang dikelola oleh Alibaba Cloud. Untuk informasi lebih lanjut, lihat logstash-input-logservice.
Fitur
Konsumsi kolaboratif terdistribusi: Beberapa server dapat dikonfigurasi untuk mengonsumsi data log dalam Logstore secara bersamaan.
CatatanJika Anda ingin menggunakan beberapa server Logstash untuk mengimplementasikan konsumsi kolaboratif terdistribusi, pastikan hanya satu pipeline dengan logstash-input-sls yang diinstal diterapkan pada setiap server. Hal ini karena batasan pada plug-in logstash-input-sls. Jika beberapa pipeline dengan logstash-input-sls yang diinstal diterapkan pada satu server, data duplikat mungkin ada di output.
Kinerja tinggi: Jika Anda menggunakan grup konsumen Java, kecepatan konsumsi CPU inti tunggal dapat mencapai 20 MB/s.
Keandalan tinggi: logstash-input-sls menyimpan kemajuan konsumsi di server. Jika server pulih dari pengecualian, ia dapat melanjutkan konsumsi data dari titik kontrol konsumsi terakhir.
Pemerataan beban otomatis: Shard dialokasikan secara otomatis berdasarkan jumlah konsumen dalam grup konsumen. Jika konsumen bergabung atau meninggalkan grup konsumen, logstash-input-sls secara otomatis mengalokasikan ulang shard.
Prasyarat
Plug-in logstash-input-sls telah diinstal.
Untuk informasi lebih lanjut, lihat Instal dan hapus plug-in.
Proyek Simple Log Service dan Logstore telah dibuat. Data telah dikumpulkan.
Untuk informasi lebih lanjut, lihat Memulai cepat.
Aplikasi logstash-input-sls
Setelah prasyarat dipenuhi, Anda dapat membuat pipeline berdasarkan petunjuk yang diberikan dalam Gunakan file konfigurasi untuk mengelola pipeline. Saat membuat pipeline, konfigurasikan parameter pipeline sesuai dengan deskripsi dalam tabel bagian Parameter. Setelah mengonfigurasi parameter, simpan pengaturan dan terapkan pipeline. Lalu, Alibaba Cloud Logstash akan memicu pengambilan data dari Simple Log Service.
Sebelum menggunakan pengguna RAM untuk menggunakan plug-in logstash-input-sls, Anda harus memberikan izin terkait grup konsumen kepada pengguna RAM. Untuk informasi lebih lanjut, lihat Gunakan grup konsumen untuk mengonsumsi log.
Berikut adalah contoh cara menggunakan Alibaba Cloud Logstash untuk mengonsumsi data log dalam Logstore dan mentransfer data ke Alibaba Cloud Elasticsearch:
input {
logservice{
endpoint => "titik akhir proyek Anda"
access_id => "id akses Anda"
access_key => "kunci akses Anda"
project => "nama proyek Anda"
logstore => "nama logstore Anda"
consumer_group => "nama grup konsumen"
consumer_name => "nama konsumen"
position => "end"
checkpoint_second => 30
include_meta => true
consumer_name_with_ip => true
}
}
output {
elasticsearch {
hosts => ["http://es-cn-***.elasticsearch.aliyuncs.com:9200"]
index => "<indeks_anda>"
user => "elastic"
password => "changeme"
}
}Buat asumsi berikut: Logstore memiliki 10 shard. Trafik data setiap shard adalah 1 MB/s. Kapasitas pemrosesan setiap server Logstash adalah 3 MB/s. Lima server Logstash dialokasikan, dan satu pipeline dengan logstash-input-sls yang diinstal diterapkan pada setiap server. Setiap server menggunakan pengaturan yang sama untuk consumer_group dan consumer_name. consumer_name_with_ip disetel ke true.
Dalam kasus ini, dua shard dialokasikan ke setiap server, dan setiap shard memproses data pada 2 MB/s.
Parameter
Tabel berikut menjelaskan parameter yang didukung oleh logstash-input-sls.
Parameter | Tipe | Diperlukan | Deskripsi |
endpoint | String | Ya | Titik akhir proyek Simple Log Service dalam virtual private cloud (VPC). Untuk informasi lebih lanjut, lihat Titik akhir internal Simple Log Service. |
access_id | String | Ya | ID AccessKey akun Anda yang memiliki izin pada grup konsumen. Untuk informasi lebih lanjut, lihat Gunakan grup konsumen untuk mengonsumsi log. |
access_key | String | Ya | Rahasia AccessKey akun Anda yang memiliki izin pada grup konsumen. Untuk informasi lebih lanjut, lihat Gunakan grup konsumen untuk mengonsumsi log. |
project | String | Ya | Nama proyek Simple Log Service. |
logstore | String | Ya | Nama Logstore. |
consumer_group | String | Ya | Nama grup konsumen, yang dapat disesuaikan. |
consumer_name | String | Ya | Nama konsumen, yang dapat disesuaikan. Nama setiap konsumen harus unik dalam grup konsumen. Jika tidak, perilaku yang tidak terdefinisi mungkin terjadi. |
position | String | Ya | Posisi awal untuk mengonsumsi data log. Nilai valid:
|
checkpoint_second | Angka | Tidak | Interval untuk memicu checkpoint. Kami sarankan Anda menyetel interval ke nilai dalam rentang 10 detik hingga 60 detik. Nilai minimum: 10. Nilai default: 30. Unit: detik. |
include_meta | Boolean | Tidak | Menentukan apakah log input berisi metadata, seperti sumber log, waktu, tag, dan topik. Nilai default: true. |
consumer_name_with_ip | Boolean | Tidak | Menentukan apakah nama konsumen berisi alamat IP. Nilai default: true. Untuk konsumsi kolaboratif terdistribusi, atur nilainya menjadi true. |
Uji benchmark kinerja
Lingkungan uji
CPU: Intel(R) Xeon(R) Platinum 8163 Prosesor@2.50 GHz, 4-core
Memori: 8 GB
Sistem operasi: Linux
Konfigurasi pipeline Logstash
input { logservice{ endpoint => "cn-hangzhou-intranet.log.aliyuncs.com" access_id => "***" access_key => "***" project => "test-project" logstore => "logstore1" consumer_group => "consumer_group1" consumer_name => "consumer1" position => "end" checkpoint_second => 30 include_meta => true consumer_name_with_ip => true } } output { elasticsearch { hosts => ["http://es-cn-***.elasticsearch.aliyuncs.com:9200"] index => "myindex" user => "elastic" password => "changeme" } }Prosedur uji
Gunakan produsen Java untuk mengirim 2 MB, 4 MB, 8 MB, 16 MB, dan 32 MB data ke Logstore setiap detik.
Setiap entri log berisi 10 pasangan kunci-nilai dan sekitar 500 byte panjangnya.
Mulai Logstash untuk mengonsumsi data dalam Logstore. Pastikan latensi konsumsi tidak bertambah dan kecepatan konsumsi dapat mengimbangi kecepatan produksi.
Hasil uji
Trafik (MB/s)
Penggunaan CPU (%)
Penggunaan memori (GB)
32
170.3
1.3
16
83.3
1.3
8
41.5
1.3
4
21.0
1.3
2
11.3
1.3