Auf Fehlersuche? Tipps zu ePartool, Antragsgrün, Nextcloud, WordPress & Co.

Wenn dieser Fehler auftaucht, ist guter Rat teuer … oder?

Mittlerweile stehen viele hochwertige Open-Source-Anwendungen für eure Onlineauftritte oder Onlinezusammenarbeit zur Verfügung. Auch wenn sich Entwickler*innen große Mühe geben eine tolle Software zu schreiben, so schleichen sich doch immer wieder Fehler ein. Ebenso können sich im Zusammenspiel zwischen Anwendung und eigenem Server Probleme auftun, die einer Lösung bedürfen. Vor der Lösung steht jedoch die Fehlersuche: Oft lässt sich nicht per Augenschein erkennen, woran es hakt. Im Folgenden geben wir ein paar Tipps, wie ihr euch dem Problem nähert.

Die Log-Datei ist dein Freund!

Glücklicherweise werdet ihr bei der Fehlersuche von der Software aktiv unterstützt. Die meisten Anwendungen und auch die Server selbst legen verschiedene Protokoll-Dateien an. In diesen wird aufgezeichnet, welche Aktionen stattgefunden haben bzw. bei welchen Aktionen unvorhergesehene Ereignisse auftraten. Aus unserer Erfahrung lohnt es sich bei Problemen im ersten Schritt die Log-Dateien der betroffenen Anwendung anzusehen. Die meisten Fehler lassen sich hierüber bereits eingrenzen.

Log-Dateien werden fast immer als Dateien mit der Endung .log angelegt. Es handelt sich dabei aber in der Regel um Textdateien, die sich mit jedem beliebigen Editor öffnen lassen (Notepad, Wordpad, usw.).

In den Logs der Anwendungen wird in der Regel protokolliert, wenn einzelne Funktionen oder Programmbibliotheken eine Aufgabe nicht ausführen konnten. Das könnte z.B. daran liegen, dass Zugriffsrechte nicht korrekt gesetzt waren, benötigte Dateien nicht gefunden wurden, ein Datenbankserver nicht oder nicht schnell genug geantwortet hat, oder Funktionen schlichtweg Fehler hatten (Beispiel: Versuch durch 0 zu teilen). Dennoch können sich die Inhalte der Log-Dateien bisweilen sehr unterscheiden – die Entwickler*innen können sich dafür entscheiden, nicht nur fatale Fehler zu vermerken, sondern auch bereits Warnmeldungen oder auch erfolgreich durchgeführte Aktivitäten. Letzteres kann zwar von Interesse für die Entwickler*innen sein, allerdings im Dauerbetrieb auch mit Datenschutzerfordernissen kollidieren. Daher lassen sich Anwendungen häufig darauf konfigurieren, ob sie sich im Betriebsmodus für „Entwicklung“ (development, debug modus) oder für „Produktion“ befinden.

Anhand von vier Anwendungen möchten wir euch beispielhaft aufzeigen, wo Log-Dateien zu finden sind:

Antragsgrün: Die Software zur demokratischen Texterstellung führt eine Log-Datei unter /runtime/logs/app.log. Die Einträge sind dabei sehr ausführlich gehalten.

ePartool: Das DBJR-Konsultationswerkzeug führt eine Log-Datei unter /runtime/logs/application.log. Die neuesten Einträge finden sich ganz unten.

Nextcloud: Die populäre Open-Source-Plattform für Dateiaustausch und Zusammenarbeit führt zwei unterschiedliche Log-Dateien. Während die Datei /data/updater.log nur über Installationsvorgänge Buch führt, ist die Datei /data/nextcloud.log für den täglichen Betrieb gedacht. Nextcloud beinhaltet zudem eine Zugriffsmöglichkeit auf diese Log-Datei über das Admin-Backend. Hier kann man auch einstellen, welche Art von Fehlern oder Problemhinweisen protokolliert werden sollen.

WordPress: In der Standardinstallation führt das CMS keine Log-Datei. Durch zwei Einträge in der Datei wp-config.php kann das Loggen aber aktiviert werden:

define('WP_DEBUG', true);

define('WP_DEBUG_LOG', true);

Weitere Informationen finden sich unter https://codex.wordpress.org/Debugging_in_WordPress.

Wenn man Log-Dateien über das administrative Backend betrachten und auswerten möchte, muss zudem ein Plugin installiert werden, z.B. der »Error Log Monitor« [https://de.wordpress.org/plugins/error-log-monitor/]

Weitere Log-Dateien

Gelegentlich helfen die Log-Dateien der Anwendungen aber nicht weiter. Das kann daran liegen, dass die Anwendung auf Probleme stößt, die außerhalb ihrer eigenen Analysemöglichkeit liegen. Im Extremfall wäre das bei einem Hardware-Defekt der Fall: Ob alle Kabel richtig stecken oder ob der Servercomputer selbst richtig rechnet, kann eine Anwendung kaum erkennen. Auf Log-Dateien der Betriebssystem-Ebene hat man jedoch in der Regel als Mieter*in eines Webhostings keinen Zugriff. Professionelle Provider stellen durch Überwachungsprogramme sicher, dass diese Art von Fehlern von ihnen selbst zeitnah entdeckt werden.

Zwischen dem Betriebssystem und Anwendungen wie den vier oben genannten liegt allerdings noch die installierte Web-Server-Software. Ein Web-Server ist meist als Sammelbegriff mehrerer Programme zu verstehen und beinhaltet neben dem eigentlichen Web-Server-Programmen wie Apache oder Nginx auch die PHP-Programmiersprache oder eine Datenbank). Diese alle führen ebenfalls Log-Dateien.

Welche Log-Datei hilft wann:

Web-Server: Hier werden der Zeitpunkt und die Herkunft der Zugriffe (IP-Adressen), Größe der abgerufenen Dateien und Statusmeldungen zu den einzelnen Verbindung geloggt. So lässt sich schnell herausfinden, ob es zeitgleich übermäßig viele Zugriffe gab (und daher der Server sehr langsam wurde) oder ob bestimmte Dateien nicht gefunden wurden (die bekannte Statusmeldung 404). Probleme im internen Programmablauf, die nicht die Zugriffe betreffen, werden meistens in einer separaten Log-Datei protokolliert.

PHP: Programmierfehler sind häufig kleine Tippfehler, wie eine vergessene Klammer zum Abschluss einer Funktion oder ein Buchstabendreher. Wenn der PHP-Interpreter nicht versteht, was er zu tun hat, können diese Fehler entweder geloggt oder direkt angezeigt werden. Letzteres hilft zwar, Fehler schnell zu finden, verrät aber Externen auch viel über mögliche Angriffspunkte. Bei PHP-Skripten kann man auch ohne viel Programmiererfahrung das Anzeigen von Fehlern aktivieren, indem man in die ersten Zeilen (nach dem Startkennzeichen <?php) folgende Befehle ergänzt:

error_reporting(E_ALL);
ini_set('display_errors', '1');

Voraussetzung dafür, dass nun konkrete Fehlermeldungen angezeigt werden, ist, dass der Server grundsätzlich dazu konfiguriert ist. Bei den meisten Providern lässt sich das im Administrationsmenü aktivieren und wieder deaktivieren. Bei direktem Server-Zugang und Schreibrechten auf die php.ini-Einstellungsdatei lässt sich dies durch display_errors = on aktivieren.

Datenbank: Da es verschiedene weit verbreitete Datenbanken gibt, fällt die Erkenntnismöglichkeit hier sehr unterschiedlich aus. General lässt sich über die Log-Datei herausfinden, ob der Service korrekt gestartet wurde, ob es gescheiterte Zugriffsversuche gab (z.B. wenn die Zugangspasswörter in der zugreifenden Anwendung falsch abgespeichert waren). Möglicherweise kann man über die Statusmitteilungen auch herausfinden, ob Datenbank-Anfragen ineffizient gestellt wurden und daher sehr lange zur Beantwortung brauchten oder gar komplett scheiterten. Dies könnte z.B. der Fall sein, wenn Suchindizes nach größeren Datenveränderungen nicht neu angelegt wurden oder durch zu viele parallel Schreibvorgänge versucht wurden. Auch der Ursprung von fehlerhafte Zeichenausgabe (Umlaute oder falsche Symbole) könnte hier liegen: Die Kette der Zeichenkodierung muss von der Datenbankablage über die Verbindung und Verarbeitung bei der Anwendung bis hin zum Browser bei den Nutzer*innen durchgehend richtig sein.

Der Einfluss von Fehler-Logs auf die Rechenzeit

Das Erstellen von Log-Dateien benötigt immer etwas Rechenzeit. Diese fällt umso größer aus, wenn man sich auf einem höheren Software-Level befindet (System → Server-Software → Anwendung). Daher lohnt es sich bei viel frequentierten Internet-Angeboten, im stabilen Betrieb das Logging durch die Anwendungen soweit wie möglich zu reduzieren.

Tipp: Nextcloud komfortabler verwalten mit »OCC Web«

Nextcloud ist ein datenschutzbewusster Gegenentwurf zu den großen Cloudanbietern und bietet vielfältige Möglichkeiten für Dateiaustausch und Onlinezusammenarbeit. Diese selbst betriebene Cloud ist dabei ausgesprochen genügsam: Sogar auf einfachen, gemieteten Webhosting-Paketen kann Nextcloud eingerichtet und mit Freund*innen und Kolleg*innen genutzt werden – sogar noch parallel zu einer bestehenden Website. Zusätzlich Kosten für den Betrieb können so vermieden werden.

Wer so eine kleine Nextcloud-Instanz betreibt, kann damit ohne Weiteres mit 20-50 gleichzeitig aktiven Nutzer*innen zurechtkommen: Die meisten Funktionen und Erweiterungs-Apps funktionieren ganz wunderbar. Einschränkungen treten im Betrieb am ehesten in Erscheinung, wenn mehrere Personen zeitgleich mit derselben Datei arbeiten oder auf aufwändige Funktionen zugreifen. In solchen Fällen geht nichts kaputt, aber es kann passieren, dass Nextcloud Dateien zu konservativ vor einem Löschversuch schützt.

Während die Nutzung von Nextcloud auf einfachen Webhosting-Paketen gut möglich ist, sind hier vor allem die administrativen Funktionen eingeschränkt: Auf einem „richtigen“ Server kann das Nextcloud-eigene Konfigurationswerkzeug OCC benutzt werden; kostengünstige Shared-Hostings erlauben jedoch meist keinen SSH- und damit keinen Befehlszeilen-Zugriff. Das erschwert Wartungsarbeiten, insbesondere wenn nach einer Versionsaktualisierung bestimmte Datenbank-Aktionen oder Neuindizierungen empfohlen werden oder zentrale Aufgaben für mehrere Nutzer*innen anstehen. Diese Aufgaben per Hand direkt in der Datenbank oder in diversen Installationsverzeichnissen zu erledigen ist unkomfortabel, technisch anspruchsvoll und fehleranfällig. Bisher gab es dazu aber keinen anderen Weg.

Das Wehklagen der Admins wurde von den Nextcloud-Entwickler*innen jedoch ernst genommen: Seit wenigen Tagen existiert ein Plug-in (in Nextcloud-Sprache: „App“), das die Befehlszeileneingabe direkt im Backend nachrüstet: Ein Admin kann sich also ins Backend einloggen und die notwendigen OCC-Befehle hierüber eingeben. Auch ist diese „OCC Web“ genannte Erweiterung recht hilfsbereit und zeigt nach Drücken der ENTER-Taste alle verfügbaren Befehle und deren Bedeutung an. Auch Wartungsfunktionen für andere installierte NC-Apps stehen bereit.

Befehlsübersicht von OCC_Web

Als Admin sollte man sich bei allen Vorteilen von »OCC Web« dennoch überlegen, ob man diese Erweiterung nur anlassbezogen oder dauerhaft einrichtet. Möglicherweise tun sich über die administrativen Funktionen Angriffsvektoren für Bots oder Schädlinge auf, die die Nextcloud-Instanz übers Web erreichen können. Generelle gilt, dass jede installierte App stellt ein mögliches Einfalltor darstellt, vor allem wenn sie sich noch recht jung in Entwicklung befindet. Daher könnte es sinnvoll sein, OCC Web nur im konkreten Bedarfsfall zu installieren und danach wieder herauszunehmen – in Nextcloud eine Sache von wenigen Sekunden.

Und wofür steht nun eigentlich das Kürzel »OCC«? „OCC“ wurde bereits eingeführt, als sich das Nextcloud-Projekt noch nicht von OwnCloud abgetrennt hatte. Daher bedeutet die Abkürzung OCC vermutlich „OwnCloud Configuration“ und wurde in Nextcloud so beibehalten.

Nextcloud: Was passiert mit Dateien, wenn ein Nutzeraccount gelöscht wird?

Nextcloud ist eine freie Software zum Teilen und gemeinsamen Bearbeiten von Dateien, Terminen, Aufgaben, zum Chatten, Videokonferieren, Zusammenarbeiten und Vielem mehr. Nextcloud skaliert dabei von kleinen Teams bis vielen tausenden Nutzer*innen – und bereits auf recht einfachen Webhosting-Paketen können kleine Organisationen und Teams schon sehr gut zusammenarbeiten. Der eigene Nextcloud-Server kann dabei hervorragend mit weiteren Nextclouds, Ownclouds und anderen interagieren: Die Vernetzung über den eigenen „Serverrand“ ist also schon mitgedacht.

Meine Daten gehören mir! Der empowernde Ansatz von Nextcloud

Nextcloud und ihr Quasi-Vorfahre ownCloud sind aus dem Gedanken entstanden, dass Nutzer*innen die Herrschaft über ihre Daten behalten sollten. Bei großen kommerziellen Anbietern werden Daten in irgendeinem Datenzentrum gespeichert (und man hat keinen Einfluss darauf wo genau das ist). Bei Nextcloud ist das anders: Man entscheidet selbst, ob man »die Cloud« bei sich zu Hause installiert oder irgendwo anders.

Dateien in Nextcloud können auf vielfältige Art freigegeben und geteilt werden: persönlich, öffentlich, Cloud-übergreifend; mit und ohne Schreibberechtigung, Ablaufdatum, Schlagwörtern und Erklärnotizen. Im Bildschirmausschnitt ein paar der Möglichkeiten.

Teams arbeiten zusammen, aber nicht für immer

Teams sind nicht beständig – mal kommen neue Personen hinzu, mal steigen Akteure wieder aus. Was bedeutet das für die Zusammenarbeit auf Basis der Nextcloud? Wenn neue Personen hinzukommen, dann ist die Sache meist recht einfach: Man holt sie neu in Gruppen (systemzentral eingerichtete Gruppen) oder Kreise (von Personen gestartete Gruppen) hinzu oder teilt ganz individuell die relevanten Dateien. Problematisch ist jedoch, wenn Personen aus einem Team aussteigen. Hier herrscht unserer Erfahrung nach viel Unsicherheit über die Daten, die in der gemeinsamen Zeit entstanden sind.

Was passiert mit Dateien, wenn ein Nutzeraccount entfernt wird?

Bildschirmdialog Nutzer entfernen

Nutzeraccounts in Nextcloud können entweder deaktiviert oder ganz gelöscht werden.

Wir haben nachgeforscht und stellen euch hier die verschiedenen Varianten vor. Grundsätzlich ist es so, dass Nutzeraccounts deaktiviert oder ganz gelöscht werden können. „Deaktiviert“ bedeutet, dass sich diese Person nicht mehr einloggen kann, die erstellten Dateien aber noch vorhanden sind – also auch für alle, mit denen etwas geteilt oder gemeinsam erstellt wurde.

Ob Daten für Teampartner*innen noch vorhanden sind, wenn ein Account komplett gelöscht wird, ist abhängig vom Speicherort.

1. Persönlich erstellte Dateien der Person: werden mit Nutzeraccount gelöscht.

2. Persönlich erstellte Dateien, die mit anderen Personen geteilt wurden: sind mit Löschung des Nutzeraccounts ebenfalls für die anderen Personen nicht mehr vorhanden.

3. Persönlich erstellte Dateien, mit anderen geteilt und von diesen bereits bearbeitet: Hier überwiegt ebenfalls, wer die Datei angelegt hat – und somit werden diese Dateien inkl. aller Bearbeitungen beim Löschen des Ursprungs-Nutzeraccounts ebenfalls gelöscht.

4. Persönlich erstellte Dateien, in einem Ordner gespeichert, der von jemandem Anderen erstellt und mit mir geteilt wurde: Hier überwiegt der Ursprung des Ordners – wenn von jemandem Anderen erstellt (und mit dem zu löschenden Account geteilt), dann bleiben die Dateien bestehen.

5. Persönlich erstellte Dateien, in einem Gruppenordner gespeichert: Auch ein Gruppenordner wurde von jemand Anderes erstellt (nämlich dem System) und daher bleiben hier erstellte Dateien unabhängig von den Personen, die die Dateien erstellt oder bearbeitet haben, bestehen.

Was also tun, wenn euch ein*e Kolleg*in verlässt?

Falls sich bei euch Fall 2 oder 3 als Problem andeutet, könnt ihr dem Verlust von Daten vorbeugen: Jemand, mit dem/der die Dateien geteilt wurden, kann sie herunterladen und dann neu (als eigene Dateien oder in einem Gruppenordner) wieder hochladen. Dieser Weg erscheint möglicherweise nicht als bequem, aber ist als kleiner Handel für den höheren Schutz der eigenen Daten durchaus zu verschmerzen.

– – –

Wir haben diese Zusammenstellung mit der aktuellsten Nextcloud-Version 14.0.3 getestet. Wen ihr andere Erfahrungen in Nextcloud-Erweiterungen (die „Apps“) gemacht habt, kommentiert und ergänzt gerne!