Gunakan plugin aliyun-log-flume untuk mengintegrasikan Log Service dengan Flume guna menulis dan mengonsumsi data log.
Latar Belakang
Plugin aliyun-log-flume mengintegrasikan Log Service dengan Flume, memungkinkannya terhubung dengan sistem data lain seperti HDFS dan Kafka. Plugin ini menyediakan sink dan source.
-
sink: Flume membaca data dari sumber data lain dan menuliskannya ke Log Service.
-
source: Flume mengonsumsi data log dari Log Service dan menuliskannya ke sistem lain.
Untuk informasi lebih lanjut, lihat aliyun-log-flume.
Prosedur
-
Unduh dan instal Flume.
Untuk informasi lebih lanjut, lihat Flume.
-
Unduh plugin aliyun-log-flume dan letakkan di direktori
<FLUME_HOME>/lib.Untuk informasi lebih lanjut, lihat aliyun-log-flume-1.3.jar.
-
Di direktori
<FLUME_HOME>/conf, buat file konfigurasi bernama flumejob.conf. -
Jalankan Flume.
Sink
Gunakan sink untuk menulis data dari sumber lain ke Log Service melalui Flume. Dua format parsing berikut didukung:
-
SIMPLE: Menulis seluruh event Flume sebagai satu bidang ke Log Service.
-
DELIMITED: Memperlakukan seluruh event Flume sebagai data yang dibatasi (delimited). Data tersebut kemudian diurai menjadi bidang-bidang berdasarkan nama kolom yang dikonfigurasi dan ditulis ke Log Service.
Tabel berikut menjelaskan parameter konfigurasi sink.
|
Parameter |
Wajib |
Deskripsi |
|
type |
Ya |
Nama kelas untuk sink. Tetapkan nilai ke |
|
endpoint |
Ya |
Titik akhir layanan Proyek. Contoh: |
|
project |
Ya |
Nama Proyek. |
|
LogStore |
Ya |
Nama LogStore. |
|
accessKeyId |
Ya |
ID AccessKey yang digunakan untuk mengidentifikasi pengguna. Untuk keamanan, gunakan Pasangan Kunci Akses Pengguna RAM. Untuk informasi tentang cara memperoleh Pasangan Kunci Akses, lihat Pasangan Kunci Akses. |
|
accessKey |
Ya |
Secret AccessKey yang digunakan untuk mengautentikasi pengguna. Untuk keamanan, gunakan Pasangan Kunci Akses Pengguna RAM. Untuk informasi tentang cara memperoleh Pasangan Kunci Akses, lihat Pasangan Kunci Akses. |
|
batchSize |
Tidak |
Jumlah entri data yang ditulis ke Log Service dalam setiap batch. Nilai default: 1000. |
|
maxBufferSize |
Tidak |
Ukuran antrian cache. Nilai default: 1000. |
|
serializer |
Tidak |
Format serialisasi untuk event Flume. Nilai yang valid:
|
|
columns |
Tidak |
Parameter ini wajib ketika serializer diatur ke DELIMITED. Menentukan daftar nama kolom yang dipisahkan koma. Nama kolom harus dalam urutan yang sama dengan bidang dalam data. |
|
separatorChar |
Tidak |
Ketika serializer diatur ke DELIMITED, parameter ini menentukan pemisah bidang. Nilainya harus berupa satu karakter. Nilai default adalah koma (,). |
|
quoteChar |
Tidak |
Ketika serializer diatur ke DELIMITED, parameter ini menentukan karakter tanda kutip. Nilai default adalah tanda kutip ganda ("). |
|
escapeChar |
Tidak |
Ketika serializer diatur ke DELIMITED, parameter ini menentukan karakter escape. Nilai default adalah tanda kutip ganda ("). |
|
useRecordTime |
Tidak |
Menentukan apakah akan menggunakan bidang timestamp dari data sebagai waktu log. Jika diatur ke false, waktu sistem saat ini yang digunakan. Nilai default adalah false. |
Untuk contoh konfigurasi sink, lihat GitHub.
Source
Gunakan source untuk mengonsumsi data log dari Log Service dan mengirimkannya ke sumber data lain melalui Flume. Dua format output berikut didukung:
-
DELIMITED: Mengeluarkan data ke Flume dalam format log delimited.
-
JSON: Mengeluarkan data ke Flume dalam format log JSON.
Tabel berikut menjelaskan parameter konfigurasi source.
|
Parameter |
Wajib |
Deskripsi |
|
type |
Ya |
Nama kelas untuk source. Tetapkan nilai ke |
|
endpoint |
Ya |
Titik akhir layanan Proyek. Contoh: |
|
project |
Ya |
Nama Proyek. |
|
LogStore |
Ya |
Nama LogStore. |
|
accessKeyId |
Ya |
ID AccessKey yang digunakan untuk mengidentifikasi pengguna. Untuk keamanan, gunakan Pasangan Kunci Akses Pengguna RAM. Untuk informasi tentang cara memperoleh Pasangan Kunci Akses, lihat Pasangan Kunci Akses. |
|
accessKey |
Ya |
Secret AccessKey yang digunakan untuk mengautentikasi pengguna. Untuk keamanan, gunakan Pasangan Kunci Akses Pengguna RAM. Untuk informasi tentang cara memperoleh Pasangan Kunci Akses, lihat Pasangan Kunci Akses. |
|
heartbeatIntervalMs |
Tidak |
Interval heartbeat antara client dan Log Service. Nilai default adalah 30.000 milidetik. |
|
fetchIntervalMs |
Tidak |
Interval pengambilan data. Nilai default adalah 100 milidetik. |
|
fetchInOrder |
Tidak |
Menentukan apakah akan mengonsumsi data secara berurutan. Nilai default adalah false. |
|
batchSize |
Tidak |
Jumlah entri data yang dibaca dalam setiap batch. Nilai default adalah 100. |
|
consumerGroup |
Tidak |
Nama kelompok konsumen. |
|
initialPosition |
Tidak |
Posisi awal untuk konsumsi data. Nilai yang valid adalah begin, end, dan timestamp. Nilai default adalah begin. Catatan
Jika checkpoint sisi server ada, maka checkpoint tersebut memiliki prioritas lebih tinggi. |
|
timestamp |
Tidak |
Parameter ini wajib ketika initialPosition diatur ke timestamp. Menentukan waktu mulai dalam format Stempel waktu UNIX. |
|
deserializer |
Ya |
Format deserialisasi untuk event Flume. Nilai yang valid:
|
|
columns |
Tidak |
Parameter ini wajib ketika deserializer diatur ke DELIMITED. Menentukan daftar nama kolom yang dipisahkan koma. Nama kolom harus dalam urutan yang sama dengan bidang dalam data. |
|
separatorChar |
Tidak |
Ketika deserializer diatur ke DELIMITED, parameter ini menentukan pemisah bidang. Nilainya harus berupa satu karakter. Nilai default adalah koma (,). |
|
quoteChar |
Tidak |
Ketika deserializer diatur ke DELIMITED, parameter ini menentukan karakter tanda kutip. Nilai default adalah tanda kutip ganda ("). |
|
escapeChar |
Tidak |
Ketika deserializer diatur ke DELIMITED, parameter ini menentukan karakter escape. Nilai default adalah tanda kutip ganda ("). |
|
appendTimestamp |
Tidak |
Ketika deserializer diatur ke DELIMITED, parameter ini menentukan apakah akan menambahkan timestamp secara otomatis sebagai bidang di akhir setiap baris. Nilai default adalah false. |
|
sourceAsField |
Tidak |
Ketika deserializer diatur ke JSON, menentukan apakah akan menambahkan sumber log sebagai bidang bernama |
|
tagAsField |
Tidak |
Ketika deserializer diatur ke JSON, menentukan apakah akan menambahkan tag log sebagai bidang. Setiap tag ditambahkan sebagai bidang terpisah dengan nama dalam format |
|
timeAsField |
Tidak |
Ketika deserializer diatur ke JSON, menentukan apakah akan menambahkan waktu log sebagai bidang bernama |
|
useRecordTime |
Tidak |
Menentukan apakah akan menggunakan stempel waktu asli log. Jika diatur ke false, waktu sistem saat ini yang digunakan. Nilai default adalah false. |
Untuk contoh konfigurasi source, lihat GitHub.