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?

0
Subscribe to my newsletter

Read articles from Hendra Juniansyah directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Hendra Juniansyah
Hendra Juniansyah