Ketukan Kustom dari Elastic Stack untuk berinteraksi dengan kubus eBPF berbasis Polycube.
Pastikan folder ini berada di lokasi berikut: ${GOPATH}/src/gitlab.com/astrid-repositories/cubebeat
mkdir -p ${GOPATH}/src/gitlab.com/astrid-repositories/
cd ${GOPATH}/src/gitlab.com/astrid-repositories
git clone https://gitlab.com/astrid-repositories/cubebeat.git
Untuk membangun biner untuk Cubebeat
jalankan perintah di bawah ini. Ini akan menghasilkan biner di direktori yang sama dengan nama cubebeat.
chmod +x build.sh
build.sh
Untuk menjalankan Cubebeat
dengan keluaran debugging diaktifkan, jalankan:
./cubebeat -c cubebeat.yml -e -d "*"
Untuk menjalankan Cubebeat
tanpa mengaktifkan keluaran debugging, jalankan:
./cubebeat -c cubebeat.yml -e
Cubebeat
membaca file konfigurasi (default: cubebeat.yml
) yang diteruskan sebagai argumen.
File ini menerima konfigurasi beat umum seperti yang dijelaskan di format file Config.
Selain itu, ia menerima konfigurasi khusus seperti yang ditunjukkan pada contoh berikut:
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
Berbagai opsi akan dijelaskan di bagian berikut.
Cubebeat
dapat memuat file konfigurasi eksternal untuk input, memungkinkan Anda memisahkan konfigurasi menjadi beberapa file konfigurasi yang lebih kecil.
Pada sistem dengan izin file
POSIX
, semua file konfigurasi tunduk pada pemeriksaan kepemilikan dan izin file.
Untuk informasi lebih lanjut, lihat Kepemilikan dan Izin File Konfigurasi di Referensi Platform Beats .
Anda menentukan opsi path
di bagian cubebeat.config.inputs
dari cubebeat.yml
. Misalnya:
cubebeat :
config.inputs :
path : config.d/*.yml
Setiap file yang ditemukan oleh path
Glob harus berisi daftar satu atau lebih definisi masukan.
Baris pertama setiap file konfigurasi eksternal harus berupa definisi masukan yang dimulai dengan
- name
.
Misalnya:
- name : synflood
enabled : true
period : 10s
polycube.api-url : " http://localhost:9000/polycube/v1/synflood/sf/stats/ "
- name : packetcapture
enabled : true
period : 5s
polycube.api-url : " http://localhost:9000/polycube/v1/packetcapture/pc "
Sangat penting bahwa dua input yang berjalan TIDAK memiliki
name
yang sama. Jika lebih dari satu memasukkanname
yang sama, hanya nama pertama yang diterima; sedangkan yang lainnya dibuang.
Ketika opsi enabled
adalah true
, input kubus tertentu secara berkala berinteraksi dengan Polycube Cube tertentu setiap interval waktu yang ditentukan dalam period
membuat permintaan HTTP ke URL yang ditentukan dalam polycube.api-url
.
Jika kubus tidak dapat dijangkau atau ada kesalahan saat mengambil data,
cubebeat
akan terus bekerja, mencoba koneksi baru setelah jangka waktu yang ditentukan dalamperiod
.
Setiap period
waktu, masukan kubus tertentu mengirimkan peristiwa Elastic
baru ke keluaran seperti yang ditentukan dalam file konfigurasi cubebeat.yml
Anda dapat mengonfigurasi cubebeat
untuk memuat ulang file konfigurasi eksternal secara dinamis ketika ada perubahan. Fitur ini tersedia untuk konfigurasi masukan yang dimuat sebagai file konfigurasi eksternal. Anda tidak dapat menggunakan fitur ini untuk memuat ulang file konfigurasi cubebeat.yml
utama.
Untuk mengonfigurasi fitur ini, Anda menentukan path
(Glob) untuk melihat perubahan konfigurasi. Ketika file yang ditemukan oleh Glob berubah, input baru dimulai dan dihentikan sesuai dengan perubahan pada file konfigurasi.
Fitur ini sangat berguna dalam lingkungan kontainer di mana satu kontainer digunakan untuk membuntuti log untuk layanan yang berjalan di kontainer lain pada host yang sama.
Untuk mengaktifkan pemuatan ulang konfigurasi dinamis, tentukan path
dan opsi reload
di bawah bagian cubebeat.config.inputs
. Misalnya:
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
Pilihan | Keterangan |
---|---|
path | Glob yang mendefinisikan file untuk memeriksa perubahan. |
reload.enabled | Jika disetel ke true, aktifkan pemuatan ulang konfigurasi dinamis. |
reload.period | Menentukan seberapa sering file diperiksa perubahannya. Jangan atur period kurang dari 1s karena waktu modifikasi file sering kali disimpan dalam hitungan detik.Menetapkan period menjadi kurang dari 1s akan menghasilkan overhead yang tidak perlu . |
Pada sistem dengan izin file
POSIX
, semua file konfigurasi tunduk pada pemeriksaan kepemilikan dan izin file.
Untuk informasi lebih lanjut, lihat Kepemilikan dan Izin File Konfigurasi di Referensi Platform Beats .