Skip to main content

4.0 Server- und Dienstfehler systematisch analysieren

Server- und Dienstfehler liegen vor, wenn ein benötigter Dienst nicht startet, unerwartet beendet wird, nicht erreichbar ist oder zwar Verbindungen annimmt, aber fehlerhafte Ergebnisse liefert.

Dieses Kapitel behandelt die systematische Analyse von Diensten und Serveranwendungen unter Windows, Linux und macOS. Dazu gehören unter anderem Webserver, Datenbanken, Datei- und Druckdienste, Anwendungsserver sowie Hintergrunddienste.

Grundsatz:
Ein erreichbarer Server ist nicht automatisch ein funktionierender Server. Netzwerkverbindung, Port, Dienstprozess und Anwendungsfunktion müssen getrennt geprüft werden.


Ziele dieses Kapitels

Nach Abschluss dieses Kapitels sollst du:

  • den betroffenen Dienst eindeutig identifizieren können,
  • zwischen Netzwerk-, Port-, Dienst- und Anwendungsfehlern unterscheiden können,
  • Dienststatus und Startart überprüfen können,
  • Prozesse, Abhängigkeiten und verwendete Ports ermitteln können,
  • Protokolle verschiedener Betriebssysteme auswerten können,
  • Konfigurationsfehler erkennen können,
  • Berechtigungs-, Ressourcen- und Zertifikatsprobleme untersuchen können,
  • Dienste kontrolliert testen und neu starten können,
  • wiederkehrende Dienstabbrüche analysieren können,
  • Diagnoseergebnisse nachvollziehbar dokumentieren können.

Sicherheits- und Risikokennzeichnungen

KennzeichnungBedeutung
[RO]Rein lesender Befehl; verändert normalerweise nichts
[TEST]Führt eine aktive Prüfung oder Verbindungsanfrage aus
[PRIV]Erfordert möglicherweise Administrator- oder Rootrechte
[FILE]Liest eine Datei oder schreibt eine Ausgabe in eine Datei
[SENS]Ausgabe kann sensible Informationen enthalten
[CHANGE]Verändert Einstellungen, Zustände oder Konfigurationen
[DISRUPT]Kann einen Dienst oder laufenden Betrieb unterbrechen

Befehle mit [CHANGE] oder [DISRUPT] dürfen erst nach Prüfung der Auswirkungen und möglichst innerhalb eines abgestimmten Wartungsfensters ausgeführt werden.


1. Diagnosemodell für Server- und Dienstfehler

Ein Dienst wird schrittweise von außen nach innen geprüft:

EbeneLeitfrageTypische Prüfung
1. BenutzerWas funktioniert aus Sicht des Benutzers nicht?Fehlermeldung und Zeitpunkt aufnehmen
2. ClientIst nur ein Gerät oder Benutzer betroffen?Vergleich mit anderem Client
3. NamensauflösungWird der richtige Servername aufgelöst?DNS-Abfrage durchführen
4. NetzwerkIst der Server erreichbar?Route und Erreichbarkeit prüfen
5. TransportIst der benötigte TCP- oder UDP-Port erreichbar?Porttest durchführen
6. BetriebssystemLäuft das Betriebssystem stabil?Ressourcen und Ereignisse prüfen
7. DienstLäuft der benötigte Dienst?Dienststatus und Prozess prüfen
8. AbhängigkeitenFunktionieren abhängige Dienste und Systeme?Datenbank, DNS, Speicher oder Authentifizierung prüfen
9. KonfigurationIst der Dienst korrekt konfiguriert?Konfigurationsdateien und Startparameter prüfen
10. AnwendungLiefert der Dienst fachlich korrekte Ergebnisse?Anwendungsspezifischen Funktionstest durchführen

Wichtig: ping prüft nicht, ob ein Anwendungsdienst funktioniert. Ein Server kann ICMP-Anfragen beantworten, obwohl beispielsweise der Web-, Datenbank- oder Dateidienst ausgefallen ist.


2. Vier grundlegende Dienstzustände unterscheiden
ZustandBeschreibungTypische Ursache
Server nicht erreichbarBereits die Netzwerkverbindung scheitertRouting, VLAN, Firewall, Stromversorgung oder Netzwerkkarte
Port nicht erreichbarServer ist erreichbar, aber der Dienstport nichtDienst gestoppt, falscher Port oder Firewall
Port erreichbar, Anwendung fehlerhaftVerbindung wird aufgebaut, die Anfrage schlägt jedoch fehlKonfiguration, Berechtigung, Datenbank oder Anwendung
Dienst funktioniert teilweiseNur bestimmte Benutzer oder Funktionen sind betroffenRechte, Mandant, Backend, Datenbestand oder Lastproblem

Diese Zustände dürfen nicht miteinander verwechselt werden. Die Fehlersuche beginnt immer bei der niedrigsten noch nicht nachgewiesenen Funktionsebene.


3. Schnellprüfung unter Windows, Linux und macOS

Die folgenden Befehle liefern eine erste Übersicht. <DIENST> und <PORT> müssen durch die tatsächlichen Werte ersetzt werden.

AufgabeWindowsLinuxmacOS
Rechnername[RO] hostname[RO] hostnamectl[RO] scutil --get ComputerName
Systemlaufzeit[RO] (Get-CimInstance Win32_OperatingSystem).LastBootUpTime[RO] uptime[RO] uptime
Dienststatus[RO] Get-Service -Name "<DIENST>"[RO] systemctl status <DIENST> --no-pager[RO] launchctl print system/<DIENST>
Alle laufenden Dienste[RO] Get-Service | Where-Object Status -eq "Running"[RO] systemctl list-units --type=service --state=running[RO] launchctl list
Prozess suchen[RO] Get-Process -Name "<PROZESS>" -ErrorAction SilentlyContinue[RO] pgrep -a <PROZESS>[RO] pgrep -alf <PROZESS>
TCP-Listener anzeigen[RO] Get-NetTCPConnection -State Listen[RO][PRIV] sudo ss -lntp[RO][PRIV] sudo lsof -nP -iTCP -sTCP:LISTEN
Bestimmten Port prüfen[RO] Get-NetTCPConnection -LocalPort <PORT> -ErrorAction SilentlyContinue[RO][PRIV] sudo ss -lntp "sport = :<PORT>"[RO][PRIV] sudo lsof -nP -iTCP:<PORT> -sTCP:LISTEN
Remote-TCP-Port testen[TEST] Test-NetConnection <SERVER> -Port <PORT>[TEST] nc -vz <SERVER> <PORT>[TEST] nc -vz <SERVER> <PORT>
CPU und Arbeitsspeicher[RO] Get-Process | Sort-Object CPU -Descending | Select-Object -First 10[RO] top[RO] top -o cpu
Freien Speicherplatz prüfen[RO] Get-Volume[RO] df -hT[RO] df -h

launchctl print system/<DIENST> benötigt das Dienstlabel und nicht zwingend den sichtbaren Namen einer Anwendung. Benutzerbezogene LaunchAgents befinden sich außerdem nicht in der Systemdomäne.


4. Reihenfolge der praktischen Fehlersuche
  1. Störung und betroffene Funktion genau beschreiben.
  2. Zeitpunkt und Dauer der Störung erfassen.
  3. Prüfen, welche Benutzer, Clients und Standorte betroffen sind.
  4. Letzte Änderungen und bekannte Wartungsarbeiten ermitteln.
  5. Servername und Zielsystem eindeutig bestimmen.
  6. DNS-Auflösung und Netzwerkpfad überprüfen.
  7. Erreichbarkeit des benötigten Ports testen.
  8. Dienststatus, Prozess und Startart kontrollieren.
  9. Kontrollieren, auf welcher Adresse und welchem Port der Dienst lauscht.
  10. Abhängige Dienste und externe Systeme überprüfen.
  11. System- und Anwendungsprotokolle für den Störungszeitraum auswerten.
  12. CPU, Arbeitsspeicher, Datenträger und offene Dateien prüfen.
  13. Konfiguration, Berechtigungen und Zertifikate kontrollieren.
  14. Einen gezielten Funktionstest durchführen.
  15. Erst danach eine geeignete Maßnahme planen.
  16. Nach der Maßnahme Funktion und Nebenwirkungen überprüfen.
  17. Ursache, Maßnahme und Ergebnis dokumentieren.

5. Kapitelübersicht
SeiteThemaInhalt
4.0Server- und Dienstfehler systematisch analysierenKapitelübersicht und Diagnosemodell
4.1Störung und betroffenen Dienst eingrenzenBenutzer, Clients, Standorte und Zeiträume
4.2Dienststatus und Startart prüfenWindows-Dienste, systemd und launchd
4.3Prozesse und Prozesszustände analysierenPID, Elternprozess, Laufzeit und Ressourcen
4.4Listener, Ports und Bindungsadressen prüfenTCP, UDP, IPv4, IPv6 und Loopback
4.5Dienstabhängigkeiten untersuchenAbhängige Dienste, Backends und Startreihenfolge
4.6System- und Dienstprotokolle auswertenEreignisanzeige, Journal und Unified Logging
4.7Dienststartfehler analysierenExitcodes, Zeitüberschreitungen und Abstürze
4.8Konfigurationsfehler untersuchenSyntax, Pfade, Parameter und Umgebungsvariablen
4.9Benutzer-, Dienstkonto- und BerechtigungsfehlerKonten, Dateirechte und Zugriffstoken
4.10Ressourcenengpässe erkennenCPU, RAM, Datenträger und Dateideskriptoren
4.11Speicherplatz- und DateisystemfehlerVolumes, Inodes, Quotas und schreibgeschützte Dateisysteme
4.12Zertifikats- und TLS-ProblemeGültigkeit, Vertrauenskette, Name und Protokoll
4.13Webserver und HTTP-Dienste analysierenHTTP-Statuscodes, Header, Logs und virtuelle Hosts
4.14Datenbankverbindungen analysierenPort, Anmeldung, Berechtigungen und Verbindungspools
4.15Datei- und Freigabedienste analysierenSMB, NFS, Berechtigungen und Sperren
4.16Druckdienste und Warteschlangen analysierenSpooler, Druckaufträge, Treiber und Erreichbarkeit
4.17Wiederkehrende Dienstabbrüche untersuchenCrash-Loops, Neustartregeln und Ursachenanalyse
4.18Dienste kontrolliert neu startenRisikoanalyse, Abhängigkeiten und Funktionstest
4.19Befehlsübersicht – Server- und DienstdiagnoseVergleichstabelle für Windows, Linux und macOS

6. Entscheidungsweg bei einem nicht erreichbaren Dienst
PrüfschrittErgebnisNächste Aktion
Wird der richtige Servername verwendet?NeinZielsystem und Dokumentation korrigieren
Wird der Name korrekt aufgelöst?NeinDNS-Konfiguration untersuchen
Ist der Server über das Netzwerk erreichbar?NeinNetzwerkpfad, VLAN, Routing und Firewall prüfen
Ist der benötigte Port erreichbar?NeinListener, Dienststatus und Paketfilter prüfen
Läuft der Dienstprozess?NeinStartfehler und Protokolle untersuchen
Lauscht der Prozess auf dem erwarteten Port?NeinBindungsadresse und Konfiguration prüfen
Antwortet das Anwendungsprotokoll?NeinDienstprotokoll, TLS und Abhängigkeiten prüfen
Funktioniert die Anmeldung?NeinKonto, Kennwort, Berechtigungen und Identitätsdienst prüfen
Funktioniert die gewünschte Aktion?NeinAnwendung, Backend und Datenbestand untersuchen
Funktioniert alles wieder?JaUrsache und Lösung dokumentieren

7. Wichtige Informationen vor einem Dienstneustart

Vor einem Neustart müssen mindestens folgende Fragen beantwortet werden:

  • Welche Benutzer und Anwendungen verwenden den Dienst?
  • Gibt es laufende Transaktionen oder Dateioperationen?
  • Hängen weitere Dienste von diesem Dienst ab?
  • Wird der Dienst automatisch wieder gestartet?
  • Existiert ein Cluster, Loadbalancer oder Failover-System?
  • Gehen durch den Neustart Diagnoseinformationen verloren?
  • Wurden die relevanten Protokolle bereits gesichert?
  • Ist der Neustart betrieblich freigegeben?
  • Wie wird die Funktion anschließend getestet?
  • Gibt es eine Rückfallmöglichkeit?

Ein Neustart kann die Verfügbarkeit kurzfristig wiederherstellen, beseitigt aber nicht automatisch die eigentliche Fehlerursache. Vorher sollten Zustand, Zeitstempel, Fehlermeldungen und relevante Protokolle erfasst werden.


8. Mindestdokumentation eines Dienstfehlers
InformationBeispiel
Betroffener DienstIntranet-Webanwendung
Serversrv-web01.example.local
BetriebssystemWindows Server beziehungsweise Linux-Distribution und Version
Beginn der StörungDatum und genaue Uhrzeit mit Zeitzone
Betroffene BenutzerAlle Benutzer am Standort Berlin
FehlerbildHTTP-Verbindung wird aufgebaut, Antwortcode 503
DienststatusDienst läuft beziehungsweise ist beendet
ProzessProzessname und PID
Port und BindungsadresseTCP 443 auf einer bestimmten IP-Adresse
Relevante ProtokollmeldungEreignis-ID, Exitcode oder Fehlermeldung
Letzte ÄnderungAktualisierung oder Konfigurationsänderung
Durchgeführte PrüfungenDNS-, Port-, Dienst- und Funktionstest
MaßnahmeKonfiguration korrigiert und Dienst kontrolliert neu gestartet
FunktionstestAnmeldung und Beispielabfrage erfolgreich
UrsacheTechnische Grundursache
VorbeugungMonitoring, Dokumentation oder Konfigurationsprüfung

Merksatz

Erreichbarkeit beweist nur den Netzwerkweg. Ein offener Port beweist nur einen Listener. Erst ein erfolgreicher Anwendungstest beweist die Funktion des Dienstes.


Weiterführende Quellen