Grafana + Prometheus für Webserver: Monitoring Setup in der Praxis

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:9090 eintragen
  • 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.

Related Articles