Monitoring Server Linux dengan Prometheus dan Node Exporter
Halo DomaiNesians! Monitoring server adalah salah satu fondasi penting dalam menjaga stabilitas sistem, terutama jika kalian mengelola aplikasi yang terus-menerus menerima traffic atau menjalankan banyak service sekaligus. Tanpa monitoring yang baik, masalah seperti lonjakan CPU, memory leak, disk penuh, atau bottleneck jaringan sering kali baru diketahui setelah aplikasi mulai lambat atau bahkan down.
Pada server Linux standar, informasi performa sering kali hanya dapat dilihat menggunakan perintah manual seperti top, htop, free, iostat, atau df. Meskipun bermanfaat, metode ini tidak praktis untuk analisis jangka panjang. Di sinilah peran Prometheus menjadi penting sebagai solusi monitoring modern, scalable, dan mudah diintegrasikan dengan berbagai komponen.
Pada artikel kali ini, kita akan membahas secara lengkap bagaimana cara instalasinya, cara kerjanya, hingga bagaimana sistem monitoring ini digunakan untuk meningkatkan visibilitas performa server kalian.
Apa Itu Sistem Monitoring Server Prometheus?
Prometheus adalah sistem monitoring open-source berbasis time-series database yang fokus pada reliability, efisiensi, dan fleksibilitas. Dikembangkan oleh SoundCloud dan kini menjadi bagian dari Cloud Native Computing Foundation (CNCF), Prometheus telah menjadi standar industri dalam observability karena integrasinya yang sangat luas.
Ada beberapa alasan mengapa sistem monitoring ini banyak digunakan:
1. Model Pull-Based yang Lebih Aman dan Konsisten
Sistem monitoring yang satu ini mengambil data dari target (exporter) secara berkala melalui protokol HTTP. Pendekatan ini memberi kontrol penuh terhadap endpoint apa saja yang ingin dimonitor.
2. Query Language yang Kuat (PromQL)
PromQL memungkinkan kalian melakukan analisis mendalam seperti rate, sum, histogram, atau aggregasi kompleks. Query bisa dipakai untuk dashboard, alerting, atau troubleshooting performa.
3. Mudah Ditambahkan Exporter Tambahan
Hampir semua service populer seperti MySQL, Redis, Nginx, Kubernetes, Docker, HAProxy, hingga hardware metrics punya exporter bawaan atau komunitas.
4. Self-contained
Sistem monitoring yang satu ini juga tidak membutuhkan database eksternal untuk menyimpan data. Ini membuat instalasi lebih sederhana.
5. Mendukung Alerting
Dengan Alertmanager, kamu bisa mendapatkan notifikasi ke Telegram, Slack, Email, WhatsApp API, dan lainnya.
Sistem monitoring ini juga dirancang untuk mengumpulkan metrik berbasis time-series, yaitu data yang disimpan berdasarkan waktu sehingga sangat cocok untuk analisis performa, grafik tren, dan peringatan (alerting).
Cara Kerja Prometheus
Cara kerjanya, Prometheus akan melakukan “scrape”, yaitu proses mengambil data dari endpoint HTTP (biasanya /metrics) yang disediakan oleh server atau aplikasi. Kemudian, ia akan menyimpan data ini di time-series database internal yang dioptimalkan untuk query cepat.
Berikut proses utama yang dilakukan:
- Mengambil metrik dari endpoint /metrics
- Menyimpan data ke database time-series
- Menjalankan evaluasi rule untuk alert
- Menyediakan UI untuk eksplorasi data
- Menyediakan API bagi Grafana atau tools lain
Mengenal Node Exporter
Prometheus tidak dapat memonitor sistem operasi Linux secara langsung. Di sinilah Node Exporter berperan. Node Exporter adalah agent kecil yang berjalan di background dan menyediakan metrik hardware dan OS, seperti:
- CPU usage (per core)
- Memory usage
- Disk usage & I/O
- Network traffic
- Load average
- File system usage
- Kernel metrics
- Hardware info
- Process states
Endpoint exporter ini biasanya berada di:
|
1 |
http://localhost:9100/metrics |
Exporter ini juga sangat ringan dan dapat berjalan di hampir semua distro Linux tanpa konfigurasi rumit.
Contoh Metrik dari Node Exporter
- node_cpu_seconds_total
- node_load1
- node_memory_MemAvailable_bytes
- node_filesystem_avail_bytes
- node_network_receive_bytes_total
Semua metrik tersebut dapat diproses menjadi grafik maupun alert di Prometheus dan Grafana.
Arsitektur Monitoring Menggunakan Prometheus
Agar kita lebih memahami alur monitoring menggunakan Prometheus dan Node Exporter, berikut adalah gambaran arsitektur umumnya:
Keterangan:
- Node Exporter mengumpulkan metrik server.
- Prometheus mengambil (scrape) metrik setiap 5–15 detik.
- Grafana membaca data dari Prometheus untuk menampilkan dashboard.
Persiapan & Persyaratan
Sebelum memulai instalasi, pastikan kamu sudah menyiapkan hal-hal berikut:
- Memiliki server atau VPS yang menjalankan Linux (Ubuntu, Debian, CentOS).
- Akses SSH ke server untuk instalasi komponen monitoring.
- Akses root atau sudo untuk membuat service dan menyalakan exporter.
- Untuk keamanan, pastikan firewall dan konfigurasi keamanan (iptables, ufw, SELinux) dikonfigurasi agar endpoint metrik dapat diakses oleh Prometheus.
- Firewall tidak memblokir port:
-
- 9090 (Prometheus)
- 9100 (Node Exporter)
Cara Instalasi Node Exporter
Agar server kita bisa dipantau, kita perlu memasang “exporter” yang mengekspos metrik sistem (CPU, memori, disk, network) dalam format yang bisa di-scrape oleh Prometheus. Salah satu exporter populer adalah node_exporter.
Exporter ini nantinya akan berjalan sebagai service background yang berperan dalam mengekspos metrik di port default 9100. Langkah-langkah instalasi node_exporter di Ubuntu/Debian:
1. Masuk ke server melalui SSH:
|
1 |
ssh user@ip-server |
2. Download & ekstrak exporter:
|
1 2 3 4 5 6 7 |
VERSION=1.10.2 cd /opt wget https://github.com/prometheus/node_exporter/releases/download/v$VERSION/node_exporter-$VERSION.linux-amd64.tar.gz tar xvf node_exporter-$VERSION.linux-amd64.tar.gz cd node_exporter-$VERSION.linux-amd64 chmod +x node_exporter |
Sebagai catatan, ganti 1.10.2 dengan versi terbaru. Cek di GitHub release untuk mendapatkan versi paling up-to-date.
3. Buat service systemd
systemd berfungsi agar exporter otomatis berjalan saat server reboot:
Buat file /etc/systemd/system/node_exporter.service dengan perintah berikut:
|
1 |
nano /etc/systemd/system/node_exporter.service |
Isi file dengan konfigurasi berikut:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
[Unit] Description=Prometheus Node Exporter Wants=network-online.target After=network-online.target [Service] User=root ExecStart=/opt/node_exporter-1.10.2.linux-amd64/node_exporter [Install] WantedBy=default.target |
4. Aktifkan dan jalankan service:
|
1 2 3 4 5 |
systemctl daemon-reload systemctl enable node_exporter systemctl start node_exporter systemctl status node_exporter |
5. Uji akses metrik
Jalankan perintah berikut untuk mengetahui apakah exporter sudah berjalan:
|
1 |
curl http://localhost:9100/metrics |
Jika muncul output panjang yang berisi data metrik dalam format teks (prometheus text exposition), maka itu tandanya exporter sudah berjalan.
Cara Instalasi Prometheus
Dalam instalasi Prometheus, kamu bisa menjalankannya di server yang sama atau di server monitoring terpisah (lebih disarankan untuk skalabilitas dan keamanan).
1. Download & ekstrak Prometheus:
|
1 2 3 4 5 6 |
VERSION=3.7.3 cd /opt wget https://github.com/prometheus/prometheus/releases/download/v$VERSION/prometheus-$VERSION.linux-amd64.tar.gz tar xvf prometheus-$VERSION.linux-amd64.tar.gz cd prometheus-$VERSION.linux-amd64 |
Sebagai catatan, ganti 3.7.3 dengan versi terbaru. Cek di GitHub release atau jalankan perintah berikut untuk mendapatkan versi paling up-to-date.
|
1 |
curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest | grep tag_name |
2. Edit Konfigurasi
Sesuaikan konfigurasi agar bisa digunakan untuk scraping exporter. Caranya, buka file prometheus.yml:
|
1 |
nano prometheus.yml |
Edit file konfigurasi tersebut dengan konfigurasi berikut:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] labels: app: "prometheus" - job_name: "node_exporter" static_configs: - targets: ["localhost:9100"] |
Jika exporter berjalan di server lain, cukup ganti IP-nya:
|
1 |
targets: ["192.168.1.50:9100"] |
3. Jalankan Prometheus secara manual:
|
1 |
./prometheus --config.file=prometheus.yml |
4. (Opsional) Buat service systemd:
Agar sistem monitoring ini dapat otomatis jalan saat reboot:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
[Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=root ExecStart=/opt/prometheus-3.7.3.linux-amd64/prometheus \ --config.file=/opt/prometheus-3.7.3.linux-amd64/prometheus.yml [Install] WantedBy=default.target |
Lalu jalankan:
|
1 2 3 4 5 |
systemctl daemon-reload systemctl enable prometheus systemctl start prometheus systemctl status prometheus |
5. Akses Tampilan
Setelah sistem monitoring berjalan, kalian bisa membuka tampilan websitenya dengan cara buka browser ke http://<IP-Server-Kamu>:9090 lalu buka tab Status > Targets. Pastikan job_name: node_exporter muncul dan statusnya UP.
Di sini kalian bisa:
- melihat target monitoring (Status > Targets)
- menjalankan query PromQL
- melihat grafik metrik sederhana
- mengecek status scraping
Beberapa contoh query PromQL:
- CPU usage total
|
1 |
sum(rate(node_cpu_seconds_total{mode!="idle"}[5m])) * 100 |
- Memory available
|
1 |
node_memory_MemAvailable_bytes |
- Disk read/write
|
1 |
rate(node_disk_read_bytes_total[5m]) |
Kesimpulan
Dengan Node Exporter sebagai penyedia metrik sistem dan Prometheus sebagai pengumpul serta penyimpan data time-series, kalian bisa memahami perilaku server dengan lebih akurat. Mulai dari CPU, memori, disk, network, proses, hingga container, semuanya bisa dimonitor secara real-time maupun historis.
Setelah sistem terpasang, kalian dapat menambah Grafana untuk membuat dashboard visual yang informatif dan mudah dipahami. Monitoring semacam ini akan sangat membantu untuk troubleshooting, capacity planning, dan meningkatkan keandalan sistem secara keseluruhan.
Jika kalian membutuhkan performa server yang lebih stabil, resource yang fleksibel, dan lingkungan ideal untuk menjalankan stack monitoring seperti Prometheus, Node Exporter, dan Grafana, pertimbangkan menggunakan Cloud VPS DomaiNesia. Infrastruktur cepat dan scalable dari DomaiNesia akan membantu monitoring kalian berjalan optimal dan responsif, bahkan pada beban tinggi.








