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

Panduan ini akan fokus pada cara menginstal Logstash 7 di Fedora 30/Fedora 29/CentOS 7 sebagai kelanjutan dari panduan kami tentang cara mengatur Elastic Stack 7 di Fedora 30/Fedora 29/CentOS 7.

Pemasangan dua komponen pertama Elastic Stack, Elasticsearch dan Kibana telah dibahas dalam panduan kami sebelumnya;

Instal Elasticsearch 7 di Fedora 30

Instal Elasticsearch 7.x di CentOS 7/Fedora 29

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

Setelah Anda menginstal Elasticsearch dan Kibana, lanjutkan untuk menginstal Logstash.

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

Prasyarat

Sebagai prasyarat, Logstash membutuhkan Java 8 atau Java 11. Anda dapat menginstal Java 8 di Fedora 30/Fedora 29/CentOS 7 dengan menjalankan perintah di bawah ini;

yum install java-1.8.0-openjdk.x86_64

Setelah instalasi selesai, Anda dapat memverifikasi versi seperti di bawah ini;

java -version openjdk version "1.8.0_212" OpenJDK Runtime Environment (build 1.8.0_212-b04) OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

Jika Anda perlu menggunakan Java 11, instal seperti yang ditunjukkan di bawah ini;

dnf install java-11-openjdk.x86_64

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

Seperti yang dinyatakan sebelumnya, ini adalah kelanjutan dari panduan kami tentang cara mengatur Elastic Stack di Fedora 30/Fedora 29/CentOS 7. Oleh karena itu, kami telah membuat repo Elastic Stack di server kami. Namun Anda dapat membuat repo Elastic 7.x dengan menjalankan perintah di bawah ini;

  • Impor kunci penandatanganan GPG Repo Elastis
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
  • Buat Repo 7.x Elastis
cat > /etc/yum.repos.d/elastic-7.x.repo << EOF [elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF

Dan sekarang Anda cukup menginstal Logstash menggunakan manajer paket YUM/DNF.

yum install logstash

Menguji Logstash

Untuk menguji penginstalan Logstash Anda, jalankan pipeline Logstash paling dasar.

cd /usr/share/logstash/bin/
./logstash -e 'input { stdin { } } output { stdout {} }'

Setelah Anda melihat, Pipeline main dimulai, ketik string apa saja dan tekan ENTER.

... [INFO ] 2019-06-29 15:12:32.023 [Ruby-0-Thread-1: /usr/share/logstash/lib/bootstrap/environment.rb:6] agent - Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]} [INFO ] 2019-06-29 15:12:32.821 [Api Webserver] agent - Successfully started Logstash API endpoint {:port=>9600} Hello world...

Logstash menambahkan informasi stempel waktu dan alamat host ke pesan.

... { "host" => "elastic.example.com", "@version" => "1", "message" => "Hello world", "@timestamp" => 2019-06-29T12:13:06.994Z }...

Hentikan Logstash dengan menekan Ctrl+D.

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

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

Buat file konfigurasi input Logstash. Dalam panduan ini, Beats digunakan sebagai pengirim data. Oleh karena itu, 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

Konfigurasikan 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;

Jun 29 13:19:13 fedora29 sshd[2764]: Failed password for root from 192.168.43.17 port 40284 ssh2 Jun 29 13:13:31 fedora29 sshd[2598]: Accepted password for root from 192.168.43.17 port 40182 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" } } 

Garis, if [fileset][module] == “system”, if [fileset][name] == “auth”akan digunakan untuk menentukan untuk meminta Logstash menerapkan filter Grok pada acara yang dikirim oleh modul ini. Namun, saya menggunakan ini dan Pola Grok saya gagal mengekstrak bidang data. Jika Anda memiliki ide tentang ini, tulis di komentar.

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.

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 host yang sama.

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}" }}

Semua dalam satu file konfigurasi Logstash

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" } } ou
tput { elasticsearch { hosts => ["localhost:9200"] manage_template => false 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.

Pelajari cara men-debug Filter Logstash Grok dengan mengikuti tautan di bawah ini;

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...

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/configuration-file.conf --path.settings /etc/logstash/

Menjalankan Logstash

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

systemctl start logstashsystemctl enable logstash

Pada CentOS 7, jika Anda mencoba memulai Logstash dan mendapatkan error, Unit logstash.service could not be found, jalankan perintah di bawah ini untuk menghasilkan file unit systemd.

/usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd

Untuk memeriksa /var/log/logstash/logstash-plain.log file log untuk setiap error konfigurasi logstash.

Jika Firewalld sedang berjalan dan Anda ingin menerima data peristiwa dari sistem jarak jauh, pastikan bahwa TCP 5044.

firewall-cmd --add-port=5044/tcp --permanent firewall-cmd --reload

Setelah Anda selesai dengan konfigurasi, lanjutkan untuk menginstal dan mengkonfigurasi pengirim data Filebeat. Lihat panduan kami selanjutnya tentang cara menginstal Filebeats di Fedora 30/Fedora 29/CentOS 7.

Instal Filebeat di Fedora 30/Fedora 29/CentOS 7

Itu saja tentang cara menginstal dan mengkonfigurasi Logstash 7 di Fedora 30/Fedora 29/CentOS 7.

Referensi:

Memulai dengan Logstash

Tutorial Terkait;

Instal dan Konfigurasikan Logstash 7 di Ubuntu 18/Debian 9.8

Instal dan Konfigurasi Filebeat 7 di Ubuntu 18.04/Debian 9.8

Instal Elastic Stack 7 di Ubuntu 18.04/Debian 9.8

Instal Elasticsearch 7.x di Ubuntu 18.04/Debian 9.8