Administration/Handbücher/Debugging eines Application-Servers: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „== Vorbereitung == Prüfe ob andere Benutzer eingeloggt sind: <pre> users </pre> Sind andere Benutzer eingeloggt, benachrichtige die Benutzer wenn du einen ko…“) |
(kein Unterschied)
|
Version vom 17. August 2017, 12:10 Uhr
Vorbereitung
Prüfe ob andere Benutzer eingeloggt sind:
users
Sind andere Benutzer eingeloggt, benachrichtige die Benutzer wenn du einen konsistenten Zustand benötigst:
wall 'Achtung ich möchte diesen Server debuggen. Bitte nimm jetzt keine Änderungen vor. Du kannst mir eine Antwort auf diese Nachricht mit dem Befehl wall schicken.'
Systemd
Welche Units werden beim Booten geladen?
systemctl list-unit-files
Status der Units
systemctl
Felgeschlagene anzeigen
systemctl --failed
journald
Welche Units werden beim Booten geladen?
journalctl -b
Performance
Historiesche Analyse
Mit Munin. Folgende Werte ansehen und mit anderen Servern vergleichen:
- Disk-IO
- Disk-Latency
- CPU (steal, softirq)
- interrupts
- Load ([verstehen])
Analyse der aktuellen Lage
Analyse von Disk-IO
Fehlereingrenzung
- Prüfe alle Dienste
- Sind nur bestimmte Dienste betroffen, wenn ja welche?
- Lassen sich zwischen den Diensten Gemeinsamkeiten finden (z.B. nur PHP-Anwendungen und Mail)?
Häufige Probleme
Einige Dienste offline während andere funktionieren
Problem: Das Problem äußert sich darin, dass bestimmte Dienste nicht erreichbar sind und einen Timeout (504 Gateway Time-out) liefern (z.B. alle Dienste mit einer Anbindung an den Datenbankserver wie Blog, Mail, Gitlab) während andere Dienste, die nicht an den Datenbankserver angebunden sind, erreichbar sind (z.B. Wiki, Pad). Das Monitoring des Servers zeigt keine Auffälligkeiten jedoch ist im Debug-Log eines Nginx-vHost zu sehen, dass php5-fpm einen Timeout liefert (setze "error_log /var/log/nginx/error_DIENST.log debug;").
Lösungsansatz 1: Anscheinend gibt es ein Problem bei der Verbindung zum Datenbankserver, welches sich nicht wie üblich durch eine Meldung "Database Connection failed" der Anwendung äußert. Grund könnte sein, dass das System versucht den Datenbankserver per IPv6 zu erreichen, während er durch einen Fehler nur per IPv4 angebunden ist. Überprüfe die Verbindung (siehe Technik/Dokumentation/Mysql und Technik/Dokumentation/PostgreSQL).