Udplogbeat adalah aplikasi ketukan khusus yang dimaksudkan untuk memungkinkan pengembang mencatat peristiwa untuk diindeks di Elasticsearch. Entri log dikirim ke soket UDP lokal dan kemudian dikirim melalui output yang dipilih. Tujuan dari alat ini adalah untuk memungkinkan aplikasi apa pun mencatat pesan secara lokal dengan mudah tanpa menulis ke disk dan memanfaatkan berbagai keluaran dan fitur bawaan kerangka beats.
Pastikan folder ini berada di lokasi berikut: ${GOPATH}/github.com/hartfordfive
Ketukan ini sekarang digantikan oleh protologbeat. Meskipun ketukan ini seharusnya berfungsi dengan baik, disarankan agar Anda menggunakan penerusnya karena ia memiliki beberapa peningkatan, serta kemampuan untuk memilih antara tcp atau udp. Perubahan tidak lagi dilakukan pada proyek ini.
udplogbeat.port
: Port UDP tempat proses akan mendengarkan (Default = 5000)udplogbeat.max_message_size
: Ukuran pesan maksimum yang diterima (Default = 1024)udplogbeat.enable_syslog_format_only
: Nilai Boolean yang menunjukkan apakah hanya pesan syslog yang boleh diterima. (Bawaan = salah)udplogbeat.enable_json_validation
: Nilai Boolean yang menunjukkan apakah validasi skema JSON harus diterapkan untuk pesan format json
(Default = false)udplogbeat.publish_failed_json_invalid
: Nilai Boolean yang menunjukkan apakah objek JSON harus dikirim secara serial jika validasi gagal. Ini akan menambahkan tag _udplogbeat_jspf
. (Bawaan = salah)udplogbeat.json_document_type_schema
: Hash yang terdiri dari tipe Elasticsearch sebagai kunci, dan jalur file skema lokal absolut sebagai nilainya.Contoh konfigurasi untuk penggantian syslog
udplogbeat:
port: 5000
max_message_size: 4096
enable_syslog_format_only: false
Contoh konfigurasi yang menerapkan skema untuk peristiwa format JSON
udplogbeat:
port: 5001
max_message_size: 2048
enable_json_validation: true
json_document_type_schema:
email_contact: "/etc/udplogbeat/app1_schema.json"
stock_item: "/etc/udplogbeat/app2_schema.json"
Skema JSON dapat dibuat secara otomatis dari objek di sini: http://jsonschema.net/. Anda juga dapat melihat contoh skema app1_schema.json
dan app2_schema.json
yang disertakan sebagai contoh.
Jika Anda bermaksud menggunakan ini sebagai pengganti login dengan Rsyslog, metode ini tidak akan menyimpan data Anda ke file di disk.
Jika udplogbeat tidak aktif karena alasan tertentu, pesan yang dikirim ke port UDP yang dikonfigurasi tidak akan pernah diproses atau dikirim ke cluster ELK Anda. Jika Anda memerlukan jaminan 100% setiap pesan akan terkirim setidaknya satu kali, ini mungkin bukan solusi terbaik untuk Anda.
Jika potensi hilangnya peristiwa log dapat diterima oleh Anda, maka ini mungkin solusi yang masuk akal bagi Anda.
Agar aplikasi udplogbeat dapat menerima peristiwa, ketika tidak dalam mode format syslog saja ( enable_syslog_format_only: false ), peristiwa tersebut harus disusun dalam format berikut:
[FORMAT]:[ES_TYPE]:[EVENT_DATA]
json
atau plain
. Entri yang dikodekan JSON akan diuraikan secara otomatis.Contoh:
Acara berkode biasa:
plain:syslog:Nov 26 18:51:42 my-web-host01 dhclient: DHCPACK of 10.2.1.2 from 10.2.1.3
Acara yang dikodekan JSON:
json:my_application:{"message":"This is a test JSON message", "application":"my_application", "log_level":"INFO"}
Harap diperhatikan bahwa tanggal/waktu saat ini secara otomatis ditambahkan ke setiap entri log.
Silakan lihat direktori sample_clients/
untuk contoh klien dalam berbagai bahasa.
Untuk menjalankan Udplogbeat dan juga menginstal dependensi, jalankan perintah berikut:
make setup
Ini akan membuat riwayat git yang bersih untuk setiap langkah besar. Perhatikan bahwa Anda selalu dapat menulis ulang riwayat jika diinginkan sebelum melakukan perubahan.
Untuk mendorong Udplogbeat di repositori git, jalankan perintah berikut:
git remote set-url origin https://github.com/hartfordfive/udplogbeat
git push origin master
Untuk pengembangan lebih lanjut, lihat panduan pengembang beat.
Untuk membangun biner untuk Udplogbeat, jalankan perintah di bawah ini. Ini akan menghasilkan biner di direktori yang sama dengan nama udplogbeat.
make
Atau untuk membuat binari zip untuk OSX, Windows dan Linux:
./build_os_binaries.sh "[VERSION_NUMBER]"
Ini akan ditempatkan di direktori bin/
.
Untuk menjalankan Udplogbeat dengan keluaran debugging diaktifkan, jalankan:
./udplogbeat -c udplogbeat.yml -e -d "*"
Untuk menguji Udplogbeat, jalankan perintah berikut:
make testsuite
alternatifnya:
make unit-tests
make system-tests
make integration-tests
make coverage-report
Cakupan pengujian dilaporkan dalam folder ./build/coverage/
Setiap ketukan memiliki templat untuk pemetaan di elasticsearch dan dokumentasi untuk bidang yang dibuat secara otomatis berdasarkan etc/fields.yml
. Untuk menghasilkanetc/udplogbeat.template.json danetc/udplogbeat.asciidoc
make update
Untuk membersihkan kode sumber Udplogbeat, jalankan perintah berikut:
make fmt
make simplify
Untuk membersihkan direktori build dan artefak yang dihasilkan, jalankan:
make clean
Untuk mengkloning Udplogbeat dari repositori git, jalankan perintah berikut:
mkdir -p ${GOPATH}/github.com/hartfordfive
cd ${GOPATH}/github.com/hartfordfive
git clone https://github.com/hartfordfive/udplogbeat
Untuk pengembangan lebih lanjut, lihat panduan pengembang beat.
Kerangka kerja beat menyediakan alat untuk mengkompilasi silang dan mengemas beat Anda untuk berbagai platform. Ini memerlukan buruh pelabuhan dan vendor seperti dijelaskan di atas. Untuk membuat paket sesuai keinginan Anda, jalankan perintah berikut:
make package
Ini akan mengambil dan membuat semua gambar yang diperlukan untuk proses pembangunan. Proses lubang hingga selesai bisa memakan waktu beberapa menit.
Alain Lefebvre <hartfordfive 'at' gmail.com>
Tercakup dalam Lisensi Apache, Versi 2.0 Hak Cipta (c) 2016 Alain Lefebvre