Cara Install Elastic (ELK) Stack di Ubuntu 20.04

Cara Install Elastic (ELK) Stack di Ubuntu 20.04

Elastic Stack atau ELK Stack adalah sekumpulan open source software yang memungkinkan kita untuk mencari, menganalisis, dan memvisualisasikan log. Praktik seperti ini biasanya disebut sebagai centralized logging. Centralized logging berguna ketika mencoba mengidentifikasi masalah yang terjadi pada server atau aplikasi.

Elastic Stack memiliki 4 komponen utama, yaitu:

  1. Elasticsearch: mesin pencari RESTful terdistribusi yang menyimpan semua data yang dikumpulkan
  2. Logstash: komponen pemrosesan data dari Elastic Stack yang mengirimkan daata masuk ke Elasticsearch
  3. Kibana: web interface untuk mencari dan memvisualisasikan log
  4. Beats: pengirim data yang bertugas untuk mengirim data dari mesin-mesin ke Logstash atau Elasticsearch

Pada tutorial ini, kita akan belajar bagaimana cara install Elastic Stack di Ubuntu 20.04. Filebeat, Beat yang bertugas untuk meneruskan dan memusatkan log dan file, mengonfigurasinya untuk mengumpulkan dan memvisualisasikan log sistem. Selain itu Kibana biasanya hanya tersedia di localhost, agar dapat mengaksesnya menggunakan domain akan mengonfigurasi Nginx sebagai reverse proxy ke Kibana.

Hardware Requirements

Minimum spesifikasi server yang direkomendasikan yaitu 2 CPU 4GB RAM dengan sistem operasi Ubuntu 20.04.

Install Java

Install Java dan paket lain yang dibutuhkan.

Memverifikasi hasil instalasi Java.

Install Elasticsearch

Import GPG key Elasticsearch.

Menambahkan Elasticsearch repository versi 7.x.

Update package list.

Install Elasticsearch.

Menjalankan elasticserach service.

Jika terjadi kegagalan pada saat start elasticsearch dengan pesan error Failed with result ‘timeout’, artinya service dihentikan karena tidak dapat berjalan setelah waktu default yang diberikan, waktunya perlu dinaikkan.

Membuka file konfigurasi elasticsearch.service.

Mengubah nilai TimeoutStartSec misalnya 300.

Membaca ulang konfigurasi systemd manager.

Menjalankan elasticsearch.

Mengecek status elasticsearch.

Menguji Elasticsearch dengan mengirimkan HTTP request melalui curl. Elasticsearch secara default berjalan di localhost dengan port 9200.

Install Kibana

Install Kibana.

Menjalankan Kibana service.

Mengecek status kibana.

Install Nginx

Install Nginx.

Membuat username “admin” dan password “rahasia” untuk autentikasi Kibana dashboard dan tersimpan ke dalam file “htpasswd.kibana”.

Membuat file konfigurasi Nginx untuk domain Kibana.

Masukkan konfigurasi berikut. Ubah DOMAIN dengan nama domain yang digunakan.

Mengecek konfigurasi Nginx apakah ada kesalahan.

Restart Nginx.

Install Let’s Encrypt untuk sertifikat SSL.

Request SSL untuk domain Kibana. Sesuaikan EMAIL dan DOMAIN.

Browse https://domain-kibana.

Kibana web interface
Kibana web interface

Install Logstash

Install Logstash.

Membuat file konfigurasi Filebeat input untuk Logstash.

Masukkan konfigurasinya, beats input akan listen di port TCP 5044.

Membuat file konfigurasi Elasticsearch output.

Masukkan konfigurasinya.

Menguji konfigurasi Logstash. Hasil akhirnya Configuration OK.

Menjalankan Logstash service.

Install Filebeat

Install Filebeat.

Membuka file konfigurasi Filebeat.

Disable output.elasticsearch dengan memberikan tanda komentar (#).

Enable output.logstash dengan menghapus tanda komentar (#).

Mengaktifkan Filebeat.

Menampilkan Filebeat module yang aktif dan tidak aktif.

Load pipeline untuk system module.

Load index template ke Elasticsearch.

Hasil akhirnya.

Saat dashboard di-load, Filebeat terhubung ke Elasticsearch untuk memeriksa infomasi versi. Untuk load dashboard saat Logstash aktif, nonaktifkan Logstash output dan aktifkan Elasticsearch output.

Hasil perintahnya.

Menjalankan Filebeat service.

Memverifikasi Elasticsearch apakah menerima data denga melakukan query terhadap Filebeat index.

Potongan hasil perintahnya.

Kibana Dashboard

Kembali ke Kibana dashboard dan siap dieskplorasi.

Kibana dashboard
Kibana dashboard

Selamat mencoba 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *