Logstash dalam Docker

Logstash Dalam Docker



Logstash ialah saluran paip pemprosesan data sumber terbuka yang membolehkan anda mengumpul, memproses dan memajukan data log daripada pelbagai sumber.

Dalam tutorial ini, kami akan membimbing anda melalui proses menjalankan Logstash dalam bekas Docker dengan konfigurasi asas.

Keperluan:

Sebelum kami memulakan tutorial, pastikan anda mempunyai perkara berikut:







  1. Docker dipasang pada mesin hos anda (versi 23 dan ke atas disyorkan)
  2. Docker Compose yang dipasang pada mesin anda

Dengan syarat yang diberikan dipenuhi, kita boleh meneruskan dengan tutorial.



Sediakan Fail Konfigurasi Logstash

Logstash menggunakan fail konfigurasi untuk menentukan cara data diserap, ditapis dan dihantar ke output. Terdapat pelbagai pilihan yang boleh anda konfigurasikan kerana anda boleh merujuk pada dokumentasi rasmi.



Untuk contoh kami, kami menumpukan pada konfigurasi asas yang menyerap data daripada fail log, menapisnya untuk rekod yang sepadan dan mengeluarkan data kepada fail.





Buat fail yang dipanggil 'logstash.conf' dan tambah konfigurasi seperti berikut:

input {
fail {
laluan => '/var/log/apache/access.log'

kedudukan_mula => 'permulaan'

sincedb_path => '/dev/null'

abaikan_lebih tua => 0
}
}

penapis {
jika [mesej] =~ 'KESILAPAN' {
grok {
padan => { 'mesej' => '%{COMBINEDAPACHELOG}' }
}
}
}

pengeluaran {
fail {
laluan => '/var/log/apache/error_logs.log'
}
}

Fail sebelumnya mentakrifkan konfigurasi seperti yang ditunjukkan dalam yang berikut:

  1. Bahagian input – Bahagian input menggunakan pemalam input fail untuk membaca fail log Apache yang terletak di /var/log/apache/access.log.
    • Kami kemudian menetapkan kedudukan mula pada permulaan yang membolehkan Logstash membaca keseluruhan fail dari awal.
    • Sincedb_path - Parameter ini membolehkan kami melumpuhkan penjejakan sincedb Logstash dengan menetapkan nilai kepada /dev/null. Ini memastikan bahawa Logstash sentiasa membaca dari awal fail.
    • Ignore_older – Menetapkan nilai parameter ini kepada 0 membolehkan Logstash memproses semua entri fail log.
  2. Bahagian penapis – Dalam bahagian penapis, kami mentakrifkan corak penapis untuk menyemak sama ada mesej log mengandungi perkataan ERROR. Anda boleh melaraskan syarat bagi blok penapis untuk menapis bagi padanan yang lebih tepat dalam fail.
    • Jika syarat dipenuhi, kami menggunakan penapis grok untuk menghuraikan baris log Apache menggunakan corak COMBINEDAPACHELOG yang merupakan corak terbina dalam Logstash untuk menghuraikan log Apache.
  3. Bahagian output – Bahagian ini membolehkan kami menentukan format output untuk entri yang sepadan.
    • Dalam kes kami, kami menulisnya ke fail /var/log/apache/error_logs.log menggunakan parameter laluan.

Ini sepatutnya memberikan kami konfigurasi Logstash asas yang membolehkan kami menunjukkan beberapa kerja Logstash asas.

Sila rujuk lebih lanjut tentang membuat dan mengkonfigurasi saluran paip Logstash dalam sumber dokumentasi yang disediakan berikut:

https://www.elastic.co/guide/en/logstash/current/configuration.html

Buat fail Docker

Setelah kami mentakrifkan konfigurasi Logstash, kami boleh meneruskan dan mempelajari cara menjalankan bekas. Di dalam direktori yang sama dengan fail 'logstash.conf', buat fail baharu yang dipanggil 'Dockerfile'.

Edit fail ini dan tambahkan entri seperti berikut:

DARI docker.elastic.co/logstash/logstash:8.9.2

SALIN logstash.conf /usr/share/logstash/pipeline/logstash.conf

Dalam contoh yang diberikan, kami mentakrifkan imej asas sebagai imej Logstash rasmi menggunakan versi 8.9.2.

Kami kemudian menyalin fail 'logstash.conf' yang kami buat ke /usr/share/logstash/pipeline/logstash.conf dalam imej.

Bina Imej Docker

Seterusnya, navigasi ke direktori yang mengandungi fail konfigurasi Dockerfile dan Logstash. Jalankan arahan berikut untuk membina imej:

$ binaan buruh pelabuhan -t custom-logstash-image .

Jalankan Bekas Logstash

Sekarang setelah kami membina imej Docker, kami boleh menjalankan bekas Logstash menggunakan arahan 'run' Docker seperti berikut:

$ lari berlabuh -d --nama imej-logstash-pelayan tersuai

Ini sepatutnya menjalankan bekas Logstash menggunakan imej yang kami bina dalam langkah sebelumnya.

Sahkan Log Bekas Logstash

Untuk mengesahkan bahawa Logstash berjalan dengan betul, anda boleh menyemak log bekas menggunakan arahan berikut:

$ log docker < nama_bekas >

Pengeluaran:

Kesimpulan

Dalam tutorial ini, anda mempelajari cara anda boleh menyediakan pelayan Logstash dengan cepat yang berjalan sebagai Docker menggunakan fail konfigurasi tersuai. Kami mengesyorkan anda menyemak dokumentasi pada parameter imej dan pilihan konfigurasi.