Docker Container Monitoring Dashboard using Prometheus and Grafana

This assignment will help you monitor Docker containers with Prometheus and Grafana.

Architecture

Docker Containers
|
cAdvisor
|
Prometheus
|
Grafana

Step 1: Create Monitoring Directory

mkdir docker-monitoring
cd docker-monitoring

Step 2: Create Docker Compose File

vim docker-compose.yml

Add the following content:

version: '3'

services:

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

prometheus:
image: prom/prometheus
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
restart: unless-stopped

grafana:
image: grafana/grafana
container_name: grafana
ports:
- "3000:3000"
restart: unless-stopped

Step 3: Create Prometheus Configuration

vim prometheus.yml

Add,

global:
scrape_interval: 15s

scrape_configs:
- job_name: 'cadvisor'

static_configs:
- targets: ['cadvisor:8080']

Step 4: Start Monitoring Stack

docker-compose up -d

Verify:

docker ps

Step 5: Access cAdvisor

Open:

http://localhost:8081

You should see Docker container metrics.

Step 6: Access Prometheus

open,

http://localhost:9090

Go to:

Status → Targets

Verify:

cadvisor = UP

Step 7: Access Grafana

Open:

http://localhost:3000

Default login:

Username: admin
Password: admin

OR set a new password.

Mahesh Wabale

Leave a Comment