Ahmed Abdelwahed

Ahmed Abdelwahed

Technical Trainer | Cloud & Infrastructure Specialist

ahmed@abdelwahed.me

Technical Blog

From the Server Room
to the Cloud

200+ Delivered Courses
30+ Certificates
10+ Years in IT

Monitoring with Prometheus and Grafana – Complete Lab Guide

Monitoring with Prometheus and Grafana — Ahmed Abdelwahed
Prometheus Grafana 16 Pages · Quick Guide Version 25.07

Monitoring with Prometheus and Grafana

A hands-on quick guide covering the full observability stack — from deploying Prometheus and Grafana on Docker to monitoring Linux servers, Windows Server, and containers with Node Exporter, cAdvisor, and Alertmanager. Built on a real Azure lab environment with full screenshots.

Ahmed Abdelwahed Version 25.07 16 Pages DevOps Track

About This Guide

This quick guide walks you through building a complete observability stack from scratch using Prometheus and Grafana on Docker. Starting from core concepts like metrics, exporters, and the pull model, through five hands-on labs that cover Linux monitoring, container performance with cAdvisor, Windows Server monitoring with AD and DNS collectors, and production-grade alerting with Alertmanager. Every lab is built on a real Rocky Linux and Azure environment at abdelwahed.me with full terminal output and dashboard screenshots.

What’s Covered

🔥

Prometheus Core Concepts

Metrics, labels, exporters, pull vs push model, Alertmanager, and Grafana overview.

🐳

Docker-Based Monitoring Stack

Deploy Prometheus, Node Exporter, and Grafana as Docker containers on Rocky Linux with custom bridge networking.

📦

Container Monitoring with cAdvisor

Monitor Docker container CPU, memory, and network metrics using cAdvisor and Grafana dashboard ID 193.

🪟

Windows Server Monitoring

Install Windows Exporter with AD and DNS collectors, connect to Prometheus, and import Grafana dashboards 21243 and 20920.

🐧

Linux Node Monitoring

Install Node Exporter as a systemd service on Rocky Linux, add to Prometheus, and visualize with the Node Exporter Full dashboard (ID 1860).

🚨

Alerting with Alertmanager

Write PromQL alert rules for CPU and memory thresholds on both instances and containers, deploy Alertmanager, and verify firing alerts.

Lab Index

00Prometheus Core Concepts — Metrics, Labels, Pull Model & ComponentsConcepts
01Lab 1 · Deploy Prometheus, Node Exporter & Grafana on Rocky Linux (Docker)Linux
01aConfigure Docker Network, prometheus.yml, and Container LaunchLinux
01bAdd Prometheus Data Source & Import Node Exporter Full Dashboard (ID 1860)Grafana
02Lab 2 · Container Performance Monitoring with cAdvisor, Prometheus & GrafanaDocker
02aRun NGINX, Redis & Alpine Containers with Restart PoliciesDocker
02bDeploy cAdvisor, Update prometheus.yml & Import Dashboard ID 193Grafana
03Lab 3 · Windows Server Monitoring with AD & DNS CollectorsWindows
03aInstall & Configure Windows Exporter (v0.31.3) via MSI with Firewall RuleWindows
03bAdd Windows Targets to Prometheus & Import Dashboards 21243 / 20920Grafana
04Lab 4 · Linux Server Monitoring with Node Exporter as a systemd ServiceLinux
04aDownload, Install & Run Node Exporter with Dedicated Service AccountLinux
05Lab 5 · CPU & Memory Alerting with Prometheus Alert Rules & AlertmanagerAlerts
05aWrite PromQL Rules — HighCPUUsage, ContainerCPUUsage, MemoryUsage AlertsAlerts
05bDeploy Alertmanager Container & Verify Firing Alerts in Prometheus UIAlerts

Who Is This For

⚙️
DevOps Engineers

Building or extending an observability stack for containerised and hybrid infrastructure.

🖥
SysAdmins

Linux and Windows admins who want real-time visibility into server health without a heavyweight APM tool.

☁️
Cloud Engineers

Engineers deploying monitoring stacks on Azure VMs or any cloud provider using Docker and open-source tools.

Guide Details

Version25.07
·
Pages16
·
StackPrometheus · Grafana · Alertmanager
·
PlatformDocker · Rocky Linux · Azure
·
AuthorAhmed Abdelwahed

Download the Complete Guide

16 pages covering the full Prometheus and Grafana monitoring stack — step-by-step labs, real screenshots, zero fluff. Free to download.