Skip to main content

Command Palette

Search for a command to run...

Monitoring Debian 12 Servers with Grafana on Docker: A Step-by-Step Guide

Updated
3 min read
Monitoring Debian 12 Servers with Grafana on Docker: A Step-by-Step Guide

Pantau penggunaan resource server Docker kamu dengan Grafana, Ikuti panduan simpel ini untuk setup lengkap di server Debian 12, mulai dari nol sampai jadi.

Cukup copy-paste, dan semua beres!

Prasyarat

  • Server dengan OS Debian 12 (kondisi fresh/baru).

  • Akses root atau user dengan hak sudo.


Langkah 1: Update Sistem & Install Kebutuhan Dasar

Pertama, pastikan server kita update dan install paket yang diperlukan.

sudo apt update && sudo apt upgrade -y
sudo apt install -y apt-transport-https ca-certificates curl gnupg

Langkah 2: Install Docker Engine dan Docker Compose

Kita akan menambahkan repository resmi Docker untuk mendapatkan versi terbaru.

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Jangan lupa ketik “y” untuk melanjutkan!

Langkah 3: Siapkan Direktori dan File Konfigurasi

Buat sebuah folder untuk menyimpan file-file konfigurasi kita.

mkdir docker-monitoring
cd docker-monitoring

Sekarang, buat dua file di dalam direktori ini.

1. Buat file prometheus.yml dengan nano di folder docker-monitoring copy-paste code dibawah ini.

# prometheus.yml
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['cadvisor:8080']

2. Selanjutnya buat file docker-compose.yml di folder yang sama

# docker-compose.yml
version: '3.7'

services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    restart: unless-stopped
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'

  cadvisor:
    image: gcr.io/cadvisor/cadvisor:latest
    container_name: cadvisor
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro

  grafana:
    image: grafana/grafana-oss:latest
    container_name: grafana
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - grafana-storage:/var/lib/grafana
    depends_on:
      - prometheus

volumes:
  grafana-storage:

Langkah 4: Jalankan Semua Layanan Monitoring

Dengan satu perintah, kita akan menjalankan Grafana, Prometheus, dan cAdvisor.

docker compose up -d

Tunggu beberapa saat hingga semua image terunduh dan container berjalan. Cek statusnya dengan:

docker compose ps

Langkah 5: Konfigurasi Grafana dan Import Dashboard

  1. Buka browser dan akses ke http://192.168.20.11:3000 -- sesuaikan dengan ip server anda

  2. Login dengan username admin dan password admin. akan diminta mengganti password.

  3. Tambahkan Data Source:

    • Klik menu Connections di menu kiri -> Data Sources.

    • Klik Add data source -> Pilih Prometheus.

    • Pada field URL, masukkan http://prometheus:9090.

    • Klik Save & test.

  4. Import Dashboard:

    • Ketik Import Dashbord pada menu search kanan atas -> pilih Import Dashbord.

    • Di kolom "Grafana.com dashbord URL or ID", masukkan ID 193 lalu klik Load.

    • Di halaman selanjutnya, pilih Prometheus sebagai data source.

    • Klik Import.


Selesai! Dashboard monitoring server Docker Anda kini sudah aktif dan menampilkan semua metrik penggunaan CPU, Memori, Jaringan, dan lainnya untuk setiap container. Simpel, kan?

More from this blog

nubinote

11 posts

Info, Sharing, Tutorials About Information Technology