Nextcloud mit Zabbix richtig überwachen

Nextcloud: Warum die selbstverwaltete Cloud mehr als nur eine Dateiablage ist

Wenn Unternehmen ihre Daten nicht in den Händen von US-Hyperscalern wissen wollen, bleibt oft nur der Griff zur Open-Source-Plattform. Nextcloud hat sich hier als eine Art Standard etabliert. Das Projekt aus Deutschland – oder besser gesagt, das Unternehmen dahinter – hat in den letzten Jahren einen beachtlichen Weg zurückgelegt. Was einst als Fork von ownCloud begann, ist heute ein Ökosystem, das Dateisynchronisation, Kommunikation, Kollaboration und sogar Videokonferenzen unter einem Dach vereint. Für IT-Entscheider stellt sich die Frage: Reicht das aus, um Microsoft 365 oder Google Workspace ernsthaft Konkurrenz zu machen? Die Antwort ist wie so oft: Es kommt darauf an.

Nextcloud glänzt vor allem dort, wo Datenhoheit und Compliance im Vordergrund stehen. Banken, Behörden, Forschungseinrichtungen oder mittelständische Unternehmen mit strengen Auflagen können ihre Infrastruktur selbst betreiben oder bei spezialisierten Anbietern hosten – ohne dass personenbezogene Daten ungewollt Dritte erreichen. Das ist das große Pfund, mit dem die Plattform wuchern kann. Aber der Betrieb einer eigenen Cloud ist kein Selbstläufer. Anders als bei einem fertigen SaaS-Produkt muss man sich um Aktualisierungen, Performance, Backup und eben auch um das Monitoring kümmern. Und genau da kommt Zabbix ins Spiel.

Doch bevor wir in die technischen Details der Überwachung eintauchen, lohnt ein genauerer Blick darauf, was Nextcloud heute eigentlich kann und wo die Hürden liegen. Denn eine Monitoring-Lösung allein macht noch keinen guten Betrieb – sie ist das Werkzeug, um Probleme frühzeitig zu erkennen. Das Fundament muss aber stimmen.

Nextcloud Hub: Mehr als nur eine Cloud-Sync-Lösung

Nextcloud hat in den vergangenen Jahren seine Funktionspalette massiv ausgeweitet. Mit dem sogenannten Nextcloud Hub werden Dateien, Termine, Kontakte, E‑Mail, Talk und Office-Dokumente in einer einheitlichen Oberfläche zusammengeführt. Die Idee ist bestechend: Statt sich durch verschiedene Anwendungen zu hangeln, hat der Anwender einen zentralen Zugriff auf alle Arbeitsmaterialien. Ob Collabora Online oder OnlyOffice – die Integration von Office-Funktionen ermöglicht das gleichzeitige Bearbeiten von Dokumenten, Tabellen und Präsentationen im Browser. Das ist kein Buzzword, sondern in vielen Organisationen gelebte Praxis.

Aus technischer Sicht bleibt Nextcloud eine PHP-Anwendung, die auf einem Webserver (Apache oder Nginx) läuft und typischerweise eine MariaDB oder PostgreSQL als Datenbank nutzt. Der Cache wird oft mit Redis oder dem APCu beschleunigt. Wer schon länger im Geschäft ist, kennt die typischen Performance-Engpässe: zu viele gleichzeitige Anfragen, träge Datenbankabfragen, unzureichend dimensionierte Storage-Systeme. Nextcloud selbst liefert in der Administrationsoberfläche einige Kennzahlen – etwa zur Auslastung des Hintergrund-Jobs, zur Speicherbelegung oder zur Anzahl angeschlossener Clients. Aber für einen systematischen Betrieb reicht das meist nicht aus.

Ein interessanter Aspekt ist die Art, wie Nextcloud Daten speichert. Standardmäßig werden Dateien im Dateisystem abgelegt, wahlweise auch mit Objektspeichern wie S3-kompatiblen Lösungen. Das ist einerseits flexibel, andererseits kann es zu Problemen kommen, wenn die Metadaten in der Datenbank und die tatsächlichen Dateien nicht mehr synchron sind. Daher ist ein Blick auf die Konsistenz und Integrität der Datenbanbank unerlässlich. Ein guter Indikator ist der OCC-Status, den Nextcloud über die Kommandozeile bereitstellt – aber auch das muss man erst einmal automatisiert abrufen.

Nextcloud Talk, die integrierte Kommunikationslösung, setzt auf WebRTC und benötigt entsprechende TURN/STUN-Server für die Medienübertragung. Gerade in größeren Umgebungen mit vielen gleichzeitigen Gesprächen werden die Anforderungen an die Netzwerkinfrastruktur schnell komplex. Ein Monitoring, das die Latenz, Paketverluste und die Auslastung der Talk-Dienste im Auge behält, ist hier Gold wert.

Betriebliche Herausforderungen: Warum professionelles Monitoring kein Luxus ist

Wer schon einmal eine Nextcloud-Instanz hat unerwartet in die Knie gehen sehen, weiss wovon ich rede. Ein fehlkonfigurierter Cron-Job, der keine Hintergrundaufgaben mehr ausführt, führt schnell dazu, dass der Benachrichtigungsdienst ausfällt oder der Speicher nicht aktualisiert wird. Die Benutzer sehen dann zwar noch ihre Dateien, aber Änderungen werden nicht synchronisiert. Der Frust ist groß, die IT-Abteilung wird zum Sündenbock – dabei hätte eine einfache Alarmierung über den Status des Cron-Dienstes das Problem vermeiden können.

Die typischen Schwachstellen einer Nextcloud-Installation lassen sich in drei Kategorien einteilen: Infrastruktur (CPU, RAM, Festplattenplatz, Netzwerk), Anwendung (PHP-FPM, Datenbankverbindung, Redis, Hintergrund-Jobs) und Sicherheit (auslaufende Zertifikate, veraltete Versionen, fehlgeschlagene Updates). Zabbix, als etabliertes Open-Source-Monitoring-System, kann alle drei Bereiche abdecken – vorausgesetzt, die richtigen Templates und Metriken sind im Einsatz.

Dabei zeigt sich, dass viele Admins die Überwachung auf reine Betriebsmittel beschränken: „Der Server läuft, die Platte ist nicht voll – dann wird schon alles ok sein“. Das ist ein Trugschluss. Denn eine Nextcloud-Instanz kann bei scheinbar ausreichenden Ressourcen in einen Zustand geraten, in dem sie für die Anwender faktisch unbrauchbar ist, etwa weil die PHP-OpCache zu selten trifft oder die Datenbankindizes fehlen. Genau hier setzt ein gutes Applikationsmonitoring an. Und Zabbix bietet dafür mit seinen Templates, der Low-Level-Discovery und den flexiblen Alarmierungsregeln ein hervorragendes Werkzeug.

Zabbix: Der Schatten hinter der Cloud

Zabbix ist in der IT-Landschaft kein Neuling. Es hat sich in den letzten 20 Jahren zu einer der führenden Open-Source-Monitoring-Lösungen entwickelt – und das nicht ohne Grund. Die Architektur mit einem zentralen Server, Datenbank und optionalen Proxies erlaubt es, sowohl kleine Umgebungen als auch tausende von Hosts zu überwachen. Die Konfiguration erfolgt entweder über die Weboberfläche oder via API und ist im Vergleich zu anderen Systemen (Prometheus, Nagios, Icinga) für viele Admins zugänglicher – auch wenn die Einarbeitungszeit nicht zu unterschätzen ist.

Für Nextcloud gibt es offiziell ein Community-Template, das von einem engagierten Entwickler im Zabbix-Forum bereitgestellt wird. Aber auch die Zabbix-Community hat eigene Vorlagen entwickelt, die verschiedene Aspekte der Anwendung abdecken. Das Schöne daran: Zabbix kann sowohl über den Agent (lokal auf dem Nextcloud-Server) als auch über HTTP-Requests und die Nextcloud-API Daten sammeln. So lassen sich Kennzahlen abgreifen, die weit über das hinausgehen, was ein einfaches Ping-Monitoring liefert.

Ein interessanter Aspekt ist die Fähigkeit von Zabbix, JSON- und XML-Daten zu parsen. Nextcloud bietet über die OCC-Werkzeuge oder die zentrale Konfigurationsdatei Ausgaben im JSON-Format. Wer sich die Mühe macht, diese in regelmäßigen Abständen via Cron-Skript auszulesen und an den Zabbix-Trapper zu senden, kann sich seine Überwachung massgeschneidert zusammenbauen. Das ist zwar etwas aufwändiger, aber extrem mächtig.

Nextcloud und Zabbix – die Praxisintegration

Bevor wir in die konkrete Konfiguration einsteigen, muss man sich klar machen: Es gibt nicht die eine, perfekte Zabbix-Vorlage für Nextcloud. Die Anforderungen variieren mit der Grösse der Installation, der genutzten Features und der vorhandenen Infrastruktur. Ein kleines Team mit 20 Benutzern wird andere Metriken priorisieren als ein Konzern mit 5000 Usern und mehreren geografisch verteilten Instanzen.

Die grundlegenden Items, die jede Nextcloud-Überwachung mit Zabbix abdecken sollte, sind:

Basis-Check der Anwendung: HTTP-Statuscode der Login-Seite, Antwortzeit, Vorhandensein der nächsten Cloud-URL – oft reicht schon ein einfacher Web-Check, um festzustellen, ob der Webserver antwortet. Aber Vorsicht: Eine Weiterleitung auf eine Wartungsseite würde ebenfalls einen 200er liefern, also sollte man auch den Inhalt prüfen (Stichwort: reguläre Ausdrücke im Zabbix-Web-Item).

Version der Nextcloud-Instanz: Aus Security-Sicht extrem wichtig. Nextcloud veröffentlicht regelmässig Sicherheitsaktualisierungen („Maintenance Releases“). Wer eine Version fährt, die älter als der aktuelle Minor-Release ist, sollte sofort alarmieren. Die Versionsnummer ist über die Status-Seite /status.php abrufbar oder per OCC. Ein Zabbix-Trigger, der auf eine veraltete Version schliesst, lässt sich leicht programmieren – und spart im Ernstfall viel Ärger.

Cron-Job-Status: Ein absolutes Muss. Nextcloud protokolliert, wann der letzte Hintergrund-Job ausgeführt wurde (über OCC background-job:status). Ist dieser Wert älter als eine bestimmte Zeit – etwa fünf Minuten bei Intervall‑Cron –, läuft etwas schief. Die Alarmierung sollte sofort erfolgen, denn ohne regelmässige Cron-Ausführung verliert Nextcloud seine Synchronisierungsfähigkeit.

Speicherbelegung: Nextcloud hat ein Feature, das den belegten Speicherplatz im Data‑Directory überwacht. Das ist nützlich, aber nicht ausreichend. Besser ist es, direkt das Dateisystem des Servers zu beobachten (über den Zabbix-Agent) und zusätzlich die Datenbankabfrage nach der Gesamtgrösse der Dateien (SELECT SUM(size) FROM oc_filecache) zu integrieren. Ein Vergleich zwischen Dateisystemnutzung und Datenbankeintrag kann Inkonsistenzen aufdecken.

Datenbankverbindung: Über den Zabbix-Agent kann man den MySQL/MariaDB-Server überwachen. Doch Nextcloud zeigt auch firmeneigene Datenbankmetriken, etwa über OCC db:status. Dort wird die Anzahl offener Verbindungen, die Grösse der Datenbank und die Laufzeit von Abfragen angezeigt. Diese Werte auf dem Dashboard abzubilden, gibt einen guten Eindruck vom Datenbankzustand.

Performance-Metriken: PHP-FPM-Status, OpCache, Redis-Hitrate – all das sind typische Engpässe. Der Zabbix-Agent liefert hier Systemmetriken. Für Redis kann man das Zabbix-Template für Redis einsetzen, das die Auslastung des Caches, die Evict-Rate und die Speichernutzung anzeigt. Nextclouds Front-Controller ist stark von einem gut gefüllten OpCache abhängig – sinkt die Hitrate unter 90%, sollten Massnahmen ergriffen werden.

Benutzer und Aktivität: Die Anzahl der registrierten Benutzer ist eine relative statische Grösse. Spannender ist die Anzahl der aktiven Benutzer in den letzten 24 Stunden. Nextcloud speichert dies in der Datenbank (oc_activity). Wer diese Daten mit Zabbix abfragt, kann sehen, ob die Plattform tatsächlich genutzt wird – oder ob sie verwaist. Ein plötzlicher Einbruch der Aktivität kann auf einen fehlerhaften Client, ein Netzwerkproblem oder eine inakzeptable Performance hinweisen.

Sicherheitswarnungen: Nextcloud selbst protokolliert sicherheitsrelevante Ereignisse, etwa fehlgeschlagene Anmeldungen, unbekannte Geräte oder veraltete Integritätschecks. Diese können über das OCC‑Tool security:check abgerufen werden. Ein Zabbix-Trigger, der bei neuen Sicherheitswarnungen feuert, ist ein effektives Frühwarnsystem.

Praktische Umsetzung: Von der API zum Zabbix-Dashboard

Die direkte Einbindung der Nextcloud-API in Zabbix ist der eleganteste Weg. Allerdings erfordert das etwas Bastelarbeit. Nextcloud bietet eine REST-API für viele Funktionen – etwa das Abrufen der Speicherstatistiken oder des Aktivitätslogs. Diese API setzt eine Authentifizierung mittels App-Passwort voraus. Man kann also einen Benutzer mit eingeschränkten Rechten anlegen und ihn in Zabbix als HTTP-Authentifizierung hinterlegen. Dann definiert man ein Macro-Item, das beispielsweise die JSON-Antwort von /ocs/v2.php/apps/serverinfo/api/v1/serverinfo abruft. Zabbix kann daraus via JSONPath die gewünschten Werte extrahieren.

Das klingt aufwändiger als es ist – in der Praxis reichen oft zehn bis fünfzehn Items, um ein aussagekräftiges Bild zu erhalten. Ein Beispiel: Der Item-Schlüssel nextcloud.serverinfo.spaces.total liefert die gesamte Speicherkapazität. Wer diese mit einem zweiten Item für den belegten Speicher kombiniert, kann einen Trigger definieren, der warnt, wenn die Auslastung 90% übersteigt – aber eben in Bezug auf den wirklichen Datenbestand, nicht auf das leere Dateisystem.

Für die Überwachung des Hintergrunddienstes gibt es ein hervorragendes Skript im Nextcloud-Admin-Handbuch, das den Status des Cron-Jobs als JSON ausgibt. Man kann dieses Skript per Cron auf dem Nextcloud-Server ausführen und die Daten mit dem Zabbix-Sender (zabbix_sender) an den Server übermitteln. Das ist simpel, robust und vermeidet die Komplexität einer API-Integration, wenn man nur wenige Metriken braucht. Der Nachteil: Es funktioniert nur lokal, nicht für verteilte Instanzen.

Ein weiterer Weg – und der wird oft gewählt, weil er am wenigsten Eingriffe in die Nextcloud-Konfiguration erfordert – ist die Verwendung der offiziellen Nextcloud-App „Server Info“. Diese App stellt systemnahe Informationen wie CPU-Auslastung, RAM, Plattenplatz und PHP‑Parameter in der Administrationsoberfläche dar. Sie kann auch über die API abgefragt werden (ebenfalls via /ocs/v2.php/apps/serverinfo). Das ist ein guter Ausgangspunkt, aber keinesfalls vollständig. Wer nur die Server‑Info-App überwacht, bekommt keine Einblicke in die Anwendungslogik.

Eine praxisnahe Konfiguration kombiniert daher mehrere Quellen: den Zabbix-Agent für Betriebssystem und Datenbank, HTTP-Webchecks für die Erreichbarkeit, API-Items für Nextcloud-spezifische Metriken und einen Cron-Job für den Hintergrund-Job-Status. Das mag redundant erscheinen, aber gerade in produktiven Umgebungen will man kein Risiko eingehen. Ein Beispiel: Ein Netzwerkfehler könnte dazu führen, dass weder die API noch der Webcheck erreichbar ist. Dann schlägt der Zabbix-Trigger für den HTTP-Status aus – und man weiss sofort, dass kein Login mehr möglich ist.

Alarme und Automatisierung: Mehr als nur ein Piepser

Zabbix kann nicht nur messen, sondern auch reagieren. Die Trigger lassen sich mit Aktionen verknüpfen, die etwa eine E‑Mail an den Admin schicken, einen Slack‑Bot aktivieren oder ein Ticketsystem füttern. Wer die Integration mit einem IT‑Service‑Management (ITSM) hat, kann Fehler direkt als Störungsticket eskalieren. Das macht die Überwachung erst richtig wertvoll, denn ohne automatisierte Eskalation geht der Alarm im täglichen Rauschen schnell unter.

Ein interessantes Beispiel: Nextcloud gibt in der Administrationsoberfläche eine Warnung aus, wenn der LDAP‑Verbindungstest fehlschlägt oder wenn eine App‑Aktualisierung aussteht. Genau diese Informationen kann man über die OCC-API auslesen. Ein Zabbix-Trigger, der auf den Wert „1“ (Warnung) prüft, lässt sich so einstellen, dass er nur einmal pro Stunde auslöst – sonst würden Dauerwarnungen schnell übersehen. Und die Aktion könnte den Administrator per E‑Mail mit dem genauen Fehlercode informieren, sodass er nicht erst das Admin‑Panel durchsuchen muss.

Eine andere, eher unkonventionelle Möglichkeit: Zabbix kann auch selbst heilend eingreifen. Wenn der Cron‑Job nicht läuft, könnte ein Zabbix-Trigger via Remote-Kommando ein Skript starten, das den Service restartet oder den Administrator per Telegram benachrichtigt. Das sollte man jedoch mit Bedacht einsetzen – nicht jeder Cron‑Fehler sollte automatisch zu einem Restart führen, denn die Ursache könnte ein tieferliegendes Problem sein (z.B. Speichermangel). Aber als Notnagel für standardisierte Umgebungen ist es durchaus sinnvoll.

Grenzen der Überwachung: Was Zabbix nicht leisten kann

So mächtig Zabbix auch ist – es gibt Aspekte der Nextcloud-Anwendung, die sich damit nur schwer abbilden lassen. Etwa die Benutzererfahrung: Wie schnell laden die Dateien im Webinterface? Wie hoch ist die Latenz bei gleichzeitigen Bearbeitungen in Collabora? Hier stösst das traditionelle Monitoring an Grenzen. Zabbix kann zwar die Antwortzeiten des Webservers messen, aber nicht die subjektive Verzögerung, die ein Benutzer empfindet. Dafür braucht es synthetisches Monitoring oder Application Performance Management (APM) wie Site24x7, New Relic oder das Open‑Source‑Tool OpenTelemetry.

Auch die Überwachung von Nextcloud-Desktop-Clients ist nur indirekt möglich. Der Client selbst sendet keine Metriken an Zabbix – man müsste die Synchronisationslogs auswerten oder bei grossen Umgebungen ein zentrales Client-Management (MDM) nutzen. Ein schleichender Fehler, der sich nur auf Client-Seite zeigt (z.B. defekte Ignorier-Listen), wird vom Zabbix-Server nicht erkannt. Das ist eine grundsätzliche Einschränkung.

Ein weiterer Punkt: Die Datenmenge. Wenn man zu viele Items definiert (etwa für jeden Benutzer eine Metrik), kann die Zabbix-Datenbank schnell überlasten. Hier ist Fingerspitzengefühl gefragt. Besser ist es, aggregierte Werte zu überwachen anstatt jedes einzelne Log-Ereignis. Zabbix bietet dafür die Möglichkeit, Daten über den Zabbix-Trapper zu sammeln und vorzuverarbeiten – aber es ist keine Big‑Data-Plattform. Wer wirklich tief ins Detail gehen will (z.B. jeden API-Fehler protokollieren), sollte auf ELK Stack (Elasticsearch, Logstash, Kibana) oder eine ähnliche Lösung setzen.

Alternativen zu Zabbix für Nextcloud-Monitoring

Zabbix ist sicher nicht die einzige Option, aber sie ist eine der ausgereiftesten. Checkmk, das ebenfalls aus dem deutschsprachigen Raum kommt, hat einen ähnlichen Ansatz und bietet spezielle Agenten für Applikationen. Auch Nagios und Icinga sind tauglich, verlangen aber mehr manuelle Konfiguration. Prometheus mit seinem Pull‑Modell und den Exportern wird immer beliebter – insbesondere in Container-Umgebungen. Für ein klassisches Nextcloud-Setup auf einem virtuellen Server ist Zabbix jedoch oft die unkompliziertere Wahl, weil es viele Betriebsmittel- und Datenbank-Metriken gleich mitliefert.

Ein Trend in den letzten Jahren ist die Verwendung von OpenTelemetry für die Sammlung von Traces und Metriken aus der Anwendung selbst. Geplant ist, dass Nextcloud in zukünftigen Versionen eine Prometheus-kompatible Metrik-Schnittstelle anbietet. Bis dahin bleibt man auf Eigenbau angewiesen. Aber die Community arbeitet daran – manche Forks von Nextcloud haben sogar einen integrierten Metrik-Exporter. Es lohnt sich also, die Release‑Notes im Auge zu behalten.

Fazit: Monitoring ist kein Add-on, sondern Teil des Betriebs

Wer Nextcloud ernsthaft einsetzt, sollte sich nicht darauf verlassen, dass die Administrationsoberfläche alle Probleme anzeigt. Sie ist ein guter Ausgangspunkt, aber kein Ersatz für ein professionelles Monitoring. Zabbix bietet die ideale Symbiose aus Betriebsmittel- und Applikationsüberwachung – vorausgesetzt, man nimmt sich die Zeit, die richtigen Metriken zu identifizieren und die Alarme sinnvoll zu konfigurieren.

Die Integration ist nicht trivial, aber auch kein Hexenwerk. Mit etwas Skripting und einem Blick in die Nextcloud‑Dokumentation bekommt man ein System, das einen frühzeitig warnt, wenn der Cron Job schlapp macht, die Version veraltet ist oder der Speicher knapp wird. In einer Zeit, in der Ausfallzeiten und Datenverluste immer teurer werden, ist das eine Investition, die sich schnell amortisiert. Denn nichts ist teurer als eine Cloud, die ihren Benutzern nicht mehr dienen kann – und die IT hat dann nicht einmal einen Hinweis darauf erhalten.

Man mag über die Entscheidung von Nextcloud, auf PHP zu setzen, denken, wie man will – Fakt ist, dass diese Plattform in vielen Unternehmen unverzichtbar geworden ist. Und Fakt ist auch, dass eine gut geölte Überwachung der Schlüssel ist, um diesen Betrieb reibungslos zu gestalten. Zabbix kann diesen Schlüssel liefern. Man muss nur den richtigen Schliessmechanismus wählen.