Instal dan Konfigurasikan Logstash 7 di Ubuntu 18/Debian 9.8

Panduan ini akan fokus pada cara menginstal dan mengkonfigurasi Logstash 7 di Ubuntu 18.04/Debian 9.8 sebagai kelanjutan dari panduan kami tentang cara mengatur Elastic Stack 7 di Ubuntu 18.04/Debian 9.8. Kami telah membahas instalasi Elasticsearch dan Kibana.

Instal Elasticsearch 7.x di Ubuntu 18.04/Debian 9.8

Instal Kibana 7 di Ubuntu 18.04/Debian 9.8

Menurut urutan instalasi, Logstash adalah komponen ketiga dalam baris. Perhatikan bahwa agar Elastic Stack berfungsi dengan baik, versi semua komponen harus cocok.

Instal dan Konfigurasikan Logstash 7 di Ubuntu 18/Debian 9.8

Prasyarat

Sebagai prasyarat, Logstash memerlukan Java 8 atau Java 11. Namun, menurut Elastic.co, masalah dengan paket instalasi Debian atau RPM dan Java 11. Kami sedang menyelidiki dan melacak di  Edisi #10593. Oleh karena itu, kami akan menggunakan Java 8 dalam panduan ini.

java -version openjdk version "1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

Jika Java belum terinstal, Anda dapat memeriksa cara menginstal Java 8 di Ubuntu 18.04/Debian 9.8 dengan mengikuti tautan di bawah ini;

Instal Java 8 di Ubuntu 18.04

Instal Logstash

Seperti yang dinyatakan sebelumnya, ini adalah kelanjutan dari panduan kami tentang cara mengatur Elastic Stack di server Ubuntu/Debian. Oleh karena itu, kami telah membuat repo Elastic Stack di server kami dan dengan demikian kami dapat menginstal Logstash menggunakan manajer paket APT.

apt install logstash

Mengonfigurasi Logstash

Setelah instalasi selesai, lanjutkan untuk mengkonfigurasi Logstash. Pipa pemrosesan data logstash memiliki tiga bagian;

  • INPUT: bagian input digunakan untuk menyerap data dari titik akhir yang berbeda ke dalam Logstash.
  • FILTERS: yang memproses dan mengubah data yang diterima.
  • OUTPUT: yang menyimpan data yang diproses ke tujuan tertentu, yang dapat berupa Elasticsearch.

Anda dapat membaca lebih lanjut tentang Pipa Logstash di sini.

Saat mengonfigurasi Logstash, Anda dapat memiliki file konfigurasi terpisah masing-masing untuk INPUT, FILTER, dan OUTPUT. Anda juga dapat memiliki file konfigurasi tunggal untuk semua bagian. Panduan ini menggunakan file konfigurasi terpisah.

Konfigurasikan plugin Masukan Logstash

Untuk memulai, buat file konfigurasi untuk menentukan bagaimana data akan diserap ke dalam Logstash. Misalnya, untuk mengonfigurasi Logstash agar menerima data dari Beats pada port TCP 5044, buat file konfigurasi input, katakan,/etc/logstash/conf.d/beats-input.conf, dengan konten di bawah ini;

vim /etc/logstash/conf.d/beats-input.conf
input { beats { port => 5044 } }

Konfigurasi Filter Logstash

Sekarang kita telah mendefinisikan plugin Logstash Input sebagai Beats. Oleh karena itu, lanjutkan untuk mengonfigurasi plugin filter untuk memproses peristiwa yang diterima dari ketukan. Panduan ini menggunakangrokplugin filter. Anda dapat membaca tentang plugin lain di sini.

Untuk tujuan demonstrasi, kami akan mengonfigurasi ketukan untuk mengumpulkan peristiwa otentikasi SSH dari sistem Ubuntu/CentOS. Oleh karena itu, kita akan membuat filter untuk memproses peristiwa semacam itu seperti yang ditunjukkan di bawah ini.

vim /etc/logstash/conf.d/ssh-auth-filter.conf

Pola grok yang digunakan dalam contoh ini cocok dengan baris log autentikasi ssh di bawah ini;

May 1 13:15:23 elk sshd[1387]: Failed password for testuser from 192.168.0.102 port 60004 ssh2May 1 13:08:30 elk sshd[1338]: Accepted password for testuser from 192.168.0.102 port 59958 ssh2
filter { grok { match => { "message" => "%{SYSLOGTIMESTAMP:timestamp}s+%{IPORHOST:dst_host}s+%{WORD:syslog_program}[d+]:s+(?<status>w+s+password)s+fors+%{USER:auth_user}s+froms+%{SYSLOGHOST:src_host}.*" } add_field => { "activity" => "SSH Logins" } add_tag => "linux_auth" } }

Kibana 7 hadir dibundel dengan Grok Debugger yang mirip dengan herokuapp grokdebugger. Anda dapat mengakses debugger Kibana Grok di bawahDev Tools > Grok Debugger. Anda dapat memanfaatkan ini untuk menghasilkan pola grok yang benar. Anda juga dapat memeriksa pola grok logstash umum di sini.

Juga untuk tujuan membuat demo sederhana, kami akan menambahkan filter untuk menghapus semua acara yang tidak cocok dengan filter grok kami untuk acara otentikasi SSH yang digunakan di atas;

if "_grokparsefailure" in [tags] { drop {} }

Sehingga filter kami terlihat seperti;

filter { grok { match => { "message" => "%{SYSLOGTIMESTAMP:timestamp}s+%{IPORHOST:dst_host}s+%{WORD:syslog_program}[d+]:s+(?w+s+password)s+fors+%{USER:auth_user}s+froms+%{SYSLOGHOST:src_host}.*" } add_field => { "activity" => "SSH Logins" } add_tag => "linux_auth" }  if "_grokparsefailure" in [tags] { drop {} } }

Konfigurasikan Keluaran Logstash

Ada berbagai plugin keluaran yang memungkinkan Logstash mengirim data peristiwa ke tujuan tertentu. Panduan ini menggunakanelasticsearch yang memungkinkan Logstash mengirim data ke Elasticsearch.

Buat file konfigurasi output Logstash dengan konten di bawah ini. Konfigurasi ini mengirimkan data ke Elasticsearch yang berjalan di localhost. Indeks mendefinisikan indeks untuk menulis acara,logstash-%{+YYYY.MM.dd} adalah indeks default.

Jika Elasticsearch mendengarkan pada interface non-loopback, ganti localhost, hosts => [“localhost:9200″] dengan IP interface, misalnya; tuan rumah => [“192.168.0.101:9200″]

vim /etc/logstash/conf.d/elasticsearch-output.conf
output { elasticsearch { hosts => ["192.168.0.101:9200"] manage_template => false index => "ssh_auth-%{+YYYY.MM}" }}

Sejauh ini kami telah menggunakan file konfigurasi yang berbeda untuk setiap bagian Logstash. Jika Anda perlu meletakkannya dalam satu file, buat file konfigurasi seperti yang ditunjukkan di bawah ini;

vim /etc/logstash/conf.d/ssh-authentication.conf
input { beats { port => 5044 } } filter { grok { match => { "message" => "%{SYSLOGTIMESTAMP:timestamp}s+%{IPORHOST:dst_host}s+%{WORD:syslog_program}[d+]:s+(?<status>w+s+password)s+fors+%{USER:auth_user}s+froms+%{SYSLOGHOST:src_host}.*" } add_field => { "activity" => "SSH Logins" } add_tag => "linux_auth" } if "_grokparsefailure" in [tags] { drop {} } } output { elasticsearch { hosts => ["localhost:9200"] index => "ssh_auth-%{+YYYY.MM}" } }

Jika Anda perlu mengirim data acara ke output standar juga untuk keperluan debugging konfigurasi plugin, maka Anda akan menambahkan baris, stdout { codec => rubydebug } ke bagian konfigurasi keluaran.

output { elasticsearch { hosts => ["localhost:9200"] index => "ssh_auth-%{+YYYY.MM}" } stdout { codec => rubydebug } }

Anda juga dapat memeriksa contoh pipa Logstash di sini.

Jika Anda perlu men-debug Logstash Grok Filters untuk mengonfirmasi bahwa mereka benar-benar dapat mengurai log Anda ke bidang yang diperlukan, lihat tautan di bawah tentang cara men-debug filter Logstash Grok.

Cara Men-debug Filter Logstash Grok

Uji Konfigurasi Logstash

Setelah Anda selesai dengan konfigurasi, jalankan perintah di bawah ini untuk memverifikasi konfigurasi Logstash sebelum Anda dapat memulainya.

sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t Sending Logstash logs to /var/log/logstash which is now configured via log4j2.properties Configuration OK [2019-05-01T15:26:34,908][INFO ][logstash.runner ] Using config.test_and_exit mode. Config Validation Result: OK. Exiting Log
stash

Nah, jika Anda mendapatkan Configuration OK maka Anda baik untuk pergi.

Untuk menjalankan Logstash dan memuat file konfigurasi khusus untuk debugging, Anda dapat menjalankan perintah di bawah ini;

sudo -u logstash /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/config-file.conf

Menjalankan Logstash

Anda sekarang dapat memulai dan mengaktifkan Logstash untuk berjalan pada boot sistem.

systemctl start logstashsystemctl enable logstash

Anda juga dapat memeriksa file konfigurasi logstash untuk error apa pun, /var/log/logstash/logstash-plain.log.

Setelah Anda selesai dengan konfigurasi, lanjutkan untuk menginstal dan mengkonfigurasi pengirim data Filebeat.

Instal dan Konfigurasi Filebeat 7 di Ubuntu 18.04/Debian 9.8

Itu saja tentang cara menginstal dan mengkonfigurasi Logstash 7 di Ubuntu 18.04/Debian 9.8.

Referensi:

Memulai dengan Logstash

Panduan Terkait;

Instal Logstash 7 di Fedora 30/Fedora 29/CentOS 7

Instal Elastic Stack 7 di Fedora 30/Fedora 29/CentOS 7