All Products
Search
Document Center

DataHub:Fluentd plug-in

Last Updated:Mar 13, 2026

Fluentd plugin

Pengenalan produk

Plugin output ini untuk Fluentd menulis data yang dikumpulkan ke DataHub. Plugin ini mengikuti standar pengembangan plugin output Fluentd, mudah diinstal, dan memungkinkan Anda menulis data yang dikumpulkan ke DataHub.

Instalasi produk

Instal menggunakan RubyGems

Catatan: Ubah sumber RubyGems ke https://gems.ruby-china.com.

gem install fluent-plugin-datahub

Instalasi lokal

  1. Fluentd hanya berjalan di lingkungan Linux dan memerlukan Ruby yang telah diinstal.

  2. Tersedia dua mode instalasi. Jika Anda belum menginstal Fluentd, Anda dapat menggunakan mode instalasi satu klik untuk menginstal Fluentd dan plugin DataHub sekaligus. Jika Anda telah menginstal Fluentd, Anda dapat menggunakan mode instalasi mandiri untuk hanya menginstal plugin penulis DataHub.

1) Instalasi satu klik: Jika Anda belum menginstal Fluentd, unduh paket instalasi lengkap Fluentd. Catatan: Paket instalasi lengkap mencakup versi Fluentd fluentd-0.12.25.gem.

$ tar -xzvf fluentd-with-datahub-0.12.25.tar.gz
$ cd fluentd-with-datahub
$ sudo sh install.sh

2) Instalasi mandiri: Jika Anda telah menginstal Fluentd, unduh paket plugin DataHub Fluentd. Gunakan perintah gem untuk menginstal plugin DataHub.

$ sudo gem install --local fluent-plugin-datahub-0.12.25.gem

Kasus penggunaan

Kasus penggunaan 1: Unggah file CSV

Kasus penggunaan ini menunjukkan cara menggunakan Fluentd untuk mengunggah file CSV inkremental ke DataHub secara near real-time. File CSV memiliki format berikut:

0,qe614c760fuk8judu01tn5x055rpt1,true,100.1,14321111111
1,znv1py74o8ynn87k66o32ao4x875wi,true,100.1,14321111111
2,7nm0mtpgo1q0ubuljjjx9b000ybltl,true,100.1,14321111111
3,10t0n6pvonnan16279w848ukko5f6l,true,100.1,14321111111
4,0ub584kw88s6dczd0mta7itmta10jo,true,100.1,14321111111
5,1ltfpf0jt7fhvf0oy4lo8m3z62c940,true,100.1,14321111111
6,zpqsfxqy9379lmcehd7q8kftntrozb,true,100.1,14321111111
7,ce1ga9aln346xcj761c3iytshyzuxg,true,100.1,14321111111
8,k5j2id9a0ko90cykl40s6ojq6gruyi,true,100.1,14321111111
9,ns2zcx9bdip5y0aqd1tdicf7bkdmsm,true,100.1,14321111111
10,54rs9cm1xau2fk66pzyz62tf9tsse4,true,100.1,14321111111

Dalam file CSV, setiap baris merupakan satu record dengan bidang-bidang yang berbeda. File tersebut disimpan di path lokal `/temp/test.csv`. Topik DataHub memiliki format berikut:

Nama bidang

Tipe bidang

id

BIGINT

name

STRING

gender

BOOLEAN

salary

DOUBLE

my_time

TIMESTAMP

Gunakan konfigurasi Fluentd berikut. File konfigurasi terletak di `${CONFIG_HOME}/fluentd_test.conf`:

<source>
  @type tail
  path your_file_path
  tag test1
  format csv
  keys id,name,gender,salary,my_time
</source>
<match test1>
  @type datahub
  access_id your_app_id
  access_key your_app_key
  endpoint http://ip:port
  project_name test_project
  topic_name fluentd_performance_test_1
  column_names ["id", "name", "gender", "salary", "my_time"]
  flush_interval 1s
  buffer_chunk_limit 3m
  buffer_queue_limit 128
  dirty_data_continue true
  dirty_data_file path_to_dirty_data_file
  retry_times 3
  put_data_batch_size 1000
</match>

Jalankan perintah berikut untuk memulai Fluentd dan mulai mengirim data dari file CSV ke DataHub:

${FLUENTD_HOME}/fluentd-with-dataHub/bin/fluentd -c ${CONFIG_HOME}/fluentd_test.conf

Kasus penggunaan 2: Kumpulkan log Log4j

Log Log4j memiliki format berikut:

11:48:43.439 [qtp1847995714-17] INFO  AuditInterceptor - [c2un5sh7cu52ek6am1ui1m5h] end /web/v1/project/tefe4mfurtix9kwwyrvfqd0m/node/0m0169kapshvgc3ujskwkk8g/health GET, 4061 ms

Gunakan konfigurasi Fluentd berikut:

 <source>
   @type tail
   path bayes.log
   tag test
   format /(?<request_time>\d\d:\d\d:\d\d.\d+)\s+\[(?<thread_id>[\w\-]+)\]\s+(?<log_level>\w+)\s+(?<class>\w+)\s+-\s+\[(?<request_id>\w+)\]\s+(?<detail>.+)/
 </source>
 <match test>
   @type datahub
   access_id your_access_id
   access_key your_access_key
   endpoint http://ip:port
   project_name test_project
   topic_name dataHub_fluentd_out_1
   column_names ["thread_id", "log_level", "class"]
 </match>

Jalankan Fluentd dengan konfigurasi ini untuk mengirim log Log4j ke DataHub.

Parameter konfigurasi

Konfigurasi plugin input
tag test1                          : Menentukan entri rute. Entri rute ini dicocokkan dengan ekspresi reguler <match>.
format csv                         : Mengumpulkan data dalam format CSV.
keys id,name,gender,salary,my_time : Menentukan kolom yang akan dikumpulkan. Nama kolom harus sesuai dengan nama kolom pada tabel DataHub tujuan.
Konfigurasi plugin output
shard_id 0               : Menentukan ID shard tempat data ditulis. Secara default, data ditulis secara round-robin.
shard_keys ["id"]         : Menentukan kunci partisi. Nilai kunci di-hash untuk menentukan indeks shard tempat data ditulis.
flush_interval 1         : Fluentd menulis data minimal sekali per detik. Nilai default adalah 60 detik.
buffer_chunk_limit 3m    : Ukuran chunk. Mendukung "k" (KB) dan "m" (MB). Nilai yang direkomendasikan adalah 3m.
buffer_queue_limit 128   : Ukuran antrian chunk. Nilai ini dan buffer_chunk_limit menentukan ukuran buffer total.
put_data_batch_size 1000 : Menulis data ke DataHub setiap 1.000 record.
retry_times 3            : Jumlah percobaan ulang.
retry_interval  3        : Interval percobaan ulang dalam detik.
dirty_data_continue true : Menentukan apakah proses dilanjutkan saat ditemukan data rusak. Jika diatur ke true, Fluentd akan mencoba ulang. Setelah semua percobaan habis, data rusak akan ditulis ke file data rusak.
dirty_data_file /xxx/yyy : Menentukan path ke file data rusak.
column_names ["id"]      : Menentukan kolom yang akan dikumpulkan.

Pengujian kinerja

Lingkungan pengujian: Fluentd dijalankan pada sistem operasi Linux dengan 2 core dan RAM 4 GB. Hasil pengujian kinerja plugin DataHub adalah sebagai berikut:

  1. Untuk record tunggal berukuran 512 B, kecepatan penulisan sekitar 2.800 record/detik.

  2. Meningkatkan `put_data_batch_size` sedikit meningkatkan kecepatan, tetapi efeknya tidak signifikan.

  3. Untuk record tunggal berukuran 100 KB, plugin hanya berfungsi ketika `put_data_batch_size` diatur ke 100. Nilai 500 dan 1.000 tidak berfungsi karena ukuran data untuk satu operasi penulisan melebihi 50 MB.

  4. Kecepatan penulisan rata-rata total adalah 3 MB/detik.

    FAQ

    Q: Bagaimana cara menulis ekspresi reguler untuk parameter format di Fluentd? A: Gunakan editor ekspresi reguler online ini.