Systemdiagnose und Nutzungsanalyse
Libre WebUI bietet Administratoren zwei Live-Ansichten der Instanz: System für Host- und Laufzeitdiagnose sowie Nutzung für Modell- und Anbieteranalyse. Beide sind in Backend und Oberfläche nur für Administratoren zugänglich. Das Lesen bleibt innerhalb der Bereitstellung; optionale externe Telemetrie ist ein separater, betreiberkonfigurierter Pfad der Beobachtbarkeit.
Du erreichst sie über Administratoreinträge, Kurzbefehle oder direkt unter /system
und /usage. Andere Benutzer können sie nicht öffnen; Registerkarten schließen,
wenn ein Konto die Rolle admin verliert.
Systemdiagnose
Die Systemseite (/system) zeigt:
- Host: Name, Plattform, Kernelversion, Architektur, Laufzeit, logische CPUs, CPU-Modell, Lastmittel und mögliche Containerisierung. Eine CPU-Auslastung in Prozent gibt es nicht; angezeigt wird nur das Lastmittel.
- Laufzeit: Anwendungs- und Node.js-Version, Prozess-ID, Prozesslaufzeit und Arbeitsverzeichnis.
- Speicher: gesamter, freier und verwendeter Hostspeicher sowie RSS und Heap.
- Dateisysteme: Kapazität und Nutzung des Laufzeitdateisystems (
/) und Datenverzeichnisses (DATA_DIR). - Netzwerk: Schnittstellennamen und Adressen, unter Linux mit empfangenen und gesendeten Bytes.
- Docker: Engine-Version, Host-Betriebssystem, Kernel, CPU und Speicher laut Engine sowie Containerzahlen und reduzierte Liste, wenn der Socket verfügbar ist.
Die Seite aktualisiert sich bei fokussierter Registerkarte alle 30 Sekunden und hat
eine manuelle Schaltfläche. Der Endpunkt GET /api/system ist durch
Authentifizierung, aktive Administratorrolle und 120 Anfragen je Benutzer in 15
Minuten geschützt. Antworten werden nie gecacht (Cache-Control: no-store), jede
Anfrage liest neue Werte.
Docker-Socket-Abhängigkeit
Der Endpunkt wird wie bei Work und Terminal aufgelöst: WORK_DOCKER_SOCKET, wenn
gesetzt (immer lokaler Unix-Pfad), andernfalls DOCKER_HOST – unix:// oder ein
unverschlüsselter tcp://-HTTP-Endpunkt wie ein gefilterter Proxy – und zuletzt
/var/run/docker.sock. ssh://, npipe:// und tcp:// mit TLS-Prüfung werden
bewusst nicht abgefragt. Es werden ausschließlich schreibgeschützte Engine-GETs
(Version, Info, Liste) mit 4 Sekunden Zeitlimit und begrenzter Antwortgröße
ausgeführt; die Liste ist auf 100 Einträge beschränkt.
Ohne nutzbaren Socket funktioniert der Rest: Das Docker-Panel erklärt, ob er nicht gemountet, unlesbar, der Daemon nicht erreichbar oder der Endpunkt remote ist.
Sichtbare Informationen und Empfänger
Die Liste enthält absichtlich nur kurze ID, Name, Image, Status und Erstellungszeit. Umgebungsvariablen, Labels, Mounts, Befehle, Inspect-Nutzlasten und Anmeldedaten sind nie enthalten.
Trotzdem zeigt die Seite echte Infrastrukturdetails: Hostname, Arbeitsverzeichnis,
interne IPs und alle Container des Docker-Hosts, nicht nur Libre WebUI. Das entspricht
dem Vertrauensmodell: Jeder Libre WebUI-Administrator ist bei Docker praktisch
Hostadministrator (siehe Docker). Vergib admin entsprechend.
Nutzungsanalyse
Die Nutzungsseite stellt benutzerzugeordnete Modell- und Anbieterarbeit dar. Die Messung erfolgt an jeder unterstützten Ausführungsgrenze und umfasst:
- lokale Ollama-Chataufrufe, einschließlich nativer Chats und Ollama-Work;
- installierte Agent-CLI-Chataufrufe;
- pluginbasierte Chats mit und ohne Streaming;
- pluginbasierte Embeddings, Bilder, Sprache-zu-Text, Text-zu-Sprache, Audio und Video; sowie
- pluginbasierte Work-Aufrufe.
Hintergrundvorgänge ohne Eigentümer werden keinem künstlichen Konto zugeordnet und nicht gemessen. Fehlgeschlagene oder abgebrochene Aufrufe werden dennoch erfasst.
Jedes Ereignis speichert:
- Anbieter-/Plugin-ID und Momentaufnahme des Anzeigenamens (
ollamaundagent-cli:*nutzen dasselbe Ledger) - Fähigkeit (
chat,embedding,image,stt,tts,audio,video) - Modell
- Status
success,errorodercancelled(abgebrochener Stream ist abgebrochen) - Tokenzahlen nur bei gemeldeten Nutzungsmetadaten
- passende Einheiten (TTS-Zeichen, Bilder, Embedding-Eingaben, Videojobs, Audiobytes)
- Gesamtdauer und Zeitstempel
- Benutzer-ID
Nichts anderes wird gespeichert. Prompts, Antworten, Endpunkte, Anmeldedaten und
Fehler-Bodies gelangen nie in die Nutzungstabelle – ein Fehler wird nur als
status = 'error' erfasst. Ereignisse liegen in der ausgewählten Datenbank (SQLite
im Einzel-, PostgreSQL im Teammodus) und bleiben 400 Tage; ältere Zeilen werden
beim Schreiben höchstens einmal täglich entfernt. Die Messung erfolgt nach bestem
Bemühen und kann Anfragen nie fehlschlagen lassen.
Die Seite bietet 7, 30 und 90 Tage über
GET /api/plugins/usage?days=<1..365> (Standard 30). Sie zeigt Gesamtaufrufe,
gemeldete Tokens, Erfolgsquote, mittlere Latenz, Tagesdiagramm, Modelltabelle,
Plugin-Anteile und Fähigkeitenmix. Tokenwerte enthalten nur gemeldete Nutzung.
Es gibt keinen Schalter zum Deaktivieren. Da Daten kontoübergreifend aggregiert werden, ist die Ansicht Administratoren vorbehalten.
Die Seite meldet Aufrufe, Einheiten, Tokens, Latenz und Ergebnisse. Ergänze Kosten-Governance, wenn zeitabhängige Tarife, Aufschlüsselungen, Budgets, Warnungen oder Buchhaltungsexporte nötig sind. Ereignisse ohne Tarif oder gemeldete Nutzung bleiben sichtbar unbepreist statt kostenlos zu gelten.
OpenRouter-Zuordnung
Seit 0.18.0 identifizieren OpenRouter-Anfragen die Anwendung mit
Zuordnungsheadern (HTTP-Referer: https://librewebui.org, Anwendungstitel und
Kategorien). Sie werden nur an https://openrouter.ai selbst gesendet, nie an
benutzerdefinierte oder selbst gehostete Routen, und ändern lokale Daten nicht.