Analisis log selalu menjadi bagian penting dari administrasi sistem tetapi ini adalah salah satu tugas yang paling membosankan dan melelahkan, terutama ketika berurusan dengan sejumlah sistem. Untungnya, tumpukan ELK telah meringankan tugas, tumpukan ELK sekarang digunakan untuk pemeriksaan/analisis log &merupakan kombinasi dari tiga produk sumber terbuka berikut
- ElasticSearch -Ini adalah database No-SQL yang mengindeks dan menyimpan informasi
- Logstash – Ini adalah alat alur log yang mengumpulkan &mengurai log
- Kibana – Menyediakan GUI(Graphical User Interface) dan digunakan untuk visualisasi data &bekerja di atas elasticsearch.
ELK stack menerima log dari klien melalui protokol beats, dikirim dengan menggunakan beats client. Dalam tutorial ini, kita akan membuat ELK stack pada mesin Centos 7 &juga akan menginstal beat client bernama 'File Beat' pada Mesin Klien.
- 192.168.0.180 tumpukan rusa (CentOS 7)
- 192.168.0.70 klien (CentOS 7)
Prasyarat
Mesin tempat kita akan menginstal ELK harus memiliki Java versi 8 yang diinstal sebagai . Jadi pastikan java open-jdk versi 1.8.0_* telah terinstal dan berjalan dan jika belum terinstal, jalankan perintah yum di bawah untuk menginstal
[[email protected] ~]# yum install java-1.8.0-openjdk
[[email protected] ~]# java -version openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-b12) OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode) [[email protected] ~]#
Setel Nama Host dan perbarui file /etc/hosts
[[email protected] ~]# hostnamectl set-hostname "elk-stack.example.com"
Perbarui file /etc/hosts
192.168.0.180 elk-stack.example.com elk-stack
Langkah-Langkah Instalasi ELK Stack
Elasticsearch
Kita akan mulai dengan mengimpor kunci GPG untuk elasticsearch, kunci ini juga akan dibagikan dengan logstash &kibana. Untuk menginstal elasticsearch, jalankan
[[email protected] ~]# rpm –import https://packages.elastic.co/GPG-KEY-elasticsearch
[[dilindungi email] ~]#
Sekarang kita akan membuat repo untuk repositori elastic-search,
[[email protected] ~]# vi /etc/yum.repos.d/elasticsearch.repo [elasticsearch] name=Elasticsearch repository baseurl=http://packages.elastic.co/elasticsearch/2.x/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enabled=1
Setelah repositori ditambahkan, instal elasticsearch menggunakan yum,
[[email protected] ~]# yum install elasticsearch -y
Sekarang kita memulai layanan &juga akan diatur untuk memulai saat boot
[[email protected] ~]# systemctl daemon-reload [[email protected] ~]# systemctl start elasticsearch [[email protected] ~]# systemctl enable elasticsearch
Izinkan port 9200 tcp di firewall OS. Jika Firewall sedang berjalan
[[email protected] ~]# firewall-cmd --permanent --add-port 9200/tcp
Kami sekarang akan menguji elasticsearch untuk memastikan bahwa ia merespons kueri
[[email protected] ~]# curl -X GET http://localhost:9200
Output dari perintah di atas harus seperti di bawah ini:
Logstash
Kami sekarang akan menambahkan repositori logstash,
[[email protected] ~]# vi /etc/yum.repos.d/logstash.repo [logstash] name=Logstash baseurl=http://packages.elasticsearch.org/logstash/2.2/centos gpgcheck=1 gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch enabled=1
Sekarang instal logstash,
[[email protected] ~]# yum install logstash -y
Kibana
Sekarang kita akan membuat repositori untuk kibana,
[[email protected] ~]# vi /etc/yum.repos.d/kibana.repo [kibana-4.5] name=Kibana repository for 4.5.x packages baseurl=http://packages.elastic.co/kibana/4.5/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enabled=1
Sekarang instal kibana menggunakan yum,
[[email protected] ~]# yum install kibana -y
Setelah instalasi, mulai layanan &aktifkan saat boot
[[email protected] ~]# systemctl start kibana [[email protected] ~]# systemctl enable kibana
Izinkan port 5601 di OS Firewall
[[email protected] ~]# firewall-cmd --permanent --add-port 5601/tcp [[email protected] ~]# firewall-cmd --reload
Selanjutnya, kita akan mengakses halaman web untuk kibana untuk memastikannya berfungsi. Untuk melakukannya, buka browser web &masukkan url berikut
http://IP-Address:5601/
Pemasangan tumpukan ELK sekarang selesai &kami akan membuat konfigurasi yang diperlukan.
Konfigurasi
Sertifikat SSL untuk logstash
Setelah instalasi logstash, sekarang kita akan membuat sertifikat SSL untuk mengamankan komunikasi antara logstash &filebeat (klien). Karena kita akan menggunakan alamat IP untuk terhubung ke server, kita akan membuat sertifikat SSL untuk IP SAN.
Sebelum membuat sertifikat SSL, kami akan membuat entri IP kami di openssl.cnf,
[[email protected] ~]# vi /etc/pki/tls/openssl.cnf
dan cari parameter dengan 'subjectAltName' di bawah bagian [ v3_ca ] &tambahkan IP server Anda ke dalamnya,
subjectAltName = IP: 192.168.0.180
Sekarang ubah direktori ke /etc/ssl &buat sertifikat SSL dengan validitas 365 hari,
[[email protected] ~]# cd /etc/ssl/ [[email protected] ssl]# openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash_frwrd.crt Generating a 2048 bit RSA private key .....+++ ...........+++ writing new private key to 'logstash-forwarder.key' ----- [[email protected] ssl]#
Setelah sertifikat siap, ini harus disalin ke semua klien menggunakan perintah scp.
Mengonfigurasi Logstash
Sekarang kita akan membuat file konfigurasi untuk logstash di bawah folder ‘/etc/logstash/conf.d '. File ini akan dibagi menjadi tiga bagian yaitu bagian input, filter &output
[[email protected] ~]# vi /etc/logstash/conf.d/logstash.conf # input section input { beats { port => 5044 ssl => true ssl_certificate => "/etc/ssl/logstash_frwrd.crt" ssl_key => "/etc/ssl/logstash-forwarder.key" congestion_threshold => "40" } }
Bagian ini membuat logstash untuk mendengarkan pada port 5044 untuk log masuk &juga menyediakan detail sertifikat SSL untuk koneksi yang aman.
Bagian berikutnya yaitu 'bagian filter' akan mengurai log sebelum mengirimnya ke elasticsearch ,
# Filter section filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date { match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }
Bagian terakhir adalah 'bagian keluaran' &ini menentukan lokasi penyimpanan log,
# output section output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } }
Sekarang simpan file &keluar. Semua bagian ini juga dapat dibagi menjadi tiga file terpisah tetapi kami telah menggunakannya dalam satu file untuk kemudahan konfigurasi. Kami sekarang akan memulai layanan logstash &mengaktifkannya saat boot,
[[email protected] ~]# systemctl daemon-reload [[email protected] ~]# systemctl start logstash [[email protected] ~]# systemctl enable logstash
Izinkan port 5044 tcp di firewall OS dengan perintah berikut agar Logstash mendapatkan log dari Klien
[[email protected] conf.d]# firewall-cmd --permanent --add-port=5044/tcp success [[email protected] conf.d]# firewall-cmd --reload success [[email protected] conf.d]#
Menginstal Filebeat di Klien
Filebeat perlu diinstal pada setiap sistem yang kita perlukan untuk menganalisis log. Pertama-tama, Salin file sertifikat dari server elk-stack ke klien
[[email protected] ~]# scp /etc/ssl/logstash_frwrd.crt [email protected]:/etc/ssl
Untuk menginstal filebeat, pertama-tama kita akan menambahkan repo untuk itu,
[[email protected] ~]# vi /etc/yum.repos.d/filebeat.repo [beats] name=Elastic Beats Repository baseurl=https://packages.elastic.co/beats/yum/el/$basearch enabled=1 gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch gpgcheck=1
Sekarang instal filebeat dengan menjalankan di bawah perintah
[[email protected] ~]# yum install filebeat
Kami sekarang akan membuat perubahan pada file konfigurasi untuk menghubungkan klien filebeat ke tumpukan ELK kami, tetapi sebelum kami melakukannya, pastikan bahwa sertifikat yang kami buat selama konfigurasi logstash disalin pada klien di bawah direktori '/etc/ssl'. Setelah selesai, kita akan memulai konfigurasi filebeat,
[[email protected] ~]# vi /etc/filebeat/filebeat.yml
Kita perlu membuat perubahan pada tiga bagian berikut,
. . . paths: - /var/log/*.log - /var/log/secure - /var/log/messages . . .
Di bawah bagian ini, kita dapat mengizinkan log yang perlu dianalisis. Saya telah meninggalkannya secara default yaitu semua log tetapi Anda dapat memodifikasinya untuk mengirim hanya satu atau dua file log. Untuk bagian selanjutnya, ubah document_type menjadi ‘syslog’,
. . . document_type: syslog . . .
&di bagian terakhir yaitu 'output', kami akan menentukan alamat IP &lokasi server tumpukan ELK kami untuk sertifikat ssl,
. . . output: logstash: hosts: ["192.168.0.180:5044"] tls: certificate_authorities: ["/etc/ssl/logstash_frwrd.crt"] . . .
Catatan:Nonaktifkan elasticsearch output, beri komentar pada entri “hosts:[“localhost:9200″]” jika diaktifkan.
Sekarang mulai layanan &aktifkan saat boot,
[[email protected] ~]# systemctl restart filebeat [[email protected] ~]# systemctl enable filebeat
Itu saja, konfigurasi di kedua ujung server &ujung klien sekarang selesai. Sekarang kita dapat login ke antarmuka web kibana untuk mencari log yang dianalisis.
Buat Pola Indeks, ubah logstash-* ke filebeat-*
Klik Buat
Klik Discover lalu cari, kita akan mendapatkan log seperti di bawah ini
Itu saja dari artikel ini, Silakan bagikan umpan balik dan komentar Anda yang berharga.