Tutorial Instalasi Elasticsearch, Logstash dan Kibana (ELK Stack) Pada Ubuntu 14.04

Saturday, March 26th, 2016 - Tutorial
Advertisement

elk memePada tutorial kali ini, penulis akan membagikan cara melakukan instalasi Elasticsearch, Logstash dan Kibana atau yang dikenal dengan ELK Stack. Kita juga akan sama sama belajar bagaimana mengkonfigurasi ELK untuk mengumpulkan dan memvisualisasikan syslog dari sebuah sistem pada lokasi yang tersentralisasi, menggunakan Filebeat. Logstash merupakan sebuah perangkat lunak open source untuk mengumpulkan dan memparsing log, kemudian disimpan untuk dipergunakan di masa mendatang. Kibana akan menampilkan log yang diindex oleh Logstash tadi dengan grafik yang sangat baik dalam bentuk web interface. Kedua tool tersebut berbasis Elasticsearch yang dipergunakan untuk menyimpan log.

tutorial elasticsearch kibana logstash ubuntu

tutorial elasticsearch kibana logstash ubuntu

Log yang tersentralisasi sangat berguna jika suatu saat seorang sysadmin atau DevOps akan melakukan identifikasi masalah pada server atau aplikasi. Hal tersebut membuat mereka mampu mencari historical data melalui satu tempat yang terpadu. Logstash sangat mungkin untuk dipakai pada log log lain seperti log nginx, apache, varnish, haproxy, namun pada konteks kali ini kita akan membahas syslog saja.

Komponen utama ELK :

  1. Logstash : memproses log yang datang
  2. Elasticsearch : menyimpan semua log
  3. Kibana : Web interface untuk mencari dan memvisualisasikan log
  4. Filebeat : mengirim log ke logstash. Berfungsi sebagai shipping agent untuk log. Menggunakan lumberjack networking protocol untuk berkomunikasi dengan logstash. Filebeat akan dipasang di server yang mempunyai log (yang akan diproses)

ELK

Kebutuhan minimal adalah RAM sebanyak 4 GB dan CPU 2 core

Install Java 8

Elasticsearch dan Logstash membutuhkan Java, maka kita akan menginstallnya. Kita akan menginstal versi terbaru dari Oracle Java 8 karena Elasticsearch merekomendasikannya.

Tambahkan PPA Oracle Java :

Update database package apt :

Install versi terbaru Oracle Java 8.

Install Elasticsearch

Elasticksearch dapat diinstal dengan menambahkan source list nya Elastic ke package manager.

Jalankan command di bawah untuk import public GPG key nya Elasticseach ke APT :

Buat source list nya :

Lalu tinggal install elasticsearch dengan perintah ini :

Lakukan sedikit konfigurasi pada elasticsearch :

Kita perlu juga memproteksi port Elasticsearch (port 9200) agar tidak ada orang lain yang dapat membaca atau men- shutdown Elasticsearch kita via HTTP API. Caranya adalah mengubah nilai network.host menjadi hanya untuk localhost :

Simpan file elasticsearch.yml

Start Elasticsearch : sudo service elasticsearch restart

Jika ingin Elasticsearch dijalankan setiap kali mesin menyala (boot up) :

Install Kibana

Kibana dapat dipasang dengan menambahkan source list milik Elastic :

Update database apt :  sudo apt-get update

Pasang kibana dengan perintah ini :

Lakukan sedikit konfigurasi pada kibana :

Pada konfigurasi kibana temukan opsi server.host dan gantikan 0.0.0.0 menjadi localhost :

Simpan dan restart kibana :

Lalu masukkan kibana jadi service yang nyala setiap kali boot up :

Sebelum kita menggunakan web interface milik Kibana, kita akan melakukan konfigurasi reverse proxy dengan Nginx.

Install Nginx

Karena kibana dikonfigurasi untuk listen di localhost, maka kita akan melakukan konfigurasi reverse proxy untuk memperbolehkan akses dari eksternal. Kita akan menggunakan nginx untuk keperluan ini. Instalasi nginx dapat dibaca pada bagian pemasangan nginx pada tutorial pemasangan LEMP stack di artikel sebelumnya.  Abaikan bagian lain dan kerjakan hanya untuk nginx. Atau hanya lakukan instalasi nginx sederhana seperti ini :

kita akan membutuhkan paket apache2-utils hanya untuk keperluan memasang fungsi htpasswd untuk memproteksi akses ke kibana. Kita akan membuat user “adminkibana” dan anda dapat mengubahnya sesuai selera 🙂

Masukkan password ketika ada prompt password. Ingat password ini dan akan dibutuhkan seketika kita akan mengakses kibana.

Lalu buka dan lakukan konfigurasi nginx server block :

Hapus isi file dan paste ini, jangan lupa ubah nilai server_name sesuai dengan nama server anda :

Simpan dan restart nginx :

Sekarang kibana dapat diakses via Domain (FQDN) atau IP server web nya.

Install Logstash

Seperti langkah sebelumnya, tambahkan source list Elastic :

Lalu install logstash

Buat Sertifikat SSL

Karena kita akan menggunakan Filebeat untuk mengirimkan log dari client server (server yang akan dikumpulkan lognya) ke ELK server, maka kita membutuhkan sertifikat SSL dan key pair. Sertifikat ini digunakan Filebeat untuk memverifikasi identitas ELK server. :

Ada 2 opsi untuk membuat sertifikat SSL, menggunakan DNS atau IP address

Menggunakan IP Address (Opsi Pertama)

Untuk menggunakan IP Address dari ELK Server maka dibutuhkan konfigurasi subjectAltName (SAN) :

Temukan [ v3_ca ] pada file dan ganti dengan IP address ELK

Simpan dan keluar

Lalu generate SSL certificate dan private key :

File logstash-forwarder.crt akan di copy ke semua server yang mengirim log ke Logstash. Kita akan lakukan nanti

Menggunakan FQDN / DNS (Opsi ke dua)

Jika menggunakan DNS atau FQDN maka jadi seperti ini :

File logstash-forwarder.crt akan di copy ke semua server yang mengirim log ke Logstash. Kita akan lakukan nanti

Konfigurasi Logstash

File konfigurasi logstash berbentuk json. Ada di /etc/logstash/conf.d berisikan 3 bagian : inputs, filters dan outputs

Mari membuat sebuah file konfigurasi untuk filebeat input :

Masukkan konfigurasi berikut :

Simpan dan keluar. Konfigurasi ini menunjukkan bahwa beats input akan listen di port tcp 5044 dan menggunakan sertifikat SSL dan private key yang sebelumnya kita generate.

Lalu buat lagi sebuah konfigurasi untuk menambahkan filter pada syslog :

Masukkan filter sebagai berikut :

Simpan dan keluar. Filter ini akan menggunakan grok untuk memparsing log yang datang (syslog) untuk membuatnya lebih terstruktur dan gampang di query.

Yang terakhir adalah bagian output.

Masukkan konfigurasi output :

Simpan dan keluar. Konfigurasi ini memperbolehkan Logstash untuk menyimpan data dari input beats pada Elasticsearch yang berjalan pada localhost:9200

Jika ingin menambahkan filter untuk aplikasi lain yang menggunakna Filebeat sebagai input, pastikan menamai file sehingga file tersebut berurutan diantara input dan output (misalnya 02- dan 30-)

Lakukan tes terhadap konfigurasi logstash :

Jika berhasil maka akan muncul pesan Configuration OK. Periksa kembali konfigurasi jika terdapat pesan error dan kesalahan.

Buat Kibana Dashboards

Elastic menyediakan berbagai contoh atau sampel Kibana dashboards dan Beats index pattern yang dapat membantu kita untuk belajar bagaimana Kibana dashboard dikonfigurasi. Pertama download sample dashboards :

Nah, perintah di atas akan me- load index pattern :

  • [packetbeat-]YYYY.MM.DD
  • [topbeat-]YYYY.MM.DD
  • [filebeat-]YYYY.MM.DD
  • [winlogbeat-]YYYY.MM.DD

Saat memulai menggunakan kibana, kita akan memilih Filebeat index pattern sebagai pattern default.

Muat Filebeat Index Template Pada Elasticsearch

Karena kita akan menggunakan Filebeat untuk mengirim log ke Elasticsearch, kita harus memuat Filebeat index template. File Index template akan berisikan konfigurasi agar Elasticsearch dapat melakukan analisa terhadap field field Filebeat yang datang secara cerdas.

Muat template ini :

Kita akan mendapatkan pesan seperti ini jika berhasil :

Sekarang ELK Server kita sudah siap menerima data dari Filebeat. Mari kita lakukan setup Filebeat pada masing – masing client server yang akan mengirimkan lognya untuk diolah

Pemasangan dan Konfigurasi Filebeat (Pada sisi Client Server)

Lakukan langkah berikut ini untuk semua client server yang diharapkan mengirim lognya untuk diolah di ELK Server

Copy Sertifikat SSL

Pada ELK Server, salin via scp sertifikat SSL yang sudah dibuat sebelumnya ke client server :

Taruh sertifikat tadi ke lokasi yang tepat

Lalu install paket Topbeat :

Install Paket Filebeat

Pada client server, buat Beats source list :

Gunakan GPG key yang sama dengan paket – paket Elastic yang sebelumnya

Lalu install paket Filebeat :

Konfigurasi Filebeat

Sekarang kita akan melakukan konfigurasi Filebeat untuk menghubungkan dengan Logstash yang ada di ELK server.

Ingat, konfigurasi filebeat menggunakan format yml dimana indentasi (tab dan spasi) menjadi sangat penting untuk diperhatikan.

Pada awal file kita akan melihat prospectors, sebuah bagian dimana kita akan mendefinisikan prospectors yang akan menspesifikasikan log mana yang akan dikirimkan dan bagaimana log tersebut akan dihandle. Setiap prospector akan diindikasikan dengan karakter dash atau –

Kita akan memodifikasi prospector yang ada untuk mengirimkan syslog dan auth.log ke Logstash pada ELK Server. Ubah path jadi seperti ini :

Pada baris document_type , uncomment dan ubah nilainya menjadi syslog :

Lalu, ada bagian output  temukan baris berisikan elasticsearch: yang mengindikasikan output Elasticsearch. Hapus atau comment semua bagian output Elasticsearch tersebut hingga bagian yang menuliskan #logstash:

Temukan dan uncomment bagian #logstash:  tersebut. Pada bagian ini , uncomment host: ["localhost:5004"] . Ubah localhost ke IP dari ELK Server atau DNS nya.

Tambahkan opsi ini dibawah hosts (dengan indentasi yang sama levelnya) :

Lalu temukan bagian tls dan uncomment. :

Simpan dan keluar.

Restart Filebeat dan aktifkan selalu Filebeat service ketika mesin boot up

Jika anda tidak yakin soal konfigurasi Filebeat ini, unduh dan contoh konfigurasi Filebeat di sini : https://gist.githubusercontent.com/thisismitch/3429023e8438cc25b86c/raw/de660ffdd3decacdcaf88109e5683e1eef75c01f/filebeat.yml-ubuntu

Tes Filebeat

Jika ELK Server sudah dikonfigurasi dengan benar, Filebeat akan mengirimkan log ke Logstash yang ada di ELK Stack. Dan Logstash seharusnya akan memuat Filebeat data ke Elasticsearch pada date-stamped index : filebeat-YYYY.MM.DD

Pada ELK Server, pastikan bahwa Elasticseach benar menerima data dengan men- query data filebeat :

Lalu akan muncul output seperti ini :

Jika output yang keluar menunjukkan 0 total hits maka Elasticsearch tidak memuat log apapun. Periksa kembali. Lanjutkan ke langkah berikut jika output yang diterima sesuai dengan ekspektasi.

Buka Kibana

Setelah mengonfigurasi Filebeat pada semua server, mari kita lihat Kibana.

Buka kibana pada web browser dengan IP address atau DNSnya. Masukkan user adminkibana dan passwordnya. Lalu kita akan menemukan sebuah halaman yang meminta kita untuk mengonfigurasi default index pattern :

1-filebeat-index

Lanjutkan dan pilih [filebeat]-YYYY.MM.DD dari menu index pattern pada sisi kiri layar. Lalu klik bintang (set as default index)

Lalu klik Discover pada navigasi atas. Lalu secara default akan menampilkan log data 15 menit terakhir.

Coba hal berikut :

  • cari “root” untuk mengetahui apakah ada orang yang login ke server kita menggunakan user root
  • cari host name (host: “hostname”)
  • Ubah time frame dengan menyeleksi area pada histogram.
  • Klik pada pesan dibawah histogram untuk melihat bagaimana data difilter

Eksplorasi kibana lebih jauh dan temukan bentuk laporan atau grafik yang sesuai dengan kebutuhan. Selamat Mencoba

Incoming search terms:

  • apa itu ELK ?
  • apa itu kibana
  • elk stack indonesia
Advertisement
Tutorial Instalasi Elasticsearch, Logstash dan Kibana (ELK Stack) Pada Ubuntu 14.04 | Jsmith | 4.5
Like Page Tutorlinux di Facebook
Leave a Reply