Logstash adalah bagian dari Elastic Stack bersama dengan Beats, Elasticsearch, dan Kibana. Logstash adalah jalur pemrosesan data sisi server yang menyerap data dari banyak sumber secara bersamaan, mengubahnya, dan kemudian mengirimkannya ke "simpanan" favorit Anda. (Tentu saja milik kami adalah Elasticsearch.). Logstash memiliki lebih dari 200 plugin, dan Anda juga dapat menulis plugin Anda sendiri dengan sangat mudah.
Untuk info lebih lanjut, lihat https://www.elastic.co/products/logstash
Anda dapat menemukan dokumentasi dan panduan memulai Logstash di situs elastic.co
Untuk informasi tentang pembuatan dokumentasi, lihat README di https://github.com/elastic/docs
Anda dapat mengunduh biner Logstash yang dirilis secara resmi, serta paket debian/rpm untuk platform yang didukung, dari halaman unduhan.
Plugin logstash dihosting di repositori terpisah di bawah organisasi github plugin logstash. Setiap plugin adalah permata Ruby mandiri yang dipublikasikan ke RubyGems.org.
Logstash dikenal karena ekstensibilitasnya. Ada ratusan plugin untuk Logstash dan Anda dapat menulisnya sendiri dengan sangat mudah! Untuk informasi lebih lanjut tentang pengembangan dan pengujian plugin ini, silakan lihat bagian bekerja dengan plugin
Silakan buka terbitan baru dan tarik permintaan plugin di bawah repositorinya sendiri
Misalnya, jika Anda harus melaporkan masalah/peningkatan pada keluaran Elasticsearch, silakan lakukan di sini.
Inti Logstash akan terus ada di bawah repositori ini dan semua masalah terkait serta permintaan penarikan dapat dikirimkan di sini.
JAVA_HOME
ke jalur ke direktori instalasi JDK Anda. Misalnya set JAVA_HOME=<JDK_PATH>
rake
dan bundler
masing-masing menggunakan gem install rake
dan gem install bundler
.Jika Anda lebih suka menggunakan rvm (manajer versi Ruby) untuk mengelola versi Ruby di mesin Anda, ikuti petunjuk berikut. Di folder Logstash:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
c url -sSL https://get.rvm.io | bash -s stable --ruby= $( cat .ruby-version )
Sebelum Anda melanjutkan, silakan periksa versi Ruby Anda dengan:
$ ruby -v
Versi cetak harus sama dengan file .ruby-version
.
Proyek Logstash menyertakan kode sumber untuk semua Logstash, termasuk fitur dan fungsi X-Pack Berlisensi Elastis; untuk menjalankan Logstash dari sumber hanya menggunakan kode berlisensi OSS, ekspor variabel lingkungan OSS
dengan nilai true
:
export OSS=true
export LOGSTASH_SOURCE=1
export LOGSTASH_PATH=/YOUR/LOGSTASH/DIRECTORY
gradle
(disarankan) 1./gradlew installDevelopmentGems
./gradlew installDefaultGems
Untuk memverifikasi lingkungan Anda, jalankan perintah berikut untuk memulai Logstash dan mengirimkan acara pertama Anda:
bin/logstash -e ' input { stdin { } } output { stdout {} } '
Ini akan memulai Logstash dengan input stdin menunggu Anda memasuki suatu acara
hello world
2016-11-11T01:22:14.405+0000 0.0.0.0 hello world
Lanjutan: Peluncur Tetes
Drip adalah alat yang memecahkan masalah startup JVM yang lambat saat mengembangkan Logstash. Skrip tetes dimaksudkan sebagai pengganti drop-in untuk perintah java. Kami merekomendasikan penggunaan infus selama pengembangan, khususnya untuk menjalankan pengujian. Dengan menggunakan infus, pemanggilan pertama suatu perintah tidak akan lebih cepat tetapi perintah berikutnya akan lebih cepat.
Untuk memberi tahu logstash agar menggunakan tetes, setel variabel lingkungan JAVACMD=`which drip`
.
Contoh (tetapi lihat bagian Pengujian di bawah sebelum menjalankan rspec untuk pertama kalinya):
JAVACMD=`which drip` bin/rspec
Peringatan
Tetes tidak berfungsi dengan STDIN. Anda tidak dapat menggunakan infus untuk menjalankan konfigurasi yang menggunakan plugin stdin.
Untuk membuat Referensi Logstash (hanya konten sumber terbuka) di mesin lokal Anda, kloning repo berikut:
logstash - berisi dokumen utama tentang fitur inti
logstash-docs - berisi dokumen plugin yang dihasilkan
docs - berisi file pembuatan dokumen
Pastikan Anda memeriksa cabang yang sama di logstash
dan logstash-docs
. Lihat master
di repo docs
.
Jalankan skrip pembuatan dokumen dari dalam repo docs
. Misalnya:
./build_docs.pl --doc ../logstash/docs/index.asciidoc --chunk=1 -open
Sebagian besar pengujian unit di Logstash ditulis menggunakan rspec untuk bagian Ruby. Untuk bagian Java, kami menggunakan junit. Untuk pengujian Anda dapat menggunakan tugas test rake
dan perintah bin/rspec
, lihat petunjuk di bawah:
1- Untuk menjalankan pengujian inti, Anda dapat menggunakan tugas Gradle:
./gradlew test
atau gunakan alat rspec
untuk menjalankan semua pengujian atau menjalankan pengujian tertentu:
bin/rspec
bin/rspec spec/foo/bar_spec.rb
Perhatikan bahwa sebelum menjalankan perintah rspec
untuk pertama kalinya, Anda perlu menyiapkan dependensi pengujian RSpec dengan menjalankan:
./gradlew bootstrap
2- Untuk menjalankan subset pengujian yang mencakup basis kode Java, jalankan saja:
./gradlew javaTests
3- Untuk menjalankan rangkaian pengujian lengkap termasuk pengujian integrasi yang dijalankan:
./gradlew check
4- Untuk menjalankan uji coba Ruby tunggal:
SPEC_OPTS="-fd -P logstash-core/spec/logstash/api/commands/default_metadata_spec.rb" ./gradlew :logstash-core:rubyTests --tests org.logstash.RSpecTests
5- Untuk menjalankan spesifikasi tunggal untuk pengujian integrasi, jalankan:
./gradlew integrationTests -PrubyIntegrationSpecs=specs/slowlog_spec.rb
Terkadang Anda mungkin menemukan perubahan pada sepotong kode Logstash yang menyebabkan pengujian terhenti. Ini mungkin sulit untuk di-debug.
Jika Anda menyetel LS_JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
Anda dapat terhubung ke Logstash yang sedang berjalan dengan debugger IDE Anda yang dapat menjadi cara terbaik untuk menemukan masalah.
Untuk menjalankan pengujian semua plugin yang diinstal saat ini:
rake test:plugins
Anda dapat menginstal kumpulan plugin default yang disertakan dalam paket logstash:
rake test:install-default
Perhatikan bahwa jika sebuah plugin diinstal menggunakan plugin manager bin/logstash-plugin install ...
jangan lupa juga menginstal dependensi pengembangan plugin menggunakan perintah berikut setelah instalasi plugin:
bin/logstash-plugin install --development
Artefak yang dibangun akan ditempatkan di direktori LS_HOME/build
, dan akan membuat direktori tersebut jika belum ada.
Anda dapat membuat paket snapshot Logstash sebagai file tarball atau zip
./gradlew assembleTarDistribution
./gradlew assembleZipDistribution
Artefak khusus OSS juga dapat dibuat dengan tugas tingkatannya sendiri:
./gradlew assembleOssTarDistribution
./gradlew assembleOssZipDistribution
Anda juga dapat membuat .rpm dan .deb, tetapi alat fpm diperlukan.
rake artifact:rpm
rake artifact:deb
Dan:
rake artifact:rpm_oss
rake artifact:deb_oss
Jika Anda ingin build menggunakan JRuby khusus, Anda dapat melakukannya dengan menyetel jalur ke akar sumber distribusi JRuby khusus melalui properti Gradle custom.jruby.path
.
Misalnya
./gradlew clean test -Pcustom.jruby.path= " /path/to/jruby "
Semua kontribusi dipersilakan: ide, tambalan, dokumentasi, laporan bug, keluhan, dan bahkan sesuatu yang Anda buat di atas serbet.
Pemrograman bukanlah keterampilan yang diperlukan. Apa pun yang Anda lihat tentang open source dan pengelola atau anggota komunitas yang mengatakan "kirim patch atau mati" - Anda tidak akan melihatnya di sini.
Yang lebih penting adalah Anda bisa berkontribusi.
Untuk informasi lebih lanjut tentang berkontribusi, lihat file CONTRIBUTING.
gradle
Anda juga bisa menggunakan bundle
:Instal dependensi pengembangan
bundle config set --local path vendor/bundle bundle install
Bootstrap lingkungan:
rake bootstrap
Anda kemudian dapat menggunakan bin/logstash
untuk memulai Logstash, tetapi tidak ada plugin yang diinstal. Untuk menginstal plugin default, Anda dapat menjalankan:
rake plugin:install-default
Ini akan menginstal 80+ plugin default yang membuat Logstash siap terhubung ke berbagai sumber data, melakukan transformasi, dan mengirimkan hasilnya ke Elasticsearch dan tujuan lainnya.