Halo Guys, Ridwan here! Come again with a new notes update!
Kali ini saya mau berbagi sedikit catatan mengenai monitoring di dunia DevOps.
Sebagai SysAdmin atau DevOps Engineer, kita pasti sudah familiar dengan Prometheus untuk scraping metrics dari server menggunakan Node Exporter, Kali ini kita akan bahas tool yang serupa dengan itu.
Pernah kah, teman-teman mengalami laporan website/aplikasi error, tetapi setelah kita check singkat pada semua service (HTTP, DB, Network, lainnya) statusnya, running. Ternyata yang error pada beberapa function di API Endpoint.
Nah, bagaimana cara kita tahu kalau website atau API kita benar-benar bisa diakses oleh user dari ?
Server & servicenya mungkin running, tapi kalau aplikasinya / API timeout atau return 500, atau sedang high load jadi slow respond, atau juga ssl status nya ssl expired. Hal ini berdampak pada user menjadi tidak bisa akses kan?
Untuk menjawab kebutuhan tersebut, untuk selalu memantau website / API service dalam keadaan normal atau tidak nya, Kita perlu monitoring ini, Kita butuh tools "Blackbox Exporter."
Singkatnya, Blackbox Exporter ini memungkinkan kita untuk melakukan probing endpoint melalui berbagai protokol seperti HTTP, HTTPS, DNS, TCP, dan ICMP. Jadi kita bisa mengecek availability dan response time.
Yuk, langsung saja kita bahas cara setup-nya!
1. Persiapan & Instalasi Blackbox Exporter
Aplikasi ini bisa di-install dengan cara "Binary Install" atau dalam bentuk container menggunakan docker.
- Download Binary
https://github.com/prometheus/blackbox_exporter/releases
Create Systemd File (/etc/systemd/system/blackbox.service)
- Download Docker Images
https://hub.docker.com/r/prom/blackbox-exporter/
Docker command
docker run -d \
--name=blackbox_exporter \
-p 9115:9115 \
-v $(pwd)/blackbox.yml:/etc/blackbox_exporter/config.yml \
prom/blackbox-exporter --config.file=/etc/blackbox_exporter/config.yml
Setelah running, exporter ini akan berjalan di port 9115.
Yaps, tampilan hanya seperti, karena kita belum memberikan target endpoint untuk dimonitor.
Penasaran cara input target endpoint nya bagaimana ?
2. Konfigurasi Module (blackbox.yml)
Secara default, file blackbox.yml ini sudah cukup tidak perlu dilakukan edit-edit lagi.
hanya saya menambahkan parameter untuk menggunakan CA dari self-signed SSL.
3. Integrasi ke Prometheus
Jadi untuk target endpoint yang ingin di monitor oleh blackbox-exporte, di-input melalui prometheus. Berikut untuk config file "Prometheus.yml".
Setelah config prometheus ter'apply, dan status service Blackbox-exporter & Prometheus nya running.. Status tampilan dari port 9115 milik blacbkbox pages akan tampil seperti berikut :
4. Integrasi ke Grafana Dashboard
Setelah Blackbox-Exporter nya sudah berhasil memonitor beberapa target endpoint HTTP API tadi, selanjutnya kita akan membuat Grafana Dashboard untuk mem-visualisasikan data dari Blacbox-Exporter agar mudah dibaca oleh kita.
- Untuk dashboard ini, kalian bisa download pada Link berikut :
https://grafana.com/grafana/dashboards/7587-prometheus-blackbox-exporter/
Caranya cukup Import saja dashboard tersebut.
Ok, Sekian catatan kali ini, semoga kalian sudah berhasil melakukan monitoring HTTP / API respond dari aplikasi-aplikasi kalian.
Next, apakah kita jadikan alert ?
Thank you sudah membaca tulisan ini.. Semoga bermanfaat !
Rdw