Monitoring Server dengan Grafana & Prometheus
Panduan monitoring homelab dengan Grafana dan Prometheus. Install node_exporter, scrape metrics, buat dashboard, dan pasang alert supaya masalah ketahuan lebih awal.
Server homelab yang sudah jalan beberapa bulan biasanya mati pertama kali karena hal yang membosankan: disk penuh, RAM habis, atau proses yang menggantung. Monitoring tidak mencegah hal itu terjadi, tapi membuat kamu tahu sebelum semuanya berhenti bekerja.
Pilih Tool: Mengapa Grafana dan Prometheus
Pasangan Prometheus + Grafana adalah standar de-facto untuk homelab dan produksi:
- Prometheus mengumpulkan dan menyimpan metrik sebagai time series. Ringan, pull-based, tidak perlu agent tertentu untuk server klien.
- Grafana menampilkan metrik tersebut dalam dashboard yang bisa diatur dan berbagi akses.
Cara kerja dasarnya: tiap server menjalankan node_exporter yang mengekspos metrik lewat HTTP. Prometheus menarik (pull) metrik itu secara periodik, lalu Grafana membaca dari Prometheus untuk ditampilkan.
[Server 1: node_exporter :9100]
[Server 2: node_exporter :9100] -> [Prometheus :9090] -> [Grafana :3000]
1. Install node_exporter di Setiap Server
node_exporter adalah daemon kecil yang membuka port 9100 dan menampilkan metrik CPU, memori, disk, dan jaringan dalam format teks yang dipahami Prometheus.
# Download versi terbaru (cek halaman release resmi)
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar xzf node_exporter-1.8.2.linux-amd64.tar.gz
sudo mv node_exporter-1.8.2.linux-amd64/node_exporter /usr/local/bin/
# Jalankan sebagai service
systemctl start node_exporter
Jangan lupa buka port di firewall untuk akses dari server Prometheus saja, misalnya ufw allow from 192.168.1.10 to any port 9100.
2. Setup Prometheus
Prometheus bisa dijalankan lewat Docker, tapi pastikan storage-nya di volume agar metrik tidak ikut hilang saat container di-update.
# docker-compose.yml (prometheus + grafana)
version: "3.8"
services:
prometheus:
image: prom/prometheus:v2.53.0
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
- prometheus-data:/prometheus
restart: unless-stopped
grafana:
image: grafana/grafana:11.1.0
container_name: grafana
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=replace-with-strong-password
restart: unless-stopped
volumes:
prometheus-data:
grafana-data:
Lalu buat prometheus.yml. Di bagian scrape_configs kamu mendaftarkan target: Prometheus sendiri dan setiap node_exporter di jaringan.
global:
scrape_interval: 15s
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "node"
static_configs:
- targets:
- "192.168.1.13:9100"
- "192.168.1.14:9100"
3. Install Grafana dan Hubungkan ke Prometheus
Jalankan compose, tunggu sampai container sehat, lalu akses http://<server-ip>:3000. Login pertama memakai admin dan password yang sudah di-set di environment.
- Masuk ke Configuration > Data Sources
- Pilih Prometheus
- Isi URL dengan
http://prometheus:9090(nama service di compose) - Klik Save & test
- Import dashboard: Dashboards > Import, masukkan ID resmi
node-exporter-full(bisa dicari di grafana.com), pilih data source Prometheus
Import dashboard default sudah menampilkan CPU, RAM, disk, jaringan, dan suhu untuk semua node yang terdaftar.
4. Verifikasi Target Ter-Scrape
Metrik yang kosong biasanya bukan salah Grafana, tapi Prometheus tidak bisa menjangkau targetnya.
# Dari server tempat Prometheus jalan
curl http://localhost:9090/api/v1/targets | head
# Cek langsung satu metrik sederhana
curl http://localhost:9090/api/v1/query --data-urlencode 'query=up'
Output up bernilai 1 berarti target sehat, 0 berarti down. Prompt di sini langsung terlihat di dashboard.
5. Alert Sederhana Tanpa Alertmanager
Untuk pemberitahuan awal, kamu bisa pakai fitur Alerting bawaan Grafana dan langsung kirim ke chat atau email, tanpa perlu mempersulit dengan Alertmanager dulu.
Contoh aturan sederhana di Grafana: buat alert baru di dashboard disk usage, dengan kondisi nilai di atas 85% selama 5 menit, lalu set notification channel ke aplikasi chat atau webservice notifikasi.
Alert berfungsi kalau ada dua hal: kondisi yang jelas (nilai > ambang batas untuk durasi tertentu), dan channel yang benar-benar menyala. Test dulu dengan string flutter threshold yang sengaja dilanggar, misalnya set ambang 1% sebentar, lalu kembalikan.
6. Copy Pemantauan Opsional
- Prometheus blackbox_exporter untuk mengecek apakah web service dan port TCP merespons.
- Grafana Loki untuk menggabungkan log dari beberapa server dalam satu tempat.
- Uptime Kuma sebagai alternatif ringan jika hanya butuh pengecekan URL secara periodik.
Hal yang Perlu Diperhatikan
- Jangan ekspos Grafana/alert channel ke internet tanpa autentikasi. Dashboard homelab berisi detail jaringan yang sebaiknya privat, atau tutup dengan VPN/tunnel.
node_exporterbind ke0.0.0.0:9100secara default. Batasi akses di firewall agar hanya server Prometheus yang bisa menarik metrik.- Volume Prometheus dan Grafana bisa penuh kalau data dibiarkan menumpuk. Atur
retention_timedi Prometheus, misalnya 15 hari, dan pantau ukuran volume-nya.
Ringkasan
Monitoring yang baik adalah yang membuat kamu tahu ada masalah sebelum pengguna (atau kamu sendiri) menyadarinya. Mulai dari satu node, tambahkan scrape target baru setiap kali server baru masuk, dan pastikan alert yang terpasang pernah benar-benar teruji.
Dengan metrik-server yang terpantau, langkah berikutnya adalah mengunci pintunya: memastikan service dan akun yang jalan di homelab benar-benar aman. Lanjut ke Part 11: Hardening Security Server Homelab.
Artikel Terkait
Backup & Restore Homelab: Panduan Agar Data Tidak Hilang
Panduan lengkap backup dan restore homelab. Strategi 3-2-1, backup VM/LXC dengan Proxmox, backup Docker volume, dan cara memastikan backup bisa dipulihkan.
HomelabBeli Server Kantor atau Barebone Murah? Panduan Lengkap untuk Homelab dan Tempat Usaha
Panduan lengkap beli server bekas kantor atau barebone murah untuk homelab dan tempat usaha. Perbandingan harga, spesifikasi, dan tips memilih yang tepat.
HomelabCloudflare Tunnel: Akses Homelab dari Mana Aja Tanpa Port Forwarding
Panduan lengkap setup Cloudflare Tunnel untuk mengakses homelab dari mana saja. Aman, gratis, dan tidak butuh port forwarding.
Ide kamu layak dibaca ribuan orang.
ByteNesia dibangun untuk semua orang. Kalau kamu punya pengalaman, tutorial, atau opini tentang teknologi, tulis dan bagikan lewat sini. Nama kamu akan tercantum sebagai kontributor.
Tulis apa saja: review tools, tutorial homelab, tips security, atau cerita pengalaman tech kamu.