Install Prometheus dan Grafana – Prometheus dan Grafana adalah dua aplikasi open-source yang sering digunakan bersama untuk memantau dan memvisualisasikan data metrik dari sistem, aplikasi, atau infrastruktur. Prometheus bertugas mengumpulkan data metrik dari berbagai sumber (seperti server atau aplikasi) melalui protokol HTTP. Sedangkan Grafana memanfaatkan data yang dikumpulkan oleh Prometheus untuk membuat panel visual yang interaktif, seperti grafik, tabel, atau heatmap. Dengan antarmuka yang user-friendly,
Alur Kerja Prometheus dan Grafana
From metrics to insight
Power your metrics and alerting with the leading
open-source monitoring solution.
Sebelum mulai Instalasi Prometheus dan Grafana, ada beberapa hal yang perlu disiapkan, di antaranya adalah Server VPS. Di sini Kami menggunakan Server VPS bersistem operasi Linux Ubuntu versi 24.04 LTS untuk menginstall Prometheus dan Grafananya.
Spesifikasi VPS yang Kami Gunakan.
Seperti yang sudah Kami jelaskan di ataa tentang pengertian, tugas, dan alur kerja Prometheus Grafana. Singkatnya, Prometheus yang mengumpulkan data kemudian data tersebut ditampilkan oleh grafana. Kali ini KIta akan mencoba menginstall kedua tool tersebut ke VPS. Berikut adalah Gambaran Proses yang akan KIta lakukan.
Gambaran Proses
Sebelum menginstal aplikasi atau perangkat lunak pada server, ada beberapa langkah penting yang harus dilakukan. Pertama, update untuk memastikan daftar paket terbaru tersedia di sistem. Selanjutnya, upgrade package yang sudah terinstal ke versi termutakhir guna memperbaiki celah keamanan dan bug. Selain itu, atur zona waktu server/VPS sesuai dengan lokasi pengguna agar catatan log (log) server mudah dipantau dan tugas penjadwalan otomatis (cron) dapat berjalan sesuai waktu yang diharapkan.
sudo apt update
sudo apt upgrade -y
Atur juga timezone server dan sesuaikan dengan daerah tempat tinggal Anda. disini saya mengatur timezone server ke Asia/Jakarta.
sudo timedatectl set-timezone Asia/Jakarta
Ada beberapa cara untuk menginstall prometheus, diantaranya dengan Pre-Compiled Binary, APT Paket, Build From Fource, dan Docker Image. Tapi pada tutorial kali ini Kita akan menginstall prometheus dengan metode Pre-Compile Binary. yaitu dengan mengunduh biner yang sudah dicompile langsung dari situs resmi Prometheus. Karena cara ini cocok untuk pengguna yang ingin langsung menggunakan Prometheus tanpa perlu melakukan compile sendiri.
Link Pre-Compile -> Click Here.
sudo apt install wget -y
cd /opt
wget https://github.com/prometheus/prometheus/releases/download/v3.1.0/prometheus-3.1.0.linux-amd64.tar.gz
tar -xvzf prometheus-3.1.0.linux-amd64.tar.gz
cd prometheus-3.1.0.linux-amd64
Buat user dan group untuk menjalankan prometheus, buat juga direktori untuk menyimpan binari dan file konfigurasi prometheus.
sudo useradd --no-create-home --shell /bin/false prometheus
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
Setelah itu, pindahkan file binari dan file konfigurasi prometheus ke direktori /var/lib dan /etc.
sudo mv prometheus.yml /etc/prometheus/
sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/
Ubah kepemilikan direktori /etc/prometheus, /usr/bin/prometheus, dan /var/lib/prometheus agar bisa diakses oleh user prometheus.
sudo chown -R prometheus:prometheus /etc/prometheus
sudo chown -R prometheus:prometheus /var/lib/prometheus
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool
Terakhir buat konfigurasi systemd agar prometheus berjalan sebagai service di VPS atau Server..
sudo nano /etc/systemd/system/prometheus.service
Salin dan tempel baris kode di bawah ini:
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus \
[Install]
WantedBy=multi-user.target
Lalu Mulai dan Aktifkan Servicenya.
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
sudo systemctl status prometheus
Pastikan statusnya active (running) seperti ini:

Buka Web Console Prometheus dengan menggunakan IP Address. Masuk ke ->Status->Targets, dan pastikan prometheus endpoint state up seperti gambar di bawah ini:
http://ip-server:9090/targets

Node Exporter adalah agen monitoring yang digunakan untuk mengumpulkan metrics hardware dan sistem operasi. Prometheus sendiri hanya bertindak sebagai server monitoring dan tidak bisa langsung mengumpulkan data dari sistem. Node Exporter lah yang akan mengumpulkan data, lalu Prometheus akan menarik (scrape) data tersebut. data metriks yang dikumpulkan seperti: CPU usage, Memori (RAM), Disk usage, Load average, Network traffic, Proses yang berjalan
Sama seperti prometheus, KIta akan menginstall Node Exporter dari Pre-Compile Binary yang sudah disediakan.
cd /opt
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar -xvzf node_exporter-1.8.2.linux-amd64.tar.gz
cd node_exporter-1.8.2.linux-amd64
Kemudian pindahkan binari node exporter ke /usr/local/bin. Dan agar lebih aman, buat juga user dan group yang akan digunakan untuk menjalankan Node Exporter. Terakhir ubah kepemilikan direktorinya.
sudo useradd -rs /bin/false node_exporter
sudo mv node_exporter /usr/local/bin/
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
Buat konfigurasi node exporter di Systemd. Ini bertujuan agar node exporter berjalan sebagai service.
sudo nano /etc/systemd/system/node_exporter.service
Salin dan tempel baris kode di bawah ini:
[Unit]
Description=Prometheus exporter for machine metrics
[Service]
Restart=always
User=prometheus
ExecStart=/usr/local/bin/node_exporter
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=20s
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
Lalu Mulai dan Aktifkan Servicenya.
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter
sudo systemctl status node_exporter
Pastikan statusnya active (running) seperti ini:

Sekarang kita akan mencoba menghubungkan node exporter agar dapat di scrape oleh prometheus. Nantinya Kita bisa melihat metriks-metrik yang dikumpulkan oleh node exporter. Untuk antisipasi kegagalam, pertama Kita cadagkan dulu konfigurasi default dari prometheus. Kemudian buat file konfigurasi yang baru.
sudo mv /etc/prometheus/prometheus.yml /etc/prometheus/prometheus.yml.bak
sudo nano /etc/prometheus/prometheus.yml
Salin dan tempelkan baris konfigurasi di bawah ini:
global:
scrape_interval: 15s # Set interval pengambilan data menjadi 15 detik
evaluation_interval: 15s # Evaluasi aturan setiap 15 detik
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "node-exporter-localhost"
static_configs:
- targets: ["localhost:9100"]
Kemudian restart service prometheus.
sudo systemctl restart prometheus
Kemudian Kita cek konfigurasinya sudah berhasil apa belum. Masuk ke Prometheus Web Console->Status->Targets. Pastikan Endpoint sudah bertambah node-exporter-localhost dan berstate up seperti ini:

Ketika membuka Web Console Prometheus, Kita tidak diminta untuk memasukkan authentikasi seperti username dan password. Hal ini akan menjadi ancaman keamanan yang serius jika user tidak dikenal berhasil mengetahui IP prometheus dan mengambil data metriksnya. Untuk itu Kita akan mencoba konfigurasi basic auth agar prometheus memiliki authentikasi seperti username dan password.
Pertama jalankan perintah berikut untuk menginstal instal dependensi Hash Password.
sudo apt update && sudo apt install python3-bcrypt -y
Kemudian buat file konfigurasi untuk hashing password.
sudo echo 'import getpass, bcrypt; print(bcrypt.hashpw(getpass.getpass("Password: ").encode(), bcrypt.gensalt()).decode())' > /tmp/genpass.py
sudo chmod +x /tmp/genpass.py
Jalankan skrip untuk membuat password prometheus.
sudo python3 /tmp/genpass.py
Masukkan password dan akan digenerate hashingnya. Simpan hasil hashing passwordnya.

Implementasikan password yang sudah dihashing ke dalam konfigurasi prometheus.
sudo nano /etc/prometheus/web.yml
Salin dan tempel baris berikut. Baris berikut akan mengaplikasikan username dan password prometheus.
basic_auth_users:
admin: $2b$12$xN9gysLaHkz8gy32jHYPCeUUSuwl45ZaDIknQHXge7oAEwVbp3/ze
admin$2b$12$xN9gysLaHkz8gy32jHYPCeUUSuwl45ZaDIknQHXge7oAEwVbp3/ze (hasil hashing)Tambahkan user authentikasi ke job scrape prometheus.
sudo nano /etc/prometheus/prometheus.yml
Salin dan tempel konfigurasi auth berikut di scrape config.
basic_auth:
username: "admin" # username
password: "YOUR_PASSWORD" # password asli(bukan hashing)

Selanjutnya tambahkan –web.config.file ke Systemd Service prometheus.
sudo nano /etc/systemd/system/prometheus.service
Masukkan ke block konfigurasi ExecStart.
--web.config.file=/etc/prometheus/web.yml

Lalu restart daemon dan service prometheus.
sudo systemctl daemon-reload
sudo systemctl restart prometheus
Terakhir periksa dengan mengakses Web Console Prometheus, dan pastikan authentikasi berjalan seperti ini:

Grafana adalah tool visualisasi data yang digunakan untuk memantau, menganalisis, dan menampilkan data metrik secara real-time. Jadi setelah data dikumpulkan oleh node exporter dan prometheus, data tersebut akan divisualisasikan oleh tool Grafana ini.
Berbeda dari promethues dan node exporter, untuk metode instalasi Grafana ini adalah menggunakan APT Paket Manager. Pertama KIta install dulu dependensi, GPG Key, dan repositori yang dibutuhkan oleh Grafana,
sudo apt-get install -y apt-transport-https software-properties-common wget
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com beta main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
Kemudian install Grafana.
sudo apt-get install -y grafana
Mulai dan aktifkan service Grafana.
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo systemctl status grafana-server
Pastikan statusnya active (running) seperti ini:

Akses web dashboard Grafana menggunakan IP Address dan Port 3000.
http://ip-server:3000
username = admin
password = admin

Setelah semua proses instalasi mulai dari prometheus, node exporter, dan grafana sudah berhasil dilakukan, selanjutnya Kita akan hubungkan prometheus ke grafana. Atau lebih tepatnya menjadikan prometheus sebagai Data Source Grafana. Proses ini bertujuan agar metrik-metrik yang telah dikumpulkan oleh prometheus bisa divisualisasikan mejadi chart, tabel, grafik, dan lainya oleh grafana ini.
Masuk ke Home -> Connections -> Add New Connection -> Prometheus -> Add New Data Source

Konfigurasi sesuai gambar di bawah ini:

Scroll ke bawah, klik Save & Test, dan pastikan test sukses seperti gambar di bawah ini:

Kita kan coba untuk membuat dashboard standar untuk memonitor metrik seperti CPU Usage, RAM Usage, Load, Uptime, Disk Usage, Network Traffick, dan sebagainya. KIta tidak akan membuatnya dari awal tapi akan mengimport dashboard yang tersedia di Grafana Labs.
Home -> Dashboard -> New -> Import

Kemudian masukkan ID dari dashboard yang telah dipilih di web Grafana Labs. di sana terdapat banyak templat grafana yang siap dipakai.
ID Dashboard = 1860
Link Grafana Labs = Klik di sini

Pilih data source yang akan digunakan oleh dashboard ini.

Dan tampilan dashboard akan tampil seperti ini.

Jadi begitulah panduan cara install prometheus dan grafana. Kita telah membahas secara komprehensif cara instal Prometheus dan Grafana di VPS Ubuntu 24.04. Mulai dari pengenalan dasar mengenai apa itu Prometheus dan Grafana sebagai solusi monitoring dan visualisasi, hingga persiapan awal yang diperlukan sebelum instalasi. Dengan mengikuti langkah-langkah di atas, Anda akan memiliki sistem monitoring yang handal dan mampu memberikan insight mendalam tentang performa server serta aplikasi yang berjalan.
Semoga panduan ini bermanfaat, dan selamat mencoba! 🚀