Zum Hauptinhalt springen

Halten Sie Ihre Open WebUI mit Überwachung gesund 🩺

Die Überwachung Ihrer Open WebUI-Instanz ist entscheidend, um sicherzustellen, dass sie zuverlässig läuft, gut performt und es Ihnen ermöglicht, Probleme schnell zu identifizieren und zu beheben. Dieser Leitfaden beschreibt drei Ebenen der Überwachung, von grundlegenden Verfügbarkeitsprüfungen bis hin zu eingehenden Tests der Modellantworten.

Warum überwachen?

  • Verfügbarkeit sicherstellen: Proaktiv Ausfälle und Serviceunterbrechungen erkennen.
  • Performance-Einblicke: Antwortzeiten verfolgen und potenzielle Engpässe identifizieren.
  • Früherkennung von Problemen: Probleme erkennen, bevor sie Benutzer erheblich beeinträchtigen.
  • Sorgenfreiheit: Vertrauen gewinnen, dass Ihre Open WebUI-Instanz reibungslos läuft.

🚦 Überwachungsebenen

Wir behandeln drei Überwachungsebenen, die von grundlegend bis umfassender fortschreiten

  1. Grundlegende Zustandsprüfung: Überprüft, ob der Open WebUI-Dienst läuft und antwortet.
  2. Modellverbindungsprüfung: Bestätigt, dass Open WebUI eine Verbindung zu Ihren konfigurierten Modellen herstellen und diese auflisten kann.
  3. Modellantwort-Tests (Tiefgehende Zustandsprüfung): Stellt sicher, dass Modelle tatsächlich Anfragen verarbeiten und Antworten generieren können.

Ebene 1: Endpunkt für grundlegende Zustandsprüfung ✅

Die einfachste Überwachungsebene ist die Überprüfung des /health-Endpunkts. Dieser Endpunkt ist öffentlich zugänglich (keine Authentifizierung erforderlich) und gibt einen 200 OK-Statuscode zurück, wenn der Open WebUI-Dienst korrekt läuft.

Testen

Sie können curl oder jeden HTTP-Client verwenden, um diesen Endpunkt zu überprüfen

   # Basic health check - no authentication needed
curl https://your-open-webui-instance/health

Erwartete Ausgabe: Eine erfolgreiche Zustandsprüfung gibt einen HTTP-Statuscode 200 OK zurück. Der Inhalt des Antwortkörpers ist für eine grundlegende Zustandsprüfung normalerweise nicht wichtig.

Uptime Kuma für grundlegende Zustandsprüfungen verwenden 🐻

Uptime Kuma ist ein fantastisches, Open-Source- und einfach zu bedienendes Tool zur Selbstüberwachung der Verfügbarkeit. Es wird für die Überwachung von Open WebUI dringend empfohlen.

Schritte zur Einrichtung in Uptime Kuma

  1. Neuen Monitor hinzufügen: Klicken Sie in Ihrem Uptime Kuma-Dashboard auf "Neuen Monitor hinzufügen".
  2. Monitor-Einstellungen konfigurieren
    • Monitor-Typ: Wählen Sie "HTTP(s)".
    • Name: Geben Sie Ihrem Monitor einen aussagekräftigen Namen, z. B. "Open WebUI Health Check".
    • URL: Geben Sie die URL des Zustandsprüfungs-Endpunkts ein: http://ihre-open-webui-instanz:8080/health (Ersetzen Sie ihre-open-webui-instanz:8080 durch Ihre tatsächliche Open WebUI-Adresse und Port).
    • Überwachungsintervall: Legen Sie die Häufigkeit der Prüfungen fest (z. B. 60 Sekunden für jede Minute).
    • Wiederholungsversuche: Legen Sie die Anzahl der Wiederholungsversuche fest, bevor der Dienst als ausgefallen gilt (z. B. 3 Wiederholungsversuche).

Was diese Prüfung verifiziert

  • Webserver-Verfügbarkeit: Stellt sicher, dass der Webserver (z. B. Nginx, Uvicorn) auf Anfragen reagiert.
  • Anwendung läuft: Bestätigt, dass die Open WebUI-Anwendung selbst läuft und initialisiert ist.
  • Grundlegende Datenbankkonnektivität: Beinhaltet typischerweise eine grundlegende Prüfung, um sicherzustellen, dass die Anwendung eine Verbindung zur Datenbank herstellen kann.

Ebene 2: Open WebUI Modellkonnektivität 🔗

Um über die grundlegende Verfügbarkeit hinauszugehen, können Sie den Endpunkt /api/models überwachen. Dieser Endpunkt erfordert eine Authentifizierung und überprüft, ob Open WebUI erfolgreich mit Ihren konfigurierten Modell-Providern (z. B. Ollama, OpenAI) kommunizieren und eine Liste der verfügbaren Modelle abrufen kann.

Warum Modellkonnektivität überwachen?

  • Probleme mit Modell-Providern: Probleme mit Ihren Modell-Provider-Diensten erkennen (z. B. API-Ausfälle, Authentifizierungsfehler).
  • Konfigurationsfehler: Falsche Konfigurationen in Ihren Modell-Provider-Einstellungen innerhalb von Open WebUI identifizieren.
  • Modellverfügbarkeit sicherstellen: Bestätigen, dass die Modelle, die Sie erwarten, verfügbar sind, tatsächlich für Open WebUI zugänglich sind.

Details zum API-Endpunkt

Sehen Sie sich die Open WebUI API-Dokumentation für vollständige Details zum /api/models-Endpunkt und seiner Antwortstruktur an.

Testen mit curl (authentifiziert)

Sie benötigen einen API-Schlüssel, um auf diesen Endpunkt zugreifen zu können. Anweisungen zum Generieren eines API-Schlüssels finden Sie im Abschnitt "Einrichtung der Authentifizierung" unten.

   # Authenticated model connectivity check
curl -H "Authorization: Bearer YOUR_API_KEY" https://your-open-webui-instance/api/models

(Ersetzen Sie IHR_API_SCHLÜSSEL durch Ihren tatsächlichen API-Schlüssel und ihre-open-webui-instanz durch Ihre Open WebUI-Adresse.)

Erwartete Ausgabe: Eine erfolgreiche Anfrage gibt einen HTTP-Statuscode 200 OK und eine JSON-Antwort mit einer Liste von Modellen zurück.

Einrichtung der Authentifizierung für API-Schlüssel 🔑

Bevor Sie den Endpunkt /api/models überwachen können, müssen Sie API-Schlüssel in Open WebUI aktivieren und einen generieren

  1. API-Schlüssel aktivieren (Administrator erforderlich)

    • Melden Sie sich als Administrator bei Open WebUI an.
    • Gehen Sie zu Admin-Einstellungen (normalerweise im Menü oben rechts) > Allgemein.
    • Finden Sie die Einstellung "API-Schlüssel aktivieren" und schalten Sie sie EIN.
    • Klicken Sie auf Änderungen speichern.
  2. API-Schlüssel generieren (Benutzereinstellungen)

    • Gehen Sie zu Ihren Benutzereinstellungen (normalerweise durch Klicken auf Ihr Profilsymbol oben rechts).
    • Navigieren Sie zum Abschnitt Konto.
    • Klicken Sie auf Neuen API-Schlüssel generieren.
    • Geben Sie dem API-Schlüssel einen aussagekräftigen Namen (z. B. "Monitoring API Key").
    • Kopieren Sie den generierten API-Schlüssel und bewahren Sie ihn sicher auf. Sie benötigen ihn für Ihre Überwachungseinrichtung.

    (Optional, aber empfohlen): Aus Sicherheitsgründen empfiehlt es sich, ein Benutzerkonto ohne Administratorrechte speziell für die Überwachung zu erstellen und für diesen Benutzer einen API-Schlüssel zu generieren. Dies schränkt die potenziellen Auswirkungen ein, falls der Monitoring-API-Schlüssel kompromittiert wird.

    Wenn Sie die Option zur Generierung von API-Schlüsseln in Ihren Einstellungen nicht sehen, wenden Sie sich an Ihren Open WebUI-Administrator, um sicherzustellen, dass API-Schlüssel aktiviert sind.

Uptime Kuma für die Überwachung der Modellkonnektivität verwenden 🐻

  1. Neuen Monitor in Uptime Kuma erstellen

    • Monitor-Typ: "HTTP(s) - JSON Query".
    • Name: "Open WebUI Model Connectivity Check".
    • URL: http://ihre-open-webui-instanz:8080/api/models (Ersetzen Sie durch Ihre URL).
    • Methode: "GET".
    • Erwarteter Statuscode: 200.
  2. JSON-Abfrage konfigurieren (Modellliste überprüfen)

    • JSON-Abfrage: $count(data[*])>0
      • Erklärung: Diese JSONata-Abfrage prüft, ob das data-Array in der API-Antwort (das die Liste der Modelle enthält) eine Anzahl größer als 0 hat. Mit anderen Worten, sie überprüft, ob mindestens ein Modell zurückgegeben wird.
    • Erwarteter Wert: true (Die Abfrage sollte true zurückgeben, wenn Modelle aufgelistet sind).
  3. Authentifizierungs-Header hinzufügen

    • Klicken Sie im Abschnitt "Header" der Uptime Kuma-Monitor-Konfiguration auf "Header hinzufügen".
    • Header-Name: Authorization
    • Header-Wert: Bearer IHR_API_SCHLÜSSEL (Ersetzen Sie IHR_API_SCHLÜSSEL durch den von Ihnen generierten API-Schlüssel).
  4. Überwachungsintervall festlegen: Empfohlenes Intervall: 300 Sekunden (5 Minuten) oder länger, da sich Modelllisten normalerweise nicht sehr häufig ändern.

Alternative JSON-Abfragen (Fortgeschritten)

Sie können spezifischere JSONata-Abfragen verwenden, um nach bestimmten Modellen oder Providern zu suchen. Hier sind einige Beispiele:

  • Prüfen, ob mindestens ein Ollama-Modell vorhanden ist: $count(data[owned_by='ollama'])>0
  • Prüfen, ob ein bestimmtes Modell existiert (z. B. 'gpt-4o'): $exists(data[id='gpt-4o'])
  • Prüfen, ob mehrere bestimmte Modelle existieren (z. B. 'gpt-4o' und 'gpt-4o-mini'): $count(data[id in ['gpt-4o', 'gpt-4o-mini']]) = 2

Sie können Ihre JSONata-Abfragen auf jsonata.org mit einer Beispiel-API-Antwort testen und verfeinern, um sicherzustellen, dass sie wie erwartet funktionieren.

Ebene 3: Modellantwort-Tests (Tiefgehende Zustandsprüfung) 🤖

Für die umfassendste Überwachung können Sie testen, ob Modelle tatsächlich in der Lage sind, Anfragen zu verarbeiten und Antworten zu generieren. Dies beinhaltet das Senden einer einfachen Chat-Completion-Anfrage an den Endpunkt /api/chat/completions.

Warum Modellantworten testen?

  • End-to-End-Verifizierung: Bestätigt, dass die gesamte Modell-Pipeline funktioniert, von der API-Anfrage bis zur Modellantwort.
  • Probleme beim Laden von Modellen: Erkennt Probleme, wenn bestimmte Modelle fehlschlagen, zu laden oder zu antworten.
  • Fehler bei der Backend-Verarbeitung: Fängt Fehler in der Backend-Logik ab, die verhindern könnten, dass Modelle Completions generieren.

Testen mit curl (authentifizierte POST-Anfrage)

Dieser Test erfordert einen API-Schlüssel und sendet eine POST-Anfrage mit einer einfachen Nachricht an den Chat-Completions-Endpunkt.

# Test model response - authenticated POST request
curl -X POST https://your-open-webui-instance/api/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": "Respond with the word HEALTHY"}],
"model": "llama3.1", # Replace with a model you expect to be available
"temperature": 0 # Set temperature to 0 for consistent responses
}'

(Ersetzen Sie IHR_API_SCHLÜSSEL, ihre-open-webui-instanz und llama3.1 durch Ihre tatsächlichen Werte.)

Erwartete Ausgabe: Eine erfolgreiche Anfrage gibt einen HTTP-Statuscode 200 OK und eine JSON-Antwort mit einer Chat-Completion zurück. Sie können überprüfen, ob die Antwort das Wort "HEALTHY" enthält (oder eine ähnliche erwartete Antwort basierend auf Ihrer Eingabeaufforderung).

Die Einrichtung der Überwachungsebene 3 in Uptime Kuma würde die Konfiguration eines HTTP(s)-Monitors mit einer POST-Anfrage, einem JSON-Body, Authentifizierungs-Headern und möglicherweise einer JSON-Abfrage zur Validierung des Antwortinhalts beinhalten. Dies ist eine fortgeschrittenere Einrichtung und kann je nach Ihren spezifischen Anforderungen angepasst werden.

Durch die Implementierung dieser Überwachungsebenen können Sie proaktiv die Gesundheit, Zuverlässigkeit und Leistung Ihrer Open WebUI-Instanz sicherstellen und den Benutzern eine konstant positive Erfahrung bieten.