Fehleranalyse und Debugging
Im Folgenden wird das Vorgehen zur Identifizierung von Systemproblemen beschrieben.
- Laufen Arbeiten an anderen erforderlichen Systemen oder Infrastruktur parallel? Z.B. Netz, Storage, VM oder IDM
- Server-Überwachung checken:
- System überlastet? Storage voll gelaufen? CPU-Last?
- Webserver + DB überprüfen
- Läuft der Webserver?
- Ist genügend Speicherplatz frei? df -h
- Läuft die Datenbank und hat genügend Speicherplatz?
- Was wurde zuletzt geändert; mögliche Auslöser für Probleme? Changelog sichten..
- Cronjobs überprüfen
- Läuft der Linux-cron korrekt?
- Werden die "Geplanten Vorgänge" sauber abgearbeitet? /admin/tool/task/scheduledtasks.php
- Cron oder einzelne Tasks ggf. manuell ausführen?
- log-Dateien analysieren + Moodle-Konfiguration
- Siehe auch Moodle Webserver
- Alle Systemklicks nachvollziehbar unter: /report/log
- Konfigurationsänderungen: /report/configlog/index.php
- Login via Debug-user ($CFG->debugusers = '2';), der für alle Aktionen im "Developer-Modus" agiert und Fehlermeldungen direkt im Browser anzeigt
- Moodle-Dateien
- Wurden Plugins aktualisiert?
- Haben die Moodle-Dateien die erforderlichen Rechte?
- Viren-Scanner
- Blockiert der Viren-Scanner etwas?
- Gibt es massive Performance-Beeinträchtigungen durch Viren-Scanner?
- Netzwerk + Firewall
- Sind alle benötigten Freigaben erteilt auf Webservern und ggf. Loadbalancer?
- Netzwerkverkehr analysieren, z.B. via
tcpdump -i any -nn host [Moodle-Server]
tcpdump-Erklärungen: https://xinux.net/index.php/Tcpdump_grundlagen + https://geekflare.com/tcpdump-examples/
in eine Datei schreiben: -w [Dateiname]
Debug-Modus aktivieren mittels config.php
//=========================================================================
// 7. SETTINGS FOR DEVELOPMENT SERVERS - not intended for production use!!!
//=========================================================================
//
// Force a debugging mode regardless the settings in the site administration
@error_reporting(E_ALL | E_STRICT); // NOT FOR PRODUCTION SERVERS!
@ini_set('display_errors', '1'); // NOT FOR PRODUCTION SERVERS!
$CFG->debug = (E_ALL | E_STRICT); // === DEBUG_DEVELOPER - NOT FOR PRODUCTION SERVERS!
$CFG->debugdisplay = 1; // NOT FOR PRODUCTION SERVERS!
siehe auch: https://docs.moodle.org/en/Debugging#In_config.php
Weiterführendes:Weiterführendes
https://docs.moodle.org/en/Debugging
Debug-Messages konfigurieren: https://docs.moodle.org/en/Debugging#Debug_messages