Logstash adalah alat sumber terbuka dan gratis, serta platform analisis log paling populer di dunia untuk mengumpulkan, menguraikan, dan menyimpan log untuk penggunaan di masa mendatang. Logstash hadir dengan serangkaian plugin yang kaya dan bahasa template yang sangat ekspresif yang memudahkan untuk mengubah aliran data. Logstash adalah bagian dari tumpukan ELK, tetapi Anda juga dapat menggunakannya secara mandiri. Logstash memiliki kemampuan untuk menarik dari sumber data apa pun menggunakan plugin input, menerapkan berbagai transformasi data, dan mengirimkan data ke sejumlah besar tujuan menggunakan plugin output.
Dalam tutorial ini, kami akan menunjukkan cara menginstal dan mengkonfigurasi Logstash di server Ubuntu 18.04.
Prasyarat
- Server yang menjalankan Ubuntu 18.04.
- Kata sandi root dikonfigurasi di server Anda.
Memulai
Sebelum memulai, perbarui sistem Anda dengan versi terbaru. Anda dapat melakukannya dengan menjalankan perintah berikut:
apt-get update -y
apt-get upgrade -y
Setelah sistem Anda diperbarui, mulai ulang untuk menerapkan perubahan.
Instal Java
Sebelum menginstal Java, pastikan Anda telah menginstal Java 8 atau Java 11. Anda dapat menginstal Java 8 dengan perintah berikut:
apt-get install openjdk-8-jdk -y
Setelah menginstal Java, periksa versi Java menggunakan perintah berikut:
java -version
Anda akan melihat output berikut:
openjdk version "1.8.0_162" OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-1-b12) OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)
Instal Logstash
Sebelum menginstal Logstash, Anda harus menginstal Elasticsearch di server Anda. Secara default, Elasticsearch tidak tersedia di server Ubuntu 18.04. Jadi, Anda perlu menambahkan repositori untuk Elasticsearch.
Pertama, instal paket yang diperlukan dengan perintah berikut:
apt-get install apt-transport-https -y
Selanjutnya, unduh dan tambahkan kunci GPG Elasticsearch dengan perintah berikut:
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Selanjutnya, tambahkan repositori dengan perintah berikut:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
Selanjutnya, instal Elasticsearch dan Logstash dengan perintah berikut:
apt-get install elasticsearch logstash -y
Setelah kedua paket diinstal, mulai Logstash dan Elasticsearch, dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:
systemctl start logstash
systemctl enable logstash
systemctl start elasticsearch
systemctl enable elasticsearch
Anda juga dapat memeriksa status Logstash dengan perintah berikut:
systemctl status logstash
Anda akan melihat output berikut:
? logstash.service - logstash Loaded: loaded (/etc/systemd/system/logstash.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2019-11-20 10:13:22 UTC; 5s ago Main PID: 3790 (java) Tasks: 13 (limit: 1110) CGroup: /system.slice/logstash.service ??3790 /usr/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly Nov 20 10:13:22 ubuntu systemd[1]: Started logstash.
Secara default, Elasticsearch mendengarkan pada port 9200. Anda dapat memeriksanya dengan perintah berikut:
netstat -ant | grep 9200
Anda akan melihat output berikut:
tcp6 0 0 127.0.0.1:9200 :::* LISTEN tcp6 0 0 ::1:9200 :::* LISTEN
Konfigurasikan Logstash
Konfigurasi logstash adalah salah satu bagian yang paling menantang dari setiap administrator sistem. Konfigurasi logstash terdiri dari tiga bagian konfigurasi utama, Input Logstash, Filter Logstash, dan Output Logstash. Setiap bagian bertanggung jawab atas fungsi yang berbeda dan menggunakan plugin Logstash yang berbeda.
Konfigurasikan Masukan Logstash
Pertama, Anda perlu membuat file konfigurasi input beats-input.conf untuk menerima data dari Beats pada port TCP 5044:
nano /etc/logstash/conf.d/beats-input.conf
Tambahkan baris berikut:
input { beats { port => 5044 } }
Simpan dan tutup file setelah Anda selesai.
Konfigurasikan Filter Logstash
Selanjutnya, Anda perlu mengonfigurasi plugin filter untuk memproses peristiwa yang diterima dari ketukan. Di sini, kami akan mengonfigurasi ketukan untuk mengumpulkan peristiwa otentikasi SSH dari sistem Ubuntu. Untuk melakukannya, buat file konfigurasi filter baru ssh-auth-filter.conf:
nano /etc/logstash/conf.d/ssh-auth-filter.conf
Tambahkan baris berikut:
filter { grok { match => { "message" => "%{SYSLOGTIMESTAMP:timestamp}\s+%{IPORHOST:dst_host}\s+%{WORD:syslog_program}\[\d+\]:\s+(?\w+\s+password)\s+for\s+%{USER:auth_user}\s+from\s+%{SYSLOGHOST:src_host}.*" } add_field => { "activity" => "SSH Logins" } add_tag => "linux_auth" } }
Simpan dan tutup file setelah Anda selesai.
Konfigurasikan Keluaran Logstash
Selanjutnya, Anda perlu mengonfigurasi plugin keluaran untuk memungkinkan Logstash mengirim data peristiwa ke tujuan tertentu.
Di sini, kita akan membuat file konfigurasi output Logstash yang mengirimkan data ke Elasticsearch yang berjalan di localhost.
nano /etc/logstash/conf.d/elasticsearch-output.conf
Tambahkan baris berikut:
output { elasticsearch { hosts => ["localhost:9200"] manage_template => false index => "ssh_auth-%{+YYYY.MM}" } stdout { codec => rubydebug } }
Simpan dan tutup file setelah Anda selesai. Kemudian, restart layanan Logstash untuk menerapkan perubahan:
systemctl restart logstash
Uji Logstash
Logstash sekarang diinstal dan dikonfigurasi. Saatnya untuk menguji apakah itu berfungsi atau tidak.
Anda dapat memverifikasi konfigurasi Logstash dengan perintah berikut:
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
Jika semuanya baik-baik saja, Anda akan melihat output berikut:
Sending Logstash logs to /var/log/logstash which is now configured via log4j2.properties [2019-11-26T06:27:48,104][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.queue", :path=>"/var/lib/logstash/queue"} [2019-11-26T06:27:48,119][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.dead_letter_queue", :path=>"/var/lib/logstash/dead_letter_queue"} [2019-11-26T06:27:50,331][INFO ][org.reflections.Reflections] Reflections took 47 ms to scan 1 urls, producing 20 keys and 40 values Configuration OK [2019-11-26T06:27:51,899][INFO ][logstash.runner ] Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash
Selamat! Anda telah berhasil menginstal dan mengkonfigurasi Logstash di server Ubuntu 18.04.