install ELK (elastic, logstash, kibana) with elastalert on k8s

posted in: container, docker, kubernetes, no sql | 0

halo sobat sekolahlinux, kali ini saya akan coba memberikan sedikit tutorial bagaimana install ELK di kubernetes dan juga bagaimana cara memasang alert pada elastic dengan elastalert, oke yuk langsung masuk ke materinya.

 

Install HELM

pada step ini saya akan menggunakan tool helm untuk installasi elk pada k8s, sebelumnya sobat perlu mendownload dan install helm 3, untuk tutorial install helmnya sobat bisa lihat url dibawah ini

  • https://helm.sh/docs/intro/install/

 

Setup ELK (elastic, logstash, kibana) with HELM

selanjutnya sobat perlu menambahkan repo helm milik elastic, yang mana repo ini nantinya sobat akan gunakan untuk install elasticsearch, logstash dan kibana

oh iya pada saat saya membuat tutorial ini saya menggunakan chart & app elasticsearch, logstash & kibana versi 7.9.1, untuk melihat semua versi yang ada di repo sobat bisa menggunakan perintah dibawah ini

lalu jika sobat ingin melihat version yang terpasang saat ini sobat bisa menggunakan perintah dibawah

selanjutnya kita perlu download values dari elasticsearch, logstash dan kibana degan command dibawah ini

jika sudah sekarang coba buka values elastic.yaml dan coba lihat pada bagian paramater ini dibawah ini dan sesuaikan valuesnya dengan yang ada dibawah ini

lalu selanjutnya buka values logstash.yaml dan coba lihat pada bagian paramater ini dibawah ini dan sesuaikan valuesnya dengan yang ada dibawah ini, pada filter saya menambahkan grok untuk parsing log access dan error nginx

lalu selanjutnya buka values kibana.yaml dan coba lihat pada bagian paramater ini dibawah ini dan sesuaikan valuesnya dengan yang ada dibawah ini

selanjutnya jika sudah jalankan perintah dibawah ini untuk installasinya

 

Setup Elastalert

untuk setup elastalert ini kita akan menggunakan beberapa file manifest k8s yang kamu bisa download di

  • https://github.com/akbaribnu/elk-with-elastalert/tree/master/elastalert

download 3 file dari repo diatas yaitu file

file configmap-config.yaml berisi config elastalert config.yaml, kurang lebih isinya seperti dibawah ini, dan untuk referensi lengkapnya kalian bisa mengunjungi doc dari elastalert di https://elastalert.readthedocs.io/en/latest/running_elastalert.html#downloading-and-configuring

file configmap-rules.yaml berisi config rule alert elastalert http_404.yaml & http_200.yaml, kurang lebih isinya seperti dibawah ini, dan ini bisa kalian tambahkan dan rubah, untuk referensi lengkapnya kalian bisa mengunjungi doc dari elastalert di https://elastalert.readthedocs.io/en/latest/running_elastalert.html#creating-a-rule

lalu pada file deployment.yaml berisi paramater seperti dibawah ini

selanjutnya kalian bisa apply 3 file diatas

selanjutnya coba lihat pod di k8s

jika sudah maka selanjutkan jalankan perintah dibawah ini untuk masuk kedalam pod elastalert

selanjutnya dari dalam pods jalankan perintah elastalert-create-index untuk generate indices pada elastic, seperti dibawah ini

maka jika sudah, kita bisa lihat indices hasil generate elastic seperti pada gambar dibawah ini

selanjutnya kita tinggal simulasikan web server nginx yang sudah terpasang filebeat yang mengarah ke logstash di k8s untuk mendapatkan error 404, dalam hal ini saya melakukan random curl pada web server

lalu jika sudah coba cek log pods elastalert-sekolahlinux-5bf9fc689c-ntgqg, maka kurang lebih log nya akan seperti dibawah ini

dan alert di slack pun akan muncul seperti dibawah ini

sekian tutorial kali ini, terimakasih sudah membaca 😀

source git elastalert bisa kamu lihat di:

docker image elastalert yang saya buat bisa kamu temukan disini:

Leave a Reply

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