Ein effektives Monitoring von Webservern ist entscheidend, um Ausfälle, Performance-Probleme und Sicherheitsrisiken frühzeitig zu erkennen. In modernen Web-Stacks setzen sich Grafana und Prometheus als leistungsstarkes Duo durch, da Prometheus Metriken sammelt und speichert, während Grafana diese visuell aufbereitet und Dashboards sowie Alerts bereitstellt. In diesem Tutorial zeigen wir praxisnah, wie man Grafana und Prometheus für Webserver einrichtet und sinnvoll konfiguriert.
Prometheus installieren und konfigurieren
Prometheus dient als zentrale Metrik-Sammlung und -Speicherung. Für Webserver-Monitoring sind Node Exporter, Nginx Exporter und ggf. PHP-FPM Exporter relevant.
Node Exporter installieren
Node Exporter liefert grundlegende Systemmetriken wie CPU, RAM, Disk und Netzwerk.
# Node Exporter mit Docker starten
docker run -d
--name node_exporter
-p 9100:9100
prom/node-exporter
Nginx Exporter einbinden
Der Nginx Exporter liefert Metriken zu Anfragen, aktiven Verbindungen und Statuscodes.
# Nginx Exporter starten
docker run -d
--name nginx_exporter
-p 9113:9113
nginx/nginx-prometheus-exporter:latest
-nginx.scrape-uri http://nginx-status
Prometheus Konfiguration anpassen
In der Prometheus-Konfigurationsdatei prometheus.yml werden die Exporter als Targets hinterlegt.
global:
scrape_interval: 15s
scrape_configs:
-
job_name: 'node'
static_configs:
-
targets: ['localhost:9100']
-
job_name: 'nginx'
static_configs:
-
targets: ['localhost:9113']
Grafana installieren und verbinden
Grafana visualisiert die von Prometheus gesammelten Metriken und ermöglicht das Einrichten von Dashboards und Alerts.
Grafana starten
# Grafana via Docker starten
docker run -d
--name=grafana
-p 3000:3000
grafana/grafana
Standardmäßig erreichbar unter http://localhost:3000, Login: admin/admin.
Prometheus als Data Source einrichten
- Login in Grafana
- Settings → Data Sources → Add Data Source
- Prometheus auswählen und URL
http://localhost:9090eintragen - Test & Save drücken
Dashboards erstellen
Dashboards visualisieren wichtige Metriken auf einen Blick.
Systemmetriken
- CPU-Auslastung (user, system, idle)
- Speicherverbrauch und Swap
- Disk-IO und Netzwerktraffic
Webserver-Metriken
- Nginx Requests pro Sekunde
- HTTP Status Codes (2xx, 3xx, 4xx, 5xx)
- Active Connections und Request Duration
Alerts konfigurieren
Grafana ermöglicht die Einrichtung von Alerts, die bei Überschreiten bestimmter Schwellenwerte Benachrichtigungen verschicken.
Beispiel Alert: Hohe CPU-Last
ALERT HighCPU
IF node_cpu_seconds_total{mode="user"} > 80
FOR 5m
LABELS { severity="critical" }
ANNOTATIONS {
summary = "CPU-Auslastung über 80%"
}
Beispiel Alert: Nginx 5xx Errors
ALERT NginxErrors
IF increase(nginx_http_requests_total{status=~"5.."}[5m]) > 10
FOR 1m
LABELS { severity="warning" }
ANNOTATIONS {
summary = "Mehr als 10 5xx Errors in 5 Minuten"
}
Best Practices für Webserver-Monitoring
- Regelmäßig Dashboards überprüfen und anpassen
- Alarme nur bei relevanten Schwellenwerten auslösen, um Alert Fatigue zu vermeiden
- Metriken von allen relevanten Services sammeln, inklusive DB, PHP-FPM, Caching
- Langfristige Speicherung und Retention-Policies planen
- Security beachten: Prometheus und Grafana nur intern erreichbar machen oder mit Auth absichern
Praxisbeispiel: Komplettes Webserver-Setup
Ein typischer Webserver-Stack kann folgende Metriken und Visualisierungen umfassen:
- Node Exporter → Systemmetriken
- Nginx Exporter → HTTP-Requests, Status Codes, Active Connections
- PHP-FPM → Pool-Status, laufende/idle Prozesse
- MariaDB/PostgreSQL → Connections, Queries, Locks
- Grafana Dashboards → Übersicht aller Services mit Alerts
Zusammenfassung
Mit Prometheus und Grafana lässt sich ein Webserver effizient überwachen. Die Kombination aus Metriken, Dashboards und Alerts ermöglicht eine proaktive Fehlerbehebung, verbessert die Performance und erhöht die Stabilität. Durch die praxisnahe Einrichtung von Exportern, Data Sources und Dashboards können Teams schnell einen vollständigen Überblick über ihren Web-Stack erhalten.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

