全部产品
Search
文档中心

Elasticsearch:Gunakan plug-in logstash-input-sls

更新时间:Jul 06, 2025

logstash-input-sls adalah plug-in input bawaan dari Alibaba Cloud Logstash yang digunakan untuk mengambil log dari Simple Log Service.

Catatan

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.

    Catatan

    Jika 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.

Penting

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:

  • begin: Data dikonsumsi dari entri log pertama yang ditulis ke Logstore.

  • end: Data dikonsumsi dari waktu saat ini.

  • yyyy-MM-dd HH:mm:ss: Data dikonsumsi dari waktu yang ditentukan.

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

    1. 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.

    2. 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