Logstash menggunakan pipeline untuk mengumpulkan dan memproses data. Anda perlu mengonfigurasi plugin input dan output untuk pipeline tersebut. Plugin filter dapat dikonfigurasi sesuai kebutuhan bisnis Anda. Plugin input dan output digunakan untuk menentukan sumber data input dan output, sedangkan plugin filter digunakan untuk memproses data yang telah dikumpulkan sebelumnya. Topik ini menjelaskan file konfigurasi pipeline dari Alibaba Cloud Logstash.
Untuk informasi lebih lanjut, lihat Struktur File Konfigurasi dalam dokumentasi Logstash open source.
Anda dapat menggunakan file konfigurasi Logstash untuk mengonfigurasi pipeline guna pengumpulan dan pemrosesan data. Untuk informasi lebih lanjut, lihat Gunakan File Konfigurasi untuk Mengelola Pipeline.
Struktur file konfigurasi
input {
...
}
filter {
...
}
output {
...
}Setiap bagian dapat berisi satu atau lebih plugin. Jika Anda menentukan beberapa plugin filter, Logstash akan menerapkannya sesuai dengan urutan kemunculannya di file konfigurasi.
- Jika file konfigurasi berisi parameter seperti last_run_metadata_path, Anda harus menetapkan parameter ini ke jalur file Alibaba Cloud Logstash. Jalur dalam format
/ssd/1/<ID kluster Logstash>/logstash/data/disediakan di backend dan tersedia untuk pengujian. Sistem tidak akan menghapus data di jalur ini. Pastikan disk Anda memiliki ruang penyimpanan yang cukup saat menggunakan jalur ini. Setelah Anda menentukan jalur, Logstash secara otomatis menghasilkan file di jalur tersebut, tetapi Anda tidak dapat melihat data di dalam file. - Untuk alasan keamanan, jika Anda menentukan driver JDBC saat mengonfigurasi pipeline, Anda harus menambahkan
allowLoadLocalInfile=false&autoDeserialize=falsedi akhir parameter jdbc_connection_string, sepertijdbc_connection_string => "jdbc:mysql://xxx.drds.aliyuncs.com:3306/<Nama database>?allowLoadLocalInfile=false&autoDeserialize=false". Jika tidak, ketika Anda menambahkan file konfigurasi untuk pipeline Logstash, sistem akan menampilkan pesan kesalahan yang menunjukkan kegagalan pemeriksaan.
Konfigurasi plug-in
input {
beats {
port => 8000
host => "118.11.xx.xx"
}
beats {
port => 8001
host => "192.168.xx.xx"
}
}Properti yang didukung oleh berbagai plugin bervariasi berdasarkan jenis plugin. Untuk informasi lebih lanjut, lihat Plugin Input, Plugin Output, Plugin Filter, dan Plugin Codec.
Tipe nilai
Saat mengonfigurasi plugin, Anda dapat menetapkan tipe nilai berikut.
Array
:list => true untuk memfasilitasi pemeriksaan tipe. Tipe ini digunakan saat Anda ingin memproses tabel hash atau daftar tipe campuran yang tidak memerlukan pemeriksaan tipe. Contoh: users => [ {id => 1, name => bob}, {id => 2, name => jane} ]List
:list => true saat mendeklarasikan parameter, plugin mengaktifkan pemeriksaan daftar. Contoh: path => [ "/var/log/messages", "/var/log/*.log" ]
uris => [ "http://elastic.co", "http://example.net" ]Dalam contoh ini, path dikonfigurasi sebagai daftar yang berisi dua string. uris dikonfigurasi sebagai daftar URL. Jika salah satu URL tidak valid, pemrosesan event gagal.
Boolean
ssl_enable => trueByte
my_bytes => "1113" # 1113 bytes
my_bytes => "10MiB" # 10485760 bytes
my_bytes => "100kib" # 102400 bytes
my_bytes => "180 mb" # 180000000 bytesCodec
Codec adalah tipe data yang dikodekan atau didekode. Codec dapat digunakan baik di plugin input maupun output. Codec input mendekode data sebelum data masuk ke plugin input. Codec output mengkode data sebelum data meninggalkan plugin output. Jika Anda menggunakan codec input atau output, Anda tidak perlu menentukan plugin filter untuk pipeline Logstash Anda.
codec => "json"Hash
Nilai tipe hash adalah kumpulan pasangan kunci-nilai, seperti "field1" => "value1".
match => {
"field1" => "value1"
"field2" => "value2"
...
}
# Tentukan pasangan kunci-nilai dalam satu baris. Pisahkan pasangan kunci-nilai dengan spasi, bukan koma (,).
match => { "field1" => "value1" "field2" => "value2" }Numeric
port => 33Password
my_password => "password"URI
http://user:paas@example.net, kata sandi tidak dicatat atau ditampilkan. Contoh: my_uri => "http://foo:bar@example.net"Path
my_path => "/tmp/logstash"String
String harus berupa urutan karakter tunggal yang diapit tanda kutip ganda (") atau tanda kutip tunggal (').
Urutan escape
config.support_escapes: true di logstash.yml. Kemudian, string yang dikutip (presisi ganda dan tunggal) dikonversi berdasarkan tabel berikut. | Karakter escape | Deskripsi | Nilai ASCII (desimal) |
| \r | Carriage return | 013 |
| \n | Line break | 010 |
| \t | Tab | 009 |
| \\ | Backslash | 092 |
| \" | Tanda kutip ganda | 034 |
| \' | Tanda kutip tunggal | 039 |
name => 'It\'s a beautiful day'Komentar
#) dan tidak perlu berada di awal baris. Contoh: # Komentar.
input { # Komentar.
# ...
}