mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 10:52:22 +00:00
docs: review Monitor documentation in all seven translations
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Apps-Dashboard: ein Starter für alle Weblinks | ProxMenux",
|
||||
"description": "Verwenden Sie das Apps-Dashboard, um registrierte LXC-Weblinks und benutzerdefinierte Links zu öffnen, sie nach Kategorie zu ordnen und zu dem Gast zurückzukehren, der jeden Dienst besitzt."
|
||||
},
|
||||
"header": {
|
||||
"title": "Dashboard: Apps Tab",
|
||||
"description": "Ein einzelner Launcher für die Web-Schnittstellen, die Sie über den Knoten verwenden, unabhängig davon, ob sie von einer registrierten LXC-Anwendung oder einem benutzerdefinierten Weblink stammen.",
|
||||
"section": "ProxMenux Monitor · Übersicht"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Ein Launcher, kein Application Installer",
|
||||
"body": "Der Reiter <strong>Apps</strong> installiert keine Software und sucht nicht selbst nach Diensten. Er zeigt gespeicherte Weblinks in einem durchsuchbaren Raster. LXC-Links werden im <appTabLink>App-Reiter</appTabLink> des Gastsystems konfiguriert; eigene Links ergänzen VM-Dienste, Reverse Proxys und externe Dashboards."
|
||||
},
|
||||
"sources": {
|
||||
"heading": "Was in Apps erscheint",
|
||||
"intro": "Jede startbare URL wird zu einer eigenen Karte. Die Quelle bestimmt, wo diese Karte bearbeitet wird, aber nicht, wie sie während des normalen Gebrauchs aussieht.",
|
||||
"colSource": "Quelle",
|
||||
"colAppears": "Was erscheint",
|
||||
"colManagedFrom": "Wo es verwaltet wird",
|
||||
"rows": [
|
||||
{
|
||||
"source": "Registrierte LXC-Anwendung",
|
||||
"appears": "Eine Karte für jeden Weblink, der im Anwendungsprotokoll gespeichert ist.",
|
||||
"managedFrom": "VMs und LXCs → LXC-Dialog → App"
|
||||
},
|
||||
{
|
||||
"source": "Benutzerdefinierter Link an einen Gast gebunden",
|
||||
"appears": "Eine Service-URL, die mit einem bestimmten VM oder LXC verknüpft ist.",
|
||||
"managedFrom": "Apps → Bearbeiten"
|
||||
},
|
||||
{
|
||||
"source": "Eigener Link ohne Gastzuordnung",
|
||||
"appears": "Beliebiges HTTP(S)-Ziel, einschließlich externer Dienste und Dienste hinter einem Reverse Proxy.",
|
||||
"managedFrom": "Apps → Bearbeiten"
|
||||
}
|
||||
],
|
||||
"relationshipTitle": "Apps und der LXC App-Tab haben unterschiedliche Jobs",
|
||||
"relationshipBody": "Der <appTabLink>App-Reiter</appTabLink> des LXC verwaltet Anwendungsidentität, Weblinks und optionales Versionstracking. <strong>Apps</strong> verwendet diese Links als Schnellzugriff. Die Bearbeitung einer LXC-Karte öffnet daher den Gastdatensatz, ohne die Konfiguration zu duplizieren."
|
||||
},
|
||||
"cards": {
|
||||
"heading": "Wie man eine Karte benutzt",
|
||||
"intro": "Die gesamte Karte ist das Startziel, während ihre kleineren Kontrollen einen Kontext bieten, ohne den Dienst zu öffnen.",
|
||||
"items": [
|
||||
"Klicken Sie auf die Karte, um ihre URL in einem neuen Browser-Tab zu öffnen.",
|
||||
"Das Logo verwendet zuerst das Web Link-Logo und fällt gegebenenfalls auf das Anwendungslogo zurück.",
|
||||
"Der Kategoriechip verwendet die gleiche Farbe und Beschriftung wie der entsprechende Weblink im LXC App-Tab.",
|
||||
"Die Gastanzeige nennt die zugeordnete VM oder den LXC. Ein Klick öffnet dessen Dialog: LXC-Links öffnen <strong>App</strong>, VM-Links <strong>Status</strong>.",
|
||||
"Ein violetter Aufwärtspfeil kennzeichnet ein verfügbares Update der betreffenden Anwendung oder des Docker-Images. Er ist keine Gesamtzahl aller Updates des Gastsystems."
|
||||
]
|
||||
},
|
||||
"toolbar": {
|
||||
"heading": "Suche, Filter und Sortierung",
|
||||
"intro": "Die Symbolleiste verengt eine große Anwendungssammlung, ohne die gespeicherten Datensätze zu ändern.",
|
||||
"items": [
|
||||
"Die Suche entspricht dem Anwendungsnamen, dem Gastnamen, dem VMID und der Kategorie.",
|
||||
"Der Kategoriefilter zeigt jeweils eine Kategorie oder alle Anwendungen an.",
|
||||
"Sortieren Sie nach <strong>Name</strong>, <strong>ID</strong> oder <strong>Kategorie</strong>. Die Kategoriesortierung fügt Überschriften zwischen Kartengruppen ein.",
|
||||
"Die Sortierung wird in diesem Browser gespeichert. Suchtext und Kategoriefilter werden beim erneuten Seitenaufruf zurückgesetzt.",
|
||||
"Die Registerkarte Apps bleibt verfügbar, wenn das Raster leer ist, so dass der erste benutzerdefinierte Link hinzugefügt werden kann, ohne zuerst eine LXC-Anwendung zu registrieren."
|
||||
]
|
||||
},
|
||||
"customLinks": {
|
||||
"heading": "Hinzufügen und Bearbeiten von benutzerdefinierten Weblinks",
|
||||
"intro": "Verwenden Sie einen benutzerdefinierten Link, wenn der Dienst nicht durch eine registrierte LXC-Anwendung dargestellt wird.",
|
||||
"steps": [
|
||||
"Wählen Sie <strong>Link hinzufügen</strong> in der Werkzeugleiste oder der leeren Ansicht.",
|
||||
"Geben Sie einen Namen und eine vollständige <code>http://</code> oder <code>https://</code> URL ein.",
|
||||
"Optional ein Logo hinzufügen, eine Kategorie auswählen oder erstellen und den Link an einen VM oder LXC binden.",
|
||||
"Speichern Sie den Link. Seine Karte erscheint sofort im Raster.",
|
||||
"Zum Ändern oder Entfernen eines eigenen Links wählen Sie <strong>Bearbeiten</strong> und den Stift auf seiner Karte."
|
||||
],
|
||||
"colField": "Feld",
|
||||
"colRequired": "Erforderlich",
|
||||
"colPurpose": "Zweck",
|
||||
"fields": [
|
||||
{
|
||||
"field": "Name",
|
||||
"required": "Ja",
|
||||
"purpose": "Der kartentitel und der suchbegriff."
|
||||
},
|
||||
{
|
||||
"field": "URL",
|
||||
"required": "Ja",
|
||||
"purpose": "Das vollständige HTTP(S) Ziel, das von der Karte geöffnet wird."
|
||||
},
|
||||
{
|
||||
"field": "Logo-URL",
|
||||
"required": "Nein",
|
||||
"purpose": "Ein Fernbild, das auf der Karte angezeigt wird."
|
||||
},
|
||||
{
|
||||
"field": "Kategorie",
|
||||
"required": "Nein",
|
||||
"purpose": "Fügt ein gemeinsames Badge hinzu und ermöglicht die Kategoriefilterung."
|
||||
},
|
||||
{
|
||||
"field": "Gastzuordnung",
|
||||
"required": "Nein",
|
||||
"purpose": "Verbindet den Link mit einem VM oder LXC und aktiviert die Gastverknüpfung."
|
||||
}
|
||||
],
|
||||
"editTitle": "Bearbeiten der Quelle der Wahrheit",
|
||||
"editBody": "Stifte erscheinen im Bearbeitungsmodus nur bei eigenen Links. Für eine LXC-Anwendungskarte öffnen Sie den <appTabLink>App-Reiter</appTabLink> des Gastsystems und ändern dort den gespeicherten Weblink."
|
||||
},
|
||||
"categories": {
|
||||
"heading": "Kategorien und Aktualisierungssignale",
|
||||
"intro": "Kategorien organisieren Links; Updatesignale melden den Softwarezustand. Sie sind absichtlich getrennt.",
|
||||
"items": [
|
||||
"Kataloggestützte LXC-Registrierung kann eine Kategorie vorfüllen, bleibt aber editierbar.",
|
||||
"Benutzerdefinierte Kategorienamen können aus dem gleichen Selektor erstellt und dann vom Filter wiederverwendet werden.",
|
||||
"Kategoriefarben sind deterministisch und passen sich dem hellen oder dunklen Thema an. Lila und rote Bereiche sind für Update- und Gefahrenzustände reserviert.",
|
||||
"Bei Docker-Weblinks ordnet ProxMenux die Karte einem Container oder Image zu und zeigt dessen Image-Updatezustand. Docker-Engine-Updates bleiben im <updatesLink>Reiter Aktualisierungen</updatesLink> des LXC."
|
||||
]
|
||||
},
|
||||
"persistence": {
|
||||
"heading": "Persistenz und Cache-Verhalten",
|
||||
"intro": "Das Dashboard ist so konzipiert, dass es sich von bereits verfügbaren Monitordaten öffnet, anstatt jeden Gast neu zu scannen.",
|
||||
"items": [
|
||||
"Eigene Links werden atomar in <code>/etc/proxmenux/custom_links.json</code> gespeichert und beim Start von Monitor in den Arbeitsspeicher geladen.",
|
||||
"Registrierte LXC-Links bleiben Teil des gespeicherten Monitor-Datensatzes ihrer Anwendung; das Apps-Dashboard dupliziert sie nicht in die benutzerdefinierte Link-Datei.",
|
||||
"Das Erstellen, Bearbeiten oder Löschen eines benutzerdefinierten Links aktualisiert die In-Memory-Liste sofort.",
|
||||
"Die Sortierpräferenz gilt nur für diesen Browser und wird nicht zwischen Geräten oder Benutzern synchronisiert.",
|
||||
"Die Position von Apps in der Hauptnavigation wird unter <settingsLink>Einstellungen → Navigationsreihenfolge</settingsLink> festgelegt."
|
||||
]
|
||||
},
|
||||
"troubleshooting": {
|
||||
"heading": "Häufige Situationen",
|
||||
"colProblem": "Lage",
|
||||
"colResolution": "Lösung",
|
||||
"rows": [
|
||||
{
|
||||
"problem": "Eine LXC-Anwendung ist registriert, aber keine Karte erscheint",
|
||||
"resolution": "Öffnen Sie den Tab App und fügen Sie mindestens einen Weblink hinzu. Versions-Tracking allein erstellt keine Launcher-Karte."
|
||||
},
|
||||
{
|
||||
"problem": "URL oder Logo ist falsch",
|
||||
"resolution": "Bearbeiten Sie den benutzerdefinierten Link in Apps oder bearbeiten Sie den Weblink im LXC App-Tab."
|
||||
},
|
||||
{
|
||||
"problem": "Ein Docker-Service fehlt",
|
||||
"resolution": "Bearbeiten Sie die registrierte Docker-Anwendung und speichern Sie den veröffentlichten Webport des Dienstes als Weblink."
|
||||
},
|
||||
{
|
||||
"problem": "Der lila Pfeil bezieht sich auf das falsche Docker Update",
|
||||
"resolution": "Überprüfen Sie den Weblink-Namen und die Beschreibung, damit sie mit dem beabsichtigten Container oder Image übereinstimmen können."
|
||||
},
|
||||
{
|
||||
"problem": "Apps öffnen sich zuerst statt Systemübersicht",
|
||||
"resolution": "Der erste gespeicherte Eintrag unter Einstellungen → Navigationsreihenfolge wird zum Startreiter. Stellen Sie die Standardreihenfolge wieder her oder verschieben Sie Übersicht an die erste Stelle."
|
||||
}
|
||||
]
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Wohin als nächstes",
|
||||
"items": [
|
||||
{
|
||||
"label": "LXC App Tab",
|
||||
"href": "/docs/monitor/dashboard/vms-lxcs/app",
|
||||
"tail": "— Anwendungen registrieren, Weblinks und optionales Versions-Tracking."
|
||||
},
|
||||
{
|
||||
"label": "LXC Updates Tab",
|
||||
"href": "/docs/monitor/dashboard/vms-lxcs/updates",
|
||||
"tail": " — Aktualisierungen für Anwendungen, Docker Engine und Images konfigurieren und ausführen."
|
||||
},
|
||||
{
|
||||
"label": "Tab Einstellungen",
|
||||
"href": "/docs/monitor/dashboard/settings#navigation-order",
|
||||
"tail": " — Navigationsreihenfolge und Startreiter ändern."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,248 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Monitor — Dashboard: Hardware | ProxMenux-Dokumentation",
|
||||
"description": "Die Hardware-Registerkarte inventarisiert die physische Maschine: CPU und Motherboard, Speichermodule, thermische Sensoren, GPUs (mit Echtzeitüberwachung pro Slot und Ein-Klick-Treiber-Installation), Coral TPU-Beschleuniger, Speicherzusammenfassung mit Link-Geschwindigkeitsprüfungen, vollständige PCI- und USB-Gerätelisten, Stromverbrauch, PSUs, Lüfter und USV-Zustand."
|
||||
},
|
||||
"header": {
|
||||
"title": "Dashboard: Hardware",
|
||||
"description": "Die physische Maschine in einem Bildschirm - CPU und Motherboard-Identität, jedes Speichermodul, thermische Sensoren über alle Subsysteme hinweg, GPUs mit Live-Auslastung und ein eingebautes Treiber-Installationsprogramm, Coral-TPUs, jedes PCI- und USB-Gerät mit seinem Kernel-Treiber, das vollständige Festplatteninventar mit ausgehandelten Verbindungsgeschwindigkeiten sowie Strom, Kühlung und USV.",
|
||||
"section": "ProxMenux Monitor · Übersicht"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Gebaut aus Standardwerkzeugen",
|
||||
"body": "Der größte Teil dieser Registerkarte wird aus <code>lscpu</code>, <code>dmidecode</code>, <code>lspci</code>, <code>lsusb</code>, <code>lsblk</code>, <code>smartctl</code>, <code>nvme</code>, <code>sensors</code>, <code>nvidia-smi</code>, <code>intel_gpu_top</code>, <code>amdgpu_top</code>, <code>ipmitool</code> und <code>upsc</code> analysiert. Abschnitte werden nur dann dargestellt, wenn das betreffende Tool Daten zurückgibt, so dass ein Host ohne USV die USV-Karte nicht zeigt und ein Host ohne IPMI keine Out-of-Band-Leistungszahlen anzeigt."
|
||||
},
|
||||
"thresholds": {
|
||||
"title": "Hier angewendete Statusfarben und -schwellen",
|
||||
"intro": "Alle Temperaturanzeigen verwenden dieselbe Einteilung: <green/> <strong>grün</strong> unter der Warnschwelle, <amber/> <strong>bernsteinfarben</strong> zwischen Warn- und kritischer Schwelle, <red/> <strong>rot</strong> ab der kritischen Schwelle. Empfohlene Standardwerte von ProxMenux :",
|
||||
"items": [
|
||||
"<strong>CPU-Temperatur</strong> — Warnung 80 °C, kritisch 90 °C.",
|
||||
"<strong>Disk Temperatur</strong> — HDD 60/65 °C · SSD 70/75 °C · NVMe 80/85 °C · SAS 55/65 °C (Warnung/kritisch)."
|
||||
],
|
||||
"outro": "Alle Werte sind pro Host konfigurierbar. <link>Einstellungen → Grenzwerte der Zustandsüberwachung</link> ist die zentrale Referenz und erklärt ihre Anpassung."
|
||||
},
|
||||
"sections": {
|
||||
"heading": "Abschnitte",
|
||||
"intro": "Die Abschnitte erscheinen von oben nach unten in dieser Reihenfolge. Manche benötigen die passende Hardware oder ein installiertes Werkzeug und sind unten als <em>(bedingt)</em> markiert.",
|
||||
"systemInfoTitle": "Systeminformationen",
|
||||
"systemInfoIntro": "Zwei nebeneinander liegende Blöcke, immer vorhanden:",
|
||||
"systemInfoItems": [
|
||||
"<strong>CPU</strong> — Modell, Mikroarchitektur, Sockel/Kerne/Threads, Basis-/Boost-Takt, Virtualisierungsmerkmale (VT-x / AMD-V) und Cache-Topologie.",
|
||||
"<strong>Mainboard</strong> — Hersteller, Modell, BIOS-Version und -Datum sowie SMBIOS-UUID. Hilft beim Finden der passenden Hersteller-Downloadseite für Firmware-Updates."
|
||||
],
|
||||
"memoryTitle": "Speichermodule",
|
||||
"memoryBody": "Eine Zeile je belegtem Steckplatz aus <code>dmidecode</code>: Steckplatzbezeichnung, Modulgröße, Typ (DDR4/DDR5/ECC), konfigurierter und spezifizierter Takt, Hersteller, Teile- und Seriennummer. Leere Steckplätze sind ausgegraut, damit das Erweiterungspotenzial sichtbar bleibt.",
|
||||
"thermalTitle": "Thermische Überwachung",
|
||||
"thermalIntro": "Sieben Bereiche mit Daten aus <code>lm-sensors</code>, <code>sysfs</code> und werkzeugspezifischen Auswertungen. Speicher-hwmon-Sensoren werden dem physischen Blockgerät zugeordnet, sodass jedes Laufwerk mit Modell und <code>/dev/...</code>-Pfad erscheint. Ohne Sensoren einer Kategorie bleibt deren Bereich verborgen.",
|
||||
"thermalItems": [
|
||||
"<strong>CPU</strong> — Temperatur des CPU-Packages und der einzelnen Kerne.",
|
||||
"<strong>GPU</strong> — Sensoren dedizierter GPUs über <code>nvidia-smi</code>/<code>amdgpu_top</code> sowie Intel-iGPU. Hotspot- und Speicher-Junction-Temperatur, sofern der Treiber sie bereitstellt.",
|
||||
"<strong>NVME</strong> — zusammengesetzte Controllertemperatur, dem genauen NVMe-Namespace zugeordnet.",
|
||||
"<strong>HDD</strong> — <code>drivetemp</code>-Messwerte für Rotationsblockgeräte.",
|
||||
"<strong>SSD</strong> — <code>drivetemp</code>-Messwerte für nicht rotierende SATA/SAS-Blockgeräte.",
|
||||
"<strong>PCI</strong> — Sensoren, die als PCI-befestigte Geräte auftauchen (HBAs, Netzwerkkarten mit internen Sensoren).",
|
||||
"<strong>OTHER</strong> - Chipsatz, VRM, Umgebungssensoren, die anderswo nicht passen."
|
||||
]
|
||||
},
|
||||
"graphics": {
|
||||
"heading": "Grafikkarten",
|
||||
"intro": "Jeder Videocontroller erscheint als Karte mit Hersteller, Modell, Typ (<em>Integriert</em>/<em>PCI</em>/BMC), PCI-Adresse (BDF), Kerneltreiber und Modulen. <strong>Modus wechseln</strong> schaltet zwischen LXC-Freigabe mit nativem Treiber und VM-Passthrough (<code>vfio-pci</code>) um. <link>GPU-Modus wechseln (VM ↔ LXC)</link> beschreibt die Änderungen auf dem Host.",
|
||||
"vfioImageAlt": "Grafikkarten-Abschnitt mit einer an mgag200 gebundenen Matrox G200EH integrierten GPU (Ready for LXC) und einer an vfio-pci gebundenen NVIDIA Quadro P400 (Ready for VM passthrough)",
|
||||
"vfioImageCaption": "Zwei GPUs erkannt: Der Matrox BMC Chip ist auf dem nativen Treiber und bereit für LXC; der NVIDIA Quadro P400 ist an <code>vfio-pci</code> gebunden, bereit für VM Passthrough.",
|
||||
"lxcImageAlt": "Grafikkarten: Intel UHD Graphics iGPU mit i915 und NVIDIA Quadro P1000 mit nvidia, beide bereit für LXC-Container",
|
||||
"lxcImageCaption": "Der gleiche Knoten nach dem Umschalten der NVIDIA-Karte zurück zum nativen Treiber - beide GPUs sind jetzt bereit für LXC-Container.",
|
||||
"realtimeTitle": "Dialog zur Echtzeitüberwachung",
|
||||
"realtimeBody": "Ein Klick auf eine GPU öffnet die Überwachung dieses Steckplatzes. Alle drei Sekunden wird das passende Herstellerwerkzeug abgefragt. Sichtbar sind Hersteller, Typ, PCI-Steckplatz, Treiber, Kernelmodule, Engine-Auslastung (Render/3D, Video, Blitter, VideoEnhance), Grafik- und Speichertakt, Temperatur, gemeldete Leistungsaufnahme, VRAM und aktive Prozesse mit jeweiliger Engine-Last. Daten aus <code>/api/gpu/<slot>/realtime</code>.",
|
||||
"toolsIntro": "Das je GPU verwendete Herstellerwerkzeug :",
|
||||
"headerVendor": "Hersteller",
|
||||
"headerTool": "Werkzeug",
|
||||
"headerProject": "Projekt",
|
||||
"tools": [
|
||||
{
|
||||
"vendor": "NVIDIA",
|
||||
"tool": "nvidia-smi",
|
||||
"projectLabel": "developer.nvidia.com",
|
||||
"projectHref": "https://developer.nvidia.com/nvidia-system-management-interface"
|
||||
},
|
||||
{
|
||||
"vendor": "Intel iGPU",
|
||||
"tool": "intel_gpu_top (igt-gpu-tools)",
|
||||
"projectLabel": "gitlab.freedesktop.org",
|
||||
"projectHref": "https://gitlab.freedesktop.org/drm/igt-gpu-tools"
|
||||
},
|
||||
{
|
||||
"vendor": "AMD",
|
||||
"tool": "amdgpu_top",
|
||||
"projectLabel": "github.com/Umio-Yasuno/amdgpu_top",
|
||||
"projectHref": "https://github.com/Umio-Yasuno/amdgpu_top"
|
||||
},
|
||||
{
|
||||
"vendor": "Matrox / ASPEED (BMC)",
|
||||
"tool": "— (nur Anzeige)",
|
||||
"projectLabel": "Als BMC erkannt und gekennzeichnet; keine Echtzeitüberwachung."
|
||||
}
|
||||
],
|
||||
"nvidiaImageAlt": "Überwachung einer NVIDIA Quadro P1000: Hersteller NVIDIA, Treiber nvidia geladen, Grafiktakt 1.26 GHz, Speichertakt 2.50 GHz, Temperatur 50 °C, alle Engines bei 0 %, keine aktiven Prozesse, 4096 MiB Gesamtspeicher",
|
||||
"nvidiaImageCaption": "NVIDIA Quadro P1000 mit proprietärem Treiber: Taktfrequenzen, Temperatur, Engine-Auslastungsbalken und aktive Prozesse.",
|
||||
"intelImageAlt": "Überwachung einer Intel UHD Graphics iGPU mit i915: 11.31 W Leistungsaufnahme, 1 % Video-Engine-Last und ein ffmpeg-Prozess mit 8 MB",
|
||||
"intelImageCaption": "Intel iGPU mit <code>i915</code> aktiv. Die Tabelle Aktive Prozesse nimmt einen ffmpeg-Job mit der Video-Engine auf.",
|
||||
"amdImageAlt": "Überwachung der integrierten AMD Lucienne GPU mit amdgpu: Engine-Auslastung bei 0 % und amdgpu_top als aktiver Prozess",
|
||||
"amdImageCaption": "AMD-iGPU mit <code>amdgpu_top</code> überwacht. Das Werkzeug erscheint selbst als aktiver Prozess, weil es die Live-Daten erfasst.",
|
||||
"installTitle": "NVIDIA-Treiber aus dem Dialog installieren",
|
||||
"installBody": "Bei einer NVIDIA-GPU mit <code>nouveau</code>/<code>nvidiafb</code> ohne proprietären Treiber fehlen Takt-, Leistungs- und Prozesslastdaten. Der Dialog zeigt dann <strong>NVIDIA-Treiber installieren</strong> und startet das unter <link>NVIDIA-Treiber installieren (Host)</link> beschriebene Skript.",
|
||||
"noDriverAlt": "Überwachung einer NVIDIA Quadro P620 mit nvidiafb und nouveau, Hinweis Erweiterte Überwachung nicht verfügbar und blauer Schaltfläche NVIDIA-Treiber installieren",
|
||||
"noDriverCaption": "Noch kein proprietärer Treiber installiert — der Dialog bietet einen Ein-Klick-Installer.",
|
||||
"promptAlt": "NVIDIA GPU-Treiber-Installationsbestätigungsdialog mit erkannten GPUs, LXC-Containern mit NVIDIA-Durchgang und einem Yes/Cancel-Paar",
|
||||
"promptCaption": "Zusammenfassung vor der Installation: erkannte GPUs, LXC-Container, die bereits NVIDIA-Passthrough haben, und was das Skript tun wird. Nichts wird berührt, bis Sie bestätigen.",
|
||||
"successAlt": "Terminalausgang mit erfolgreich installiertem NVIDIA-Treiber 580.105.08 und nvidia-smi mit Quadro P620",
|
||||
"successCaption": "Erfolgreiche Installation - der NVIDIA <code>.run</code> wurde über DKMS gebaut, der Persistenzdienst ist vorhanden, und <code>nvidia-smi</code> meldet den GPU.",
|
||||
"warningTitle": "Eine von der GPU unterstützte Treiberversion wählen",
|
||||
"warningBody": "Neuere NVIDIA-Treiberzweige stellen die Unterstützung älterer GPU-Familien wie Maxwell oder Kepler ein. Meldet <code>nvidia-smi</code> nach der Installation <em>\"No devices were found\"</em> oder schlägt DKMS fehl, passt der gewählte Zweig möglicherweise nicht zur GPU. Starten Sie die Installation mit einem älteren Zweig, etwa Legacy 470.x für Kepler. Die Kompatibilität steht auf der <a>offiziellen Treibersuchseite</a>.",
|
||||
"whereGoIntro": "Wohin gehen von hier aus:",
|
||||
"whereGoItems": [
|
||||
"<link1>NVIDIA-Treiber installieren (Host)</link1> — vollständige Installationsanleitung, Kernel-Kompatibilitätsmatrix, optionaler NVENC-Patch und Übertragung auf LXCs.",
|
||||
"<link2>GPU-Modus wechseln (VM ↔ LXC)</link2> — Funktion des direkten Schalters <em>Modus wechseln</em>.",
|
||||
"<link3>GPU zu VM hinzufügen (Passthrough)</link3> und <link4>GPU zu LXC hinzufügen</link4> — erstmalige Zuweisung einer ungebundenen GPU."
|
||||
]
|
||||
},
|
||||
"coral": {
|
||||
"heading": "Coral TPU / AI-Beschleuniger",
|
||||
"subHeading": "(bedingt)",
|
||||
"intro": "Erscheint bei angeschlossenen Google-Coral- oder anderen KI-Beschleunigern. Der Gerätedialog zeigt Verbindung (M.2/Mini-PCIe/USB), PCIe-Breite, Hersteller-/Produkt-ID, Softwareunterstützung (<code>apex</code> im Kernel für PCIe, <code>libedgetpu</code> im Userspace für USB), Module (<code>gasket</code> + <code>apex</code>), Geräteknoten (<code>/dev/apex_*</code>), Edge-TPU-Laufzeitstatus, Live-Temperatur und Firmware-Warnschwellen.",
|
||||
"imageAlt": "Coral Edge TPU Detail modal: PCIe / M.2 Verbindung, PCIe 5.0 GT/s x1 Link, Anbieter 1ac1:089a, Kernel-Treiber apex, gasket und apex Module geladen, /dev/apex_0 vorhanden, Edge TPU Runtime nicht installiert, Temperatur 53.5 °C mit Hardware-Warnschwellenwerten",
|
||||
"imageCaption": "M.2 Coral mit den geladenen Host-Kernel-Modulen, dem Geräteknoten und den freigegebenen Firmware-Temperaturwarnungen. Die Laufzeitlinie wird grün, sobald die passende Edge TPU-Laufzeit installiert ist.",
|
||||
"pathsIntro": "Je nach Formfaktor gibt es zwei Installationspfade:",
|
||||
"pathsItems": [
|
||||
"<strong>M.2 / Mini-PCIe</strong> - der Host benötigt die Kernelmodule <code>gasket</code> + <code>apex</code>, die über DKMS erstellt wurden, damit der Geräteknoten <code>/dev/apex_0</code> beim Booten erscheint.",
|
||||
"<strong>USB Accelerator</strong> – der Host benötigt nur die Edge TPU User-Space Runtime (<code>libedgetpu1-std</code>) aus dem APT-Repository von Google."
|
||||
],
|
||||
"outro": "<installLink>Coral TPU auf dem Host installieren</installLink> erkennt und verwaltet beide Varianten. Hintergrundinformationen und die offizielle Laufzeit finden Sie unter <a>coral.ai/docs</a>. Anschließend weisen Sie das Gerät mit <lxcLink>Coral TPU zu LXC hinzufügen</lxcLink> einem Container zu."
|
||||
},
|
||||
"storage": {
|
||||
"heading": "Speicherzusammenfassung",
|
||||
"intro": "Alle dem Kernel bekannten Blockgeräte nach Typ. Je Datenträger: Kernelname (<code>sda</code>, <code>nvme0n1</code>, <code>zram0</code>…), Typ (<em>SSD</em>, <em>HDD</em>, <em>NVMe SSD</em>), Modell und ausgehandelte Verbindung. Ein Klick öffnet Modell, Seriennummer, Kapazität, Schnittstelle sowie aktuelle und maximale Verbindungsgeschwindigkeit.",
|
||||
"imageAlt": "Storage Summary-Karte mit elf Blockgeräten (SATA SSDs, SATA HDDs, NVMe SSDs und zram) mit Modellzeichenfolgen und ausgehandelten Verbindungsgeschwindigkeiten; die beiden NVMe-Laufwerke zeigen 3.0 x4 mit der aktuellen Geschwindigkeit hervorgehoben",
|
||||
"imageCaption": "Elf Geräte auf diesem Knoten. SATA-Verbindungen erscheinen als <em>SATA <version>, <Gb/s> (current: ...)</em>, NVMe-Laufwerke als <em><PCIe gen> x<width></em>.",
|
||||
"nvmeBody": "Bei NVMe wird die ausgehandelte Verbindung mit dem Gerätemaximum verglichen. Bei Abweichungen, etwa einer Gen3-x4-SSD mit <strong>3.0 x1</strong> in einem einspurig angebundenen Steckplatz, erscheint der aktuelle Wert bernsteinfarben. Das hilft bei langsamen Laufwerken oder nach einer geänderten Lane-Zuordnung durch ein BIOS-Update.",
|
||||
"nvmeModalAlt": "NVMe-Detaildialog für nvme0n1: NVMe SSD, 953.9 GB, aktueller Link 3.0 x1 bernsteinfarben, Maximum 3.0 x4, WDC CL SN720, Seriennummer, PCIe/NVMe",
|
||||
"nvmeModalCaption": "NVMe-Details mit reduzierter Lane-Anzahl: Das Laufwerk unterstützt x4, der Steckplatz ist nur x1 angebunden.",
|
||||
"outro": "SMART-Daten, Selbsttests, Verlauf und PDF-Bericht stehen unter <storageLink>Dashboard: Speicher</storageLink>. Dieselben Daten nutzt <smartLink>SMART-Datenträgerzustand und Tests</smartLink>. Ein langer Test über das Skript schreibt die JSON-Datei für <em>Speicher → Verlauf</em> in Monitor."
|
||||
},
|
||||
"pci": {
|
||||
"heading": "PCI-Geräte",
|
||||
"intro": "PCI-Geräte mit <strong>PCI-BDF</strong> (Bus:Device.Function, etwa <code>03:00.0</code>) und Klasse (<em>Speichercontroller</em>, <em>USB-Controller</em>, <em>Grafikkarte</em>, <em>Netzwerkcontroller</em>, <em>Audiocontroller</em>…). Jede Karte zeigt Hersteller, Gerätenamen und <strong>aktuell gebundenen Kerneltreiber</strong>, hilfreich bei Passthrough-, IOMMU- oder Treiberproblemen.",
|
||||
"imageAlt": "PCI Devices Abschnitt listet fünfzehn Geräte nach Klasse gruppiert: Speicher-Controller auf ahci / nvme, USB-Controller, Grafikkarten (einer auf vfio-pci, einer auf dem nativen Treiber), Netzwerk-Controller auf igb / tg3, ein Audio-Controller neben einem durchgelassenen GPU",
|
||||
"imageCaption": "Fünfzehn Geräte auf diesem Knoten. Beachten Sie, dass die GPU und die dazugehörige Audiofunktion beide an <code>vfio-pci</code> gebunden sind - eine Karte, die für den VM-Durchgang vorbereitet ist.",
|
||||
"bdfTitle": "Lesen des BDF",
|
||||
"bdfBody": "<code>03:00.0</code> steht für PCI-Bus <code>03</code>, Gerät <code>00</code>, Funktion <code>0</code>. Dedizierte GPUs verwenden meist <code>.0</code> für Grafik und <code>.1</code> für HDMI-Audio. Beide Funktionen werden gemeinsam durchgereicht; deshalb bereinigt <link>GPU-Modus wechseln</link> beim Verlassen des VM-Modus auch verwaiste Audiozuordnungen."
|
||||
},
|
||||
"usb": {
|
||||
"heading": "USB-Geräte",
|
||||
"intro": "USB-Geräte mit Hersteller und Produkt, USB-Version, <code>bus:device</code>-Adresse, <code>vendor:product</code>-ID und Kerneltreiber. Die Anzeige ordnet typische Rollen zu: <em>Kommunikation</em> (Z-Wave-/Zigbee-Sticks), <em>USV</em>, Speicher und HID. So lassen sich die Adapter ohne ID-Abgleich unterscheiden.",
|
||||
"imageAlt": "USB-Gerätekarte mit drei Geräten: einem Aeotec Z-Wave Z-Stick, einem ConBee II Zigbee-Koordinator und einem Ellipse ECO USV mit jeweils USB-Version, Adresse, Vendor:product ID und gebundenem Treiber",
|
||||
"imageCaption": "Drei USB-Geräte - zwei Heimautomationsradios auf <code>usbfs</code> und ein USV auf <code>usbfs</code> (NUT spricht mit ihm über libusb)."
|
||||
},
|
||||
"power": {
|
||||
"heading": "Stromverbrauch",
|
||||
"subHeading": "(bedingt)",
|
||||
"intro": "Erscheint, wenn der Host Leistungsdaten liefert. Zwei unabhängige Quellen werden angezeigt, sofern verfügbar :",
|
||||
"items": [
|
||||
"<strong>Gesamtleistung ACPI/IPMI</strong> — Leistungsaufnahme des ganzen Systems über einen Mainboard-Sensor oder BMC. Typisch für Server-Mainboards.",
|
||||
"<strong>CPU-Package-Leistung</strong> — aus Intel-RAPL-Zählern oder AMD-Entsprechung. Trennt die CPU-Leistung vom übrigen System auf Consumer-Mainboards ohne Gesamtsensor."
|
||||
],
|
||||
"supplyImageAlt": "Abschnitt Stromverbrauch zeigt die Gesamtentnahme von 198 W über die ACPI-Schnittstelle sowie eine Power Supplies-Karte mit zwei PSUs, die beide OK melden (185 W und 5 W Ausgang)",
|
||||
"supplyImageCaption": "Serverplatine mit einem einzigen ACPI-Leistungssensor und zwei PSUs, die über IPMI gemeldet werden — die zweite PSU ist die redundante, im Leerlauf bei 5 W.",
|
||||
"cpuImageAlt": "Abschnitt Stromverbrauch auf einer Verbraucherplatine mit nur CPU Power 8.7 W über Intel RAPL",
|
||||
"cpuImageCaption": "Verbraucherplatine ohne Ganzsystemsensor - der Abschnitt fällt nur auf RAPL CPU zurück."
|
||||
},
|
||||
"psu": {
|
||||
"heading": "Netzteile",
|
||||
"subHeading": "(bedingt)",
|
||||
"body": "Auf Server-Mainboards mit mehreren Netzteilen zeigt IPMI deren Vorhandensein (PSU 1 / PSU 2 / …), Eingangsspannung, Ausgangsleistung und Zustand OK/Fehler. Nach einer Stromstörung ist dies die erste Prüfung bei redundanten Netzteilen."
|
||||
},
|
||||
"fans": {
|
||||
"heading": "Systemlüfter",
|
||||
"subHeading": "(bedingt)",
|
||||
"body": "Drehzahl jedes Lüfters mit Minidiagramm, sofern unterstützt. Ohne Einzelwerte wird ein einziger Gehäuselüfterwert angezeigt."
|
||||
},
|
||||
"ups": {
|
||||
"heading": "UPS-Status",
|
||||
"subHeading": "(bedingt)",
|
||||
"body": "Erscheint bei konfiguriertem und erreichbarem NUT-Server (Network UPS Tools). Sichtbar sind Status (Netzbetrieb/Batteriebetrieb/Laden/Batterie schwach), Batterieladung, Restlaufzeit, Last, Eingangsspannung, Modell und Firmware. Dieselben Daten fließen in <em>Sicherheit und Zertifikate</em> der Zustandsüberwachung ein; Batteriebetrieb wird sofort gemeldet."
|
||||
},
|
||||
"dataCollected": {
|
||||
"heading": "Wie die Daten gesammelt werden",
|
||||
"headerSection": "Abschnitt des Reiters",
|
||||
"headerEndpoint": "Endpunkt",
|
||||
"headerSource": "Quelle",
|
||||
"rows": [
|
||||
{
|
||||
"section": "Statisches Inventar (PCI, CPU, BIOS)",
|
||||
"endpoint": "/api/hardware",
|
||||
"source": "<code>lspci -vmm</code>, <code>/proc/cpuinfo</code>, <code>dmidecode</code>; für die Laufzeit des Prozesses zwischengespeichert."
|
||||
},
|
||||
{
|
||||
"section": "Live-Sensorwerte",
|
||||
"endpoint": "/api/hardware/live",
|
||||
"source": "<code>sensors</code> (lm-sensors), <code>/sys/class/hwmon</code> und <code>/sys/block</code> identifizieren Speichergeräte. Temperaturen bleiben live; nur die Zuordnung von hwmon zu Geräten wird 60 Sekunden zwischengespeichert."
|
||||
},
|
||||
{
|
||||
"section": "CPU Temperaturverlauf",
|
||||
"endpoint": "/api/temperature/history",
|
||||
"source": "Zeitreihe, die der Temperatur-Collector alle 60 Sekunden erfasst und in SQLite speichert."
|
||||
},
|
||||
{
|
||||
"section": "GPU Live-Metriken",
|
||||
"endpoint": "/api/gpu/<slot>/realtime",
|
||||
"source": "NVIDIA: <code>nvidia-smi --query-gpu=...</code>. Intel: <code>intel_gpu_top</code>. AMD: sysfs <code>/sys/class/drm/cardN</code>."
|
||||
}
|
||||
],
|
||||
"codeComment1": "# Inventar mit der Betriebssystemansicht abgleichen",
|
||||
"codeComment2": "# Bestätigen Sie die GPU-Karte, die das Dashboard sieht"
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Wohin als nächstes",
|
||||
"items": [
|
||||
{
|
||||
"label": "Installieren Sie NVIDIA Treiber (Host)",
|
||||
"href": "/docs/hardware/nvidia-host",
|
||||
"tail": "— was die Installationsschaltfläche des GPU-Modals ausführt."
|
||||
},
|
||||
{
|
||||
"label": "GPU-Modus wechseln (VM ↔ LXC)",
|
||||
"href": "/docs/hardware/switch-gpu-mode",
|
||||
"tail": "— was der Inline-Modus-Schalter auf jeder GPU-Karte mit dem Host macht."
|
||||
},
|
||||
{
|
||||
"label": "Installieren Sie Coral TPU auf dem Host",
|
||||
"href": "/docs/hardware/install-coral-tpu-host",
|
||||
"tail": " — Installation von Coral-Kernelmodul und -Laufzeit."
|
||||
},
|
||||
{
|
||||
"label": "SMART-Festplattenstatus und -test",
|
||||
"href": "/docs/disk-manager/smart-disk-test",
|
||||
"tail": " — das Skript hinter den SMART-Daten in der Datenträger-Detailansicht unter Speicher."
|
||||
},
|
||||
{
|
||||
"label": "Dashboard: Speicher-Tab",
|
||||
"href": "/docs/monitor/dashboard/storage",
|
||||
"tail": "— vollständige SMART-Attributtabelle, Selbsttestverlauf und PDF-Bericht."
|
||||
},
|
||||
{
|
||||
"label": "Gesundheitsmonitor",
|
||||
"href": "/docs/monitor/health-monitor",
|
||||
"tail": " — die Kategorie CPU und Temperatur, die dieselben Sensoren nutzt."
|
||||
},
|
||||
{
|
||||
"label": "API-Referenz",
|
||||
"href": "/docs/monitor/api",
|
||||
"tail": " — die Endpunkte für Hardware und GPU."
|
||||
},
|
||||
{
|
||||
"label": "Dashboard-Index",
|
||||
"href": "/docs/monitor/dashboard",
|
||||
"tail": " — die anderen Reiter."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Monitor — Dashboard | ProxMenux-Dokumentation",
|
||||
"description": "Das Dashboard ist die Hauptoberfläche von ProxMenux Monitor: zehn Inhaltsreiter einschließlich Apps-Starter, eine globale Kopfzeile und eine konfigurierbare Navigationsreihenfolge."
|
||||
},
|
||||
"header": {
|
||||
"title": "Dashboard",
|
||||
"description": "Die Alltagsansicht von ProxMenux Monitor: zehn Inhaltsreiter einschließlich Apps-Starter, eine globale Kopfzeile und eine konfigurierbare Navigationsreihenfolge.",
|
||||
"section": "ProxMenux Monitor"
|
||||
},
|
||||
"oneHeader": {
|
||||
"title": "Ein Header, zehn Tabs",
|
||||
"body": "Die Kopfzeile mit Logo, Knotenname, Statusanzeige, Laufzeit, Aktualisierung und Designauswahl bleibt sichtbar. Der aktive Reiter wechselt den gesamten Inhalt darunter. Die Statusfarbe entspricht der schwerwiegendsten Kategorie der <link>Zustandsüberwachung</link>; im Dashboard wird derselbe Wert angezeigt."
|
||||
},
|
||||
"tabs": {
|
||||
"heading": "Die zehn Tabs",
|
||||
"intro": "Jeder Tab hat eine eigene eigene Seite. Seiten werden schrittweise hinzugefügt, wenn die Dokumentation ausgefüllt wird; unten ist die vollständige Liste und wofür jeder verantwortlich ist.",
|
||||
"headerTab": "Tab.",
|
||||
"headerOwns": "Zuständig für",
|
||||
"rows": [
|
||||
{
|
||||
"name": "Systemübersicht",
|
||||
"linksTo": "/docs/monitor/dashboard/system-overview",
|
||||
"owns": "CPU / Speicher / Temperatur-Widgets, aktive VM & LXC Anzahl, historische Metriken Charts, Speicher und Netzwerk-Zusammenfassungen. Standardlanderegisterkarte, bis die Navigationsreihenfolge angepasst ist."
|
||||
},
|
||||
{
|
||||
"name": "Apps",
|
||||
"linksTo": "/docs/monitor/dashboard/apps",
|
||||
"owns": "Gemeinsamer Starter für registrierte LXC-Weblinks und eigene Links, mit Kategorien, Suche, Gastsystem-Verknüpfungen und Aktualisierungshinweisen je Anwendung."
|
||||
},
|
||||
{
|
||||
"name": "Speicher",
|
||||
"owns": "Proxmox-Pools, physische Festplatten, SMART-Daten, ZFS-Zustand, Verschleiß & Lebensdauer, Beobachtungshistorie."
|
||||
},
|
||||
{
|
||||
"name": "Netzwerk",
|
||||
"owns": "Physische Schnittstellen, Bonds, Bridges und OVS, IP/MAC-Adressen, RX/TX-Diagramme und RRD-Verlauf je Schnittstelle."
|
||||
},
|
||||
{
|
||||
"name": "VMs und LXCs",
|
||||
"owns": "Bestandsaufnahme der Gastsysteme, Detailansicht für Konfiguration, Metriken und Protokolle sowie Starten, Stoppen, Neustarten und Herunterfahren."
|
||||
},
|
||||
{
|
||||
"name": "Hardware",
|
||||
"owns": "CPU-Modell und Topologie, Speicherlayout, PCIe-Topologie, GPUs mit Echtzeitüberwachung pro Slot."
|
||||
},
|
||||
{
|
||||
"name": "Systemprotokolle",
|
||||
"owns": "Live <code>journalctl</code> mit Filtern, Proxmox Task History, Benachrichtigungsprotokoll, herunterladbare Log-Bundles."
|
||||
},
|
||||
{
|
||||
"name": "Terminal",
|
||||
"owns": "Shell-Zugriff auf Host oder VM/CT im Browser mit <code>xterm.js</code> über WebSockets."
|
||||
},
|
||||
{
|
||||
"name": "Sicherheit",
|
||||
"owns": "Auth-Setup, Passwort / 2FA / API-Token, Audit-Log, optionales Fail2Ban-Panel, Secure Gateway-Bereitstellung."
|
||||
},
|
||||
{
|
||||
"name": "Einstellungen",
|
||||
"owns": "Monitor-Sprache, Navigationsreihenfolge, Benachrichtigungskanäle, KI-Anbieter, Zustandsschwellen, Ausschlüsse und Nachinstallationsoptimierungen."
|
||||
}
|
||||
]
|
||||
},
|
||||
"headerAnatomy": {
|
||||
"heading": "Kopfanatomie",
|
||||
"items": [
|
||||
"<strong>Logo + Produktname</strong> auf der linken Seite. Das Logo wird zu einer \"update available\"-Variante, wenn eine neuere Monitor-Version erkannt wird.",
|
||||
"<strong>Knotenidentität</strong>: Name aus <code>pvesh get /nodes</code>, ersatzweise <code>hostname</code>.",
|
||||
"<strong>Zustandsanzeige</strong>: Gesund (grün), Warnung (gelb), Kritisch (rot). Ein Klick öffnet die Zustandsüberwachung. Ein blaues <em>Info</em>-Abzeichen erscheint, wenn ausgeblendete Elemente noch innerhalb ihrer Unterdrückungsfrist liegen.",
|
||||
"<strong>Laufzeit</strong>: Betriebszeit des Hosts in gut lesbarem Format.",
|
||||
"<strong>Aktualisieren</strong>: wiederholt die Live-API-Aufrufe, ohne die gesamte Seite neu zu laden.",
|
||||
"<strong>Designauswahl</strong>: hell, dunkel oder System. In <code>localStorage</code> gespeichert."
|
||||
]
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Wohin als nächstes",
|
||||
"items": [
|
||||
{
|
||||
"label": "Apps Tab",
|
||||
"href": "/docs/monitor/dashboard/apps",
|
||||
"tail": " — gemeinsamer Weblink-Starter und seine Beziehung zu registrierten LXC-Anwendungen."
|
||||
},
|
||||
{
|
||||
"label": "Registerkarte Systemübersicht",
|
||||
"href": "/docs/monitor/dashboard/system-overview",
|
||||
"tail": "— die Landekarte, vollständig dokumentiert."
|
||||
},
|
||||
{
|
||||
"label": "Gesundheitsmonitor",
|
||||
"href": "/docs/monitor/health-monitor",
|
||||
"tail": " — Dialog hinter der Zustandsanzeige mit Details zu zehn Kategorien."
|
||||
},
|
||||
{
|
||||
"label": "Architektur",
|
||||
"href": "/docs/monitor/architecture",
|
||||
"tail": "— wie das Dashboard mit dem Flask-Backend spricht."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,251 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Monitor — Dashboard: Registerkarte Netzwerk | ProxMenux-Dokumentation",
|
||||
"description": "Die Registerkarte Netzwerk erfasst alle Hostschnittstellen: physische Netzwerkkarten, Bridges, Bonds, VLANs und virtuelle VM/LXC-Schnittstellen. Die Detailansicht zeigt IP, MAC, Status, Bond-Mitglieder, Verkehr seit dem Start und ein RRD-Verlaufsdiagramm."
|
||||
},
|
||||
"header": {
|
||||
"title": "Dashboard: Netzwerk-Tab",
|
||||
"description": "Alle vom Kernel gemeldeten Schnittstellen — physische Karten, Bridges, Bonds, VLANs und virtuelle VM/LXC-Ports — sind in drei Karten gruppiert. Ein Klick auf eine Zeile öffnet Adressen, Verkehrszähler und RRD-Verlaufsdaten.",
|
||||
"section": "ProxMenux Monitor · Übersicht"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Aktuelle Daten und Verlauf",
|
||||
"body": "Der aktuelle Status stammt aus <code>psutil.net_if_stats()</code> und <code>ip</code>, der Bandbreitenverlauf aus dem Proxmox-RRD-Speicher über <code>/api/network/<interface>/metrics</code>. Zähler werden etwa alle 5 Sekunden aktualisiert, RRD-Daten für das Diagramm bei Bedarf geladen."
|
||||
},
|
||||
"topRow": {
|
||||
"heading": "Obere Reihe: vier Kennzahlenkarten",
|
||||
"headerCard": "Karte",
|
||||
"headerWhat": "Was es zeigt",
|
||||
"rows": [
|
||||
{
|
||||
"card": "Netzwerkverkehr",
|
||||
"what": "Aggregierte RX / TX-Rate über alle Schnittstellen hinweg, formatiert in der richtigen Einheit (bps / Kbps / Mbps / Gbps)."
|
||||
},
|
||||
{
|
||||
"card": "Aktive Schnittstellen",
|
||||
"what": "Zwei Zähler: <em>Physical X / Y</em> und <em>Bridges X / Y</em>, jeweils aktiv im Verhältnis zur Gesamtzahl. Ein erster Anhaltspunkt, wenn etwas nicht mehr funktioniert."
|
||||
},
|
||||
{
|
||||
"card": "Netzwerkstatus",
|
||||
"what": "Schnelle Bewertung: In Ordnung / Warnung / Kritisch anhand von Verbindungsstatus, Gateway-Erreichbarkeit und Bridge-Integrität. Entspricht der Kategorie <em>Netzwerkschnittstellen</em> im Health Monitor."
|
||||
},
|
||||
{
|
||||
"card": "Netzwerklatenz",
|
||||
"what": "Paketumlaufzeit zum Gateway mit kleinem Verlaufsdiagramm. Ein Klick öffnet den unten beschriebenen <strong>Dialog Netzwerklatenz</strong>: Verlauf und Ping-Test bei Bedarf zu Gateway, Cloudflare oder Google mit herunterladbarem PDF-Bericht."
|
||||
}
|
||||
]
|
||||
},
|
||||
"flow": {
|
||||
"heading": "Netzwerkflussdiagramm",
|
||||
"intro": "Zwischen oberer Reihe und Gruppenkarten zeigt <strong>Network Flow</strong> die aktuelle Topologie. Die Paketwege führen von physischen Netzwerkkarten über Bridges zu VMs und Containern. Animierte Impulse stellen den aktuellen rx/tx-Verkehr jeder Verbindung dar.",
|
||||
"imageAlt": "Netzwerkflussdiagramm — NICs links, Host und Bridges in der Mitte, VMs und LXCs rechts, mit animierten Impulsen auf jeder Verbindung",
|
||||
"imageCaption": "Network Flow – farbkodierte Knoten sowie animierte Kometen, deren Richtung und Dicke Live-Verkehr widerspiegeln.",
|
||||
"elementsTitle": "Was das Diagramm zeigt",
|
||||
"elementsIntro": "Jeder Knoten stellt einen Eintrag aus demselben Inventar wie die Karten darunter dar. Die Anordnung als Topologie macht ihre Beziehungen sofort sichtbar:",
|
||||
"elements": [
|
||||
"<strong>Netzwerkkarten</strong> (orange) — physische Schnittstellen mit aktiver Verbindung; inaktive erscheinen blass.",
|
||||
"<strong>Host</strong> (orange) — der Proxmox-Host zwischen Netzwerkkarten und Bridges. Ein fester Bezugspunkt, nicht anklickbar.",
|
||||
"<strong>Bridges</strong> (cyan) — Linux- und OVS-Bridges mit mindestens einem aktiven Gast. Ungenutzte Bridges werden ausgeblendet, damit das Diagramm den tatsächlichen Verkehr zeigt.",
|
||||
"<strong>LXCs</strong> (cyan) — laufende Container an einer Bridge.",
|
||||
"<strong>VMs</strong> (lila) — laufende virtuelle Maschinen an einer Bridge.",
|
||||
"Gestoppte VMs und Container werden ausgeblendet."
|
||||
],
|
||||
"pulsesTitle": "Was die Animation kodiert",
|
||||
"pulsesBody": "Die animierten Kometen, die sich entlang jeder Kante bewegen, repräsentieren Live-Verkehr:",
|
||||
"pulses": [
|
||||
"<strong>Richtung</strong> — zur Netzwerkkarte bedeutet <em>tx</em> des Gastes, zum Gast bedeutet <em>rx</em>.",
|
||||
"Die <strong>Linienbreite</strong> wächst mit der rx+tx-Rate des Gastes. Bei wenig Verkehr bleibt eine schwache animierte Linie sichtbar, bei hohem Verkehr wird sie dick.",
|
||||
"<strong>Leuchten des Kometenkopfs</strong> — warm bei etwa 1 MB/s, intensiv ab 30 MB/s. Zeigt auf einen Blick, welcher Gast eine Netzwerkkarte stark auslastet.",
|
||||
"<strong>Klick</strong> — alle Knoten außer dem Host öffnen den unten beschriebenen Schnittstellendialog. Ein Klick auf den Host hat keine Wirkung; dafür gibt es hier keinen Dialog."
|
||||
],
|
||||
"useTitle": "Wenn es nützlich ist",
|
||||
"useBody": "Die Karten zeigen, <em>was</em> vorhanden ist; das Diagramm zeigt, <em>wie es verbunden ist</em> und wo Verkehr fließt. Sichtbar werden Gäste an derselben Bridge, zwei stark ausgelastete Gäste an derselben Netzwerkkarte als möglicher Engpass oder eine VM, die eine Verbindung allein auslastet."
|
||||
},
|
||||
"groups": {
|
||||
"heading": "Drei Schnittstellengruppen",
|
||||
"intro": "Drei Karten gruppieren Schnittstellen nach Funktion. Jede Kopfzeile zeigt die Anzahl aktiver Schnittstellen. Eine farbige Kennzeichnung nennt den <strong>Typ</strong> jeder Schnittstelle:",
|
||||
"badges": [
|
||||
"Blaues <strong>Physical</strong> — physische Netzwerkkarte.",
|
||||
"Grünes <strong>Bridge</strong> — Linux- oder OVS-Bridge (<code>vmbr*</code>).",
|
||||
"Purple <strong>Bond</strong> — Bond / LACP / Active-Backup-Aggregator.",
|
||||
"Cyanfarbenes <strong>VLAN</strong> — VLAN-Unterschnittstelle (<code>vmbr0.10</code>, <code>eno1.42</code>, …)."
|
||||
],
|
||||
"clickable": "<strong>Jede Zeile ist anklickbar</strong>: physische und virtuelle Schnittstellen, Bridges und Bonds. Der unten beschriebene Dialog zeigt Basisdaten, IPs, Zähler und den RX/TX-Verlauf aus dem Proxmox-RRD-Speicher.",
|
||||
"physicalTitle": "Physikalische Schnittstellen",
|
||||
"physicalBody": "Vom Kernel erkannte physische Schnittstellen: <code>eno1</code>, <code>enp4s0</code>, <code>eth0</code>, <code>wlp3s0</code> usw. Jedes Gerät hat eine Zeile mit blauem <strong>Physical</strong>-Label und Verbindungsstatus. Auch <em>Bond-Mitglieder</em> erscheinen hier mit Verweis auf den zugehörigen Bond.",
|
||||
"bridgeTitle": "Bridge-Schnittstellen",
|
||||
"bridgeBody": "Von Proxmox verwaltete Linux-Bridges (<code>vmbr0</code>, <code>vmbr1</code>, …) und OVS-Bridges. Jede Zeile zeigt das grüne <strong>Bridge</strong>-Label, bei nur einem Port die physische Schnittstelle und den Status. Bonds tragen das lila <strong>Bond</strong>-Label, VLAN-Unterschnittstellen das cyanfarbene <strong>VLAN</strong>-Label.",
|
||||
"vmTitle": "VM-/LXC-Schnittstellen",
|
||||
"vmBody": "Beim Gaststart erzeugte <code>tap*</code>- und <code>veth*</code>-Schnittstellen, eine je virtueller Netzwerkkarte. Die Kopfzeile zeigt <em>X / Y Active</em>; die Zeilen verlinken zur VM/CT auf der Registerkarte VMs & LXCs. Nach dem Stoppen verschwinden inaktive Einträge mit dem nächsten Aktualisierungszyklus."
|
||||
},
|
||||
"drillIn": {
|
||||
"heading": "Schnittstellendetails",
|
||||
"intro": "Ein Klick auf eine Zeile öffnet einen Dialog mit fünf Bereichen:",
|
||||
"headerBlock": "Block",
|
||||
"headerContents": "Inhalt",
|
||||
"rows": [
|
||||
{
|
||||
"block": "Grundlegende Informationen",
|
||||
"contents": "Name, Typ (physisch / Bridge / Bond / VLAN / vm), MAC-Adresse, Status (aktiv / inaktiv), MTU und zugrunde liegende physische Schnittstelle bei virtuellen Typen."
|
||||
},
|
||||
{
|
||||
"block": "Bond-Mitglieder",
|
||||
"contents": "Nur für Bonds: jede zugeordnete Netzwerkkarte mit Aktiv-/Fehlerstatus, Bond-Modus (active-backup / 802.3ad / balance-alb / …) und gegebenenfalls primäre Schnittstelle."
|
||||
},
|
||||
{
|
||||
"block": "IP-Adressen",
|
||||
"contents": "Jede IPv4/IPv6-Adresse mit der Präfixlänge. Autokonfigurierte link-lokale Adressen werden aufgelistet, aber ausgegraut."
|
||||
},
|
||||
{
|
||||
"block": "Verlaufsdiagramm",
|
||||
"contents": "RX/TX-Bandbreite im gewählten Zeitraum (1 Stunde / 24 Stunden / 7 Tage / 30 Tage / 1 Jahr), geladen über <code>/api/network/<interface>/metrics</code> aus Proxmox-RRD."
|
||||
},
|
||||
{
|
||||
"block": "Verkehr seit dem letzten Start",
|
||||
"contents": "RX/TX-Bytes und -Pakete seit dem letzten Hoststart sowie Zähler für Fehler und verworfene Pakete."
|
||||
}
|
||||
],
|
||||
"inactiveTitle": "Auch inaktive Schnittstellen haben eine Detailansicht",
|
||||
"inactiveBody": "Ist die Schnittstelle <em>inaktiv</em>, zeigt der Dialog den Hinweis „Schnittstelle inaktiv“ ohne aktuelle Zähler. Konfiguration mit Adressen und Bond-Mitgliedern sowie Verlaufsdaten bleiben zur Fehlerdiagnose sichtbar."
|
||||
},
|
||||
"latency": {
|
||||
"heading": "Dialog Netzwerklatenz",
|
||||
"intro": "Die Karte <em>Netzwerklatenz</em> in der oberen Reihe öffnet einen eigenen Dialog mit Verlauf, Tests bei Bedarf, drei Zielen und herunterladbarem PDF-Bericht.",
|
||||
"targetsTitle": "Ziele",
|
||||
"targetsIntro": "Die Auswahlliste oben bestimmt das Ping-Ziel:",
|
||||
"targets": [
|
||||
"<strong>Gateway</strong> — Ihr LAN-Router. Prüft nur den lokalen Abschnitt, um Switch- oder Kabelprobleme ohne WAN-Einfluss zu untersuchen.",
|
||||
"<strong>Cloudflare (1.1.1.1)</strong> — öffentlicher DNS-Resolver im Anycast-Netz. Prüft den WAN-Abschnitt.",
|
||||
"<strong>Google (8.8.8.8)</strong> — alternatives öffentliches Ziel zur Gegenprüfung oder bei regionalen Cloudflare-Störungen."
|
||||
],
|
||||
"mode1Title": "Modus 1 — Historische Ansicht",
|
||||
"mode1Alt": "Latenzdialog im Verlaufsmodus mit Ziel Gateway, Zeitraum von einer Stunde und eingezeichneten früheren Messwerten",
|
||||
"mode1Caption": "Gateway-Verlauf der letzten Stunde. Der Temperatur-/Latenz-Sammler schreibt die Messwerte alle 60 Sekunden in die Verlaufsdatenbank.",
|
||||
"mode1Body1": "Standardmodus beim Öffnen. Eine zweite Auswahl bestimmt den Zeitraum (<em>1 Stunde / 6 Stunden / 24 Stunden / 3 Tage / 7 Tage</em>). Über dem Diagramm stehen Aktuell / Minimum / Mittelwert / Maximum und ein Status Ausgezeichnet / Gut / Mittelmäßig / Schlecht nach den folgenden Schwellen.",
|
||||
"mode1Body2": "Quelle sind die Messwerte, mit denen Health Monitor anhaltende Netzwerkverzögerungen erkennt. Der Hintergrund-Thread <code>_temperature_collector_loop</code> misst das Gateway alle 60 Sekunden und speichert die Werte lokal in SQLite.",
|
||||
"mode2Title": "Modus 2 — Echtzeitprüfung",
|
||||
"mode2Alt": "Latenzdialog mit laufendem Echtzeit-Ping zu Cloudflare, 50 % Fortschritt und fortlaufenden Messwerten im Diagramm",
|
||||
"mode2Caption": "Zweiminütiger Cloudflare-Test mit einer Messung alle fünf Sekunden, die sofort im Diagramm erscheint. <em>Stoppen</em> beendet vorzeitig; <em>Erneut testen</em> ergänzt denselben Datensatz.",
|
||||
"mode2Intro": "Die Umstellung des Ziels auf Cloudflare oder Google startet einen On-Demand-Ping-Test. Verhalten:",
|
||||
"mode2Items": [
|
||||
"<strong>Dauer</strong> — zwei Minuten je Lauf mit Fortschrittsbalken und verbleibenden Sekunden.",
|
||||
"<strong>Intervall</strong> — eine Messung alle fünf Sekunden, 24 je Lauf.",
|
||||
"<strong>Methode</strong> — ICMP Echo Request (<code>ping</code>), drei aufeinanderfolgende Pings je Messwert mit gemittelter Latenz.",
|
||||
"<strong>Stop</strong> — beendet den Test sofort; Teildaten bleiben erhalten.",
|
||||
"<strong>Erneut testen</strong> — ergänzt die vorhandenen Daten um weitere Messwerte, sodass über mehrere Läufe ein längerer Verlauf entsteht.",
|
||||
"<strong>Aktuelle Statusanzeige</strong> — wird nach jeder Messung anhand derselben Schwellen für Ausgezeichnet / Gut / Mittelmäßig / Schlecht neu bewertet."
|
||||
],
|
||||
"thresholdsTitle": "Leistungsschwellen",
|
||||
"headerStatus": "Status",
|
||||
"headerRange": "Bereich",
|
||||
"headerImpact": "Praktische Auswirkungen",
|
||||
"thresholdRows": [
|
||||
{
|
||||
"status": "Exzellent",
|
||||
"range": "< 50 ms",
|
||||
"impact": "Optimal für Echtzeit-Apps, Spiele und Videoanrufe."
|
||||
},
|
||||
{
|
||||
"status": "Gut",
|
||||
"range": "50 – 100 ms",
|
||||
"impact": "Für die meisten Anwendungen akzeptabel, mit minimalen Auswirkungen."
|
||||
},
|
||||
{
|
||||
"status": "Mittelmäßig",
|
||||
"range": "100 – 200 ms",
|
||||
"impact": "Spürbare Verzögerung. Kann VoIP und interaktive Anwendungen beeinträchtigen."
|
||||
},
|
||||
{
|
||||
"status": "Schlecht",
|
||||
"range": "> 200 ms",
|
||||
"impact": "Erhebliche Latenz. Untersuchung empfohlen."
|
||||
}
|
||||
],
|
||||
"reportTitle": "Netzwerklatenzbericht (PDF)",
|
||||
"reportIntro": "Beide Modi haben neben der Zielauswahl eine Schaltfläche <strong>Bericht</strong>. Sie erzeugt ein PDF der Messungen als möglichen Anhang für eine Störungsmeldung beim Internetanbieter.",
|
||||
"reportPreviewAlt": "Erste PDF-Seite des Latenzberichts mit Zusammenfassung, Messanzeige, Statistik, Diagramm und Schwellenwerten",
|
||||
"reportPreviewCaption": "Die erste Seite enthält Zusammenfassung, Messanzeige, Hauptstatistik, Latenzverlauf und Schwellenwerte. Ab Seite 2 folgen die Messwerttabelle und die Methodik.",
|
||||
"downloadLabel": "Beispiel-Latenzbericht herunterladen (PDF)",
|
||||
"sectionsIntro": "Der Bericht umfasst sechs Abschnitte:",
|
||||
"sections": [
|
||||
"<strong>Zusammenfassung</strong> — Messanzeige von 0 bis über 300 ms mit grünen, gelben und roten Zonen; Status Ausgezeichnet / Gut / Mittelmäßig / Schlecht; Ziel, Modus, Messwertanzahl und Paketverlustübersicht.",
|
||||
"<strong>Latenzstatistik</strong> — vier Anzeigen für aktuellen Wert, Minimum, Mittelwert und Maximum sowie Messwertanzahl, mittleren Paketverlust und Testzeitraum.",
|
||||
"<strong>Latenzdiagramm</strong> — Flächendiagramm der Messwerte im Testzeitraum mit Minimum, Mittelwert und Maximum an der vertikalen Achse.",
|
||||
"<strong>Leistungsschwellen</strong> — die oben beschriebene vierstufige Skala mit einem Farbpunkt je Stufe.",
|
||||
"<strong>Detaillierte Ergebnisse</strong> — nummerierte Tabelle mit Zeitstempel, Latenz, Paketverlust und Status jeder Messung. Zeigt kurze Spitzen, die Mittelwerte verbergen können.",
|
||||
"<strong>Methodik</strong> — ICMP Echo Request, drei aufeinanderfolgende Pings je Messwert, Zielname und IP sowie abschließende Bewertung anhand des Status."
|
||||
],
|
||||
"useCaseTitle": "Anwendungsfall: Support beim Internetanbieter",
|
||||
"useCaseBody": "Führen Sie bei langsamer Verbindung den zweiminütigen Cloudflare-Test aus, verlängern Sie die Aufzeichnung mit <em>Erneut testen</em> und wählen Sie <em>Bericht</em>. Das PDF enthält alle Messwerte und die Methodik. Sie können es mit den Störungszeiten an eine Supportanfrage anhängen; der Anbieter bestimmt die erforderlichen Nachweise."
|
||||
},
|
||||
"excluding": {
|
||||
"heading": "Schnittstellen von der Überwachung ausschließen",
|
||||
"body1": "Schnittstellen lassen sich von der Überwachung ausschließen, etwa absichtlich deaktivierte Bridges, Testschnittstellen oder entfernte Netzwerkkarten mit verbliebener Konfiguration. Die Einstellung liegt in <code>excluded_interfaces</code>: Health Monitor erzeugt dafür weder Warnungen noch Benachrichtigungen und berücksichtigt sie nicht im Gesamtstatus.",
|
||||
"body2": "Wählen Sie im Kontextmenü <em>Von Überwachung ausschließen</em>. Die Schnittstelle bleibt mit lila Kennzeichnung <strong>ausgeschlossen</strong> sichtbar. Im selben Menü lässt sich die Überwachung wieder aktivieren."
|
||||
},
|
||||
"dataCollected": {
|
||||
"heading": "Wie die Daten gesammelt werden",
|
||||
"headerSection": "Abschnitt des Reiters",
|
||||
"headerEndpoint": "Endpunkt",
|
||||
"headerSource": "Quelle",
|
||||
"rows": [
|
||||
{
|
||||
"section": "Schnittstelleninventar",
|
||||
"endpoint": "/api/network",
|
||||
"source": "<code>ip -j addr</code> + <code>ip -j link</code> und Abfragen zu Bonds und Bridges."
|
||||
},
|
||||
{
|
||||
"section": "Übersichtskarten",
|
||||
"endpoint": "/api/network/summary",
|
||||
"source": "Zusammenfassung des Inventars und Anzahl aktiver und inaktiver Schnittstellen."
|
||||
},
|
||||
{
|
||||
"section": "RX/TX-Verlauf je Schnittstelle",
|
||||
"endpoint": "/api/network/<iface>/metrics",
|
||||
"source": "Aktuelle Zähler verwenden <code>/proc/net/dev</code>; der Diagrammverlauf stammt über pvesh aus Proxmox-RRD. VM/LXC-Schnittstellen nutzen Gastdaten, physische Schnittstellen und Bridges die Daten des Knotens."
|
||||
},
|
||||
{
|
||||
"section": "Latenz: aktuell",
|
||||
"endpoint": "/api/network/latency/current",
|
||||
"source": "Kurze Folge von <code>ping</code>-Anfragen an das konfigurierte Gateway oder Ziel."
|
||||
},
|
||||
{
|
||||
"section": "Latenz: historisch",
|
||||
"endpoint": "/api/network/latency/history",
|
||||
"source": "Messwerte werden etwa alle 60 Sekunden vom Hintergrundsammler für Temperatur und Latenz gespeichert."
|
||||
}
|
||||
],
|
||||
"codeComment1": "# Den im Dashboard angezeigten Schnittstellenstatus prüfen",
|
||||
"codeComment2": "# Eine aktuelle Latenzmessung über die gesamte Verbindung prüfen"
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Wohin als nächstes",
|
||||
"items": [
|
||||
{
|
||||
"label": "Gesundheitsmonitor",
|
||||
"href": "/docs/monitor/health-monitor",
|
||||
"tail": " — Netzwerkkategorie und Schwellenwerte des Latenzverlaufs."
|
||||
},
|
||||
{
|
||||
"label": "API-Referenz",
|
||||
"href": "/docs/monitor/api",
|
||||
"tail": " — Netzwerk- und Latenz-Endpunkte."
|
||||
},
|
||||
{
|
||||
"label": "Integrationen",
|
||||
"href": "/docs/monitor/integrations",
|
||||
"tail": " — die Prometheus-Abfrage liefert dieselben Netzwerkmetriken."
|
||||
},
|
||||
{
|
||||
"label": "Dashboard-Index",
|
||||
"href": "/docs/monitor/dashboard",
|
||||
"tail": "Die anderen Tabs."
|
||||
},
|
||||
{
|
||||
"label": "ProxMenux → Netzwerk",
|
||||
"href": "/docs/network",
|
||||
"tail": "— die Aktionsseite: Brückenanalyse, persistente Schnittstellennamen, Backup & Neustart, iperf3."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,246 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Monitor — Dashboard: Registerkarte Sicherheit | ProxMenux-Dokumentation",
|
||||
"description": "Die Registerkarte Sicherheit bündelt die Schutzfunktionen in zwei Spalten: ProxMenux Monitor (Authentifizierung, SSL/HTTPS, API-Tokens, Secure Gateway) und Proxmox VE (Firewall, Fail2Ban, Lynis-Audit). Mit Anleitungen zum Secure-Gateway-Assistenten, zum Lynis-Audit sowie zur Installation und Regelkonfiguration von Fail2Ban."
|
||||
},
|
||||
"header": {
|
||||
"title": "Dashboard: Sicherheits-Tab",
|
||||
"description": "Die Sicherheitsfunktionen im Dashboard sind in zwei Bereiche gegliedert: Einstellungen für Monitor selbst (Authentifizierung, SSL, Tokens, Secure Gateway) und für den überwachten Proxmox-Host (Firewall, Fail2Ban, Lynis).",
|
||||
"section": "ProxMenux Monitor · Übersicht"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Zwei Bereiche, ein Tab",
|
||||
"body": "Die Registerkarte Sicherheit hat zwei Bereiche: <strong>ProxMenux Monitor</strong> (Dashboard-Einstellungen) und <strong>Proxmox VE</strong> (Host-Einstellungen). Die Karten für Fail2Ban und Lynis bieten bei fehlenden Werkzeugen deren Installation an und zeigen nach der Installation die Bedienelemente."
|
||||
},
|
||||
"monitor": {
|
||||
"heading": "ProxMenux Monitor",
|
||||
"intro": "Vier Karten steuern den Zugriff auf das Dashboard und die Authentifizierung."
|
||||
},
|
||||
"auth": {
|
||||
"heading": "Authentifizierung",
|
||||
"imageAlt": "Authentifizierungskarte mit Status Aktiviert, Abmelden, Passwort ändern, Informationen zur Zwei-Faktor-Authentifizierung und Schaltflächen zum Aktivieren von 2FA und Deaktivieren der Authentifizierung",
|
||||
"imageCaption": "Karte bei aktivierter Authentifizierung: Statusanzeige, Passwort ändern, 2FA aktivieren und die destruktive Aktion Authentifizierung deaktivieren.",
|
||||
"intro": "Die Karte verwaltet die Anmeldung am Dashboard. Ersteinrichtung, Passwortrichtlinie, TOTP-Einrichtung und Wiederherstellung bei verlorenem Authenticator sind unter <link>Zugriff und Authentifizierung</link> beschrieben. Diese Karte bietet die Einstellungen für den täglichen Gebrauch:",
|
||||
"items": [
|
||||
"<strong>Authentifizierungsstatus</strong> — Anzeige mit <em>Aktiviert</em> / <em>Deaktiviert</em> / <em>Abgelehnt</em>.",
|
||||
"<strong>Passwort ändern</strong> — aktuelles Passwort + neues Passwort + Bestätigung.",
|
||||
"<strong>Zwei-Faktor-Authentifizierung aktivieren / deaktivieren</strong> — öffnet beim Aktivieren den Einrichtungsdialog mit QR-Code und fragt beim Deaktivieren nach dem aktuellen Passwort.",
|
||||
"<strong>Authentifizierung deaktivieren</strong> — destruktive Aktion, die beim nächsten Besuch erneut den Einrichtungsdialog <em>Dashboard schützen?</em> anzeigt."
|
||||
]
|
||||
},
|
||||
"ssl": {
|
||||
"heading": "SSL / HTTPS",
|
||||
"imageAlt": "SSL/HTTPS-Karte mit Status HTTP ohne SSL, erkanntem Proxmox-Hostzertifikat samt Zertifikatsinhaber, Aussteller und Ablaufdatum sowie Optionen für das Proxmox-Zertifikat oder ein eigenes Zertifikat",
|
||||
"imageCaption": "SSL/HTTPS-Karte bei deaktiviertem HTTPS. Monitor erkennt das Zertifikat auf dem Proxmox-Host und bietet dessen Verwendung mit einem Klick an. Für eigene Dateien an anderer Stelle gibt es <em>Eigenes Zertifikat verwenden</em>.",
|
||||
"intro": "Stellt das Dashboard über HTTPS ohne vorgeschalteten Reverse-Proxy bereit. Die Karte erkennt das von Proxmox verwendete Zertifikat unter <code>/etc/pve/local/</code> und zeigt Zertifikatsinhaber, Aussteller und Ablaufdatum zur Prüfung vor der Aktivierung. HTTPS lässt sich auf zwei Wegen aktivieren:",
|
||||
"items": [
|
||||
"<strong>Proxmox-Zertifikat verwenden</strong> — Monitor übernimmt das Hostzertifikat mit einem Klick. Geeignet, wenn PVE und Dashboard denselben DNS-Namen verwenden.",
|
||||
"<strong>Eigenes Zertifikat verwenden</strong> — absolute Pfade zum <code>.pem</code>-Zertifikat und privaten <code>.key</code>-Schlüssel einfügen. Sie werden vor dem Dienstneustart geprüft. Scheitert das Laden, wechselt das Dashboard automatisch zurück zu HTTP und bleibt erreichbar."
|
||||
],
|
||||
"enabledAlt": "SSL/HTTPS-Karte mit aktiviertem HTTPS, aktivem Zertifikat samt Pfaden zu pve-ssl.pem und pve-ssl.key sowie Schaltfläche HTTPS deaktivieren",
|
||||
"enabledCaption": "HTTPS aktiv — die Karte zeigt das verwendete Zertifikat, die Dateipfade und die Aktion <em>HTTPS deaktivieren</em>, die auf HTTP am selben Port zurückschaltet.",
|
||||
"acmeTitle": "ACME / Let's Encrypt über Proxmox",
|
||||
"acmeBody": "Wenn Let’s Encrypt auf Ihrem Proxmox-Knoten unter <em>Datacenter → Certificates → ACME</em> eingerichtet ist, verwendet das Dashboard mit <em>Proxmox-Zertifikat verwenden</em> dasselbe Zertifikat, das der Host den Browsern bereitstellt. Eine eigene ACME-Einrichtung für Monitor ist nicht nötig.",
|
||||
"walkthroughLink": "Die Anleitung <link>HTTPS für ProxMenux Monitor</link> beschreibt die automatische Erkennung des ACME-Zertifikats, die auf dem Datenträger gespeicherten Daten und die Verwendung eines eigenen <code>.pem</code> / <code>.key</code>-Paars."
|
||||
},
|
||||
"apiTokens": {
|
||||
"heading": "API-Zugriffstokens",
|
||||
"emptyAlt": "Leere Karte für API-Zugriffstokens mit Informationen zu API-Tokens und Schaltfläche Neues API-Token erzeugen",
|
||||
"emptyCaption": "API-Token-Karte nach einer Neuinstallation. Das Feld <em>Informationen zu API-Tokens</em> erklärt Gültigkeitsdauer, Verwendung und Einbindung in <code>Authorization: Bearer</code>-Header.",
|
||||
"intro": "Tokens mit einem Jahr Gültigkeit für automatisierte Integrationen: Homepage-Widgets, REST-Sensoren für Home Assistant, Grafana-Datensammler, n8n-Abläufe und eigene Skripte. Die Karte führt durch drei Zustände: leer → Formular → erzeugt.",
|
||||
"generateBody": "<strong>Token erzeugen.</strong> Klicken Sie auf <em>Neues API-Token erzeugen</em>. Geben Sie einen aussagekräftigen <em>Tokennamen</em> zur späteren Identifizierung und Ihr <em>Passwort</em> zur zusätzlichen Bestätigung ein. Bei aktiviertem 2FA wird auch der aktuelle TOTP-Code verlangt.",
|
||||
"generateAlt": "Formular zum Erzeugen eines API-Tokens mit Feldern für Tokenname und Passwort sowie Schaltflächen Token erzeugen und Abbrechen",
|
||||
"generateCaption": "Formular zum Erzeugen eines API-Tokens: Namen eingeben und mit Passwort sowie bei aktivem 2FA mit TOTP-Code bestätigen.",
|
||||
"saveBody": "<strong>Speichern Sie das Token sofort.</strong> Der vollständige Tokenwert wird nach dem Erzeugen <strong>nur einmal</strong> angezeigt. Die Karte weist mit einem orangefarbenen Hinweis und einer Kopierschaltfläche darauf hin. Später lässt sich der Wert nicht abrufen; die Liste aktiver Tokens zeigt nur das Präfix.",
|
||||
"generatedAlt": "Erzeugtes API-Token mit maskiertem Wert, Kopierschaltfläche, Anleitung für den Header Authorization: Bearer und Liste aktiver Tokens samt Präfix",
|
||||
"generatedCaption": "Token erzeugt: Der Wert erscheint einmal mit Kopierschaltfläche und dem genauen Muster <code>Authorization: Bearer</code>. Darunter zeigt die Liste aktiver Tokens Name, Präfix und Erstellungsdatum, damit Sie einzelne Tokens widerrufen können.",
|
||||
"outro": "Jedes aktive Token hat eine Schaltfläche <em>Widerrufen</em>. Ein Widerruf macht das Token sofort ungültig; Integrationen mit diesem Token funktionieren dann nicht mehr. Anleitungen für Homepage, Home Assistant, n8n und Prometheus finden Sie unter <link>Integrationen</link>."
|
||||
},
|
||||
"gateway": {
|
||||
"heading": "Secure Gateway",
|
||||
"cardAlt": "Secure-Gateway-Karte vor der ersten Bereitstellung mit der Schaltfläche Secure Gateway bereitstellen",
|
||||
"cardCaption": "Secure-Gateway-Karte nach der Ersteinrichtung: Ein Klick startet den Assistenten.",
|
||||
"intro": "Greifen Sie von überall in Ihrem <a>Tailscale</a>-Tailnet auf Dashboard, Proxmox-Weboberfläche und Gäste zu, ohne Ports im Internet freizugeben. Monitor stellt auf dem Host einen Alpine-LXC-Container mit <code>tailscaled</code> als Subnetz-Router bereit. Nach der Freigabe in der Tailscale-Administrationskonsole erreichen entfernte Geräte die LAN-IP des Hosts.",
|
||||
"wizardTitle": "Schritt-für-Schritt-Assistent",
|
||||
"wizardIntro": "Erzeugen Sie vor dem Klick auf <em>Deploy Secure Gateway</em> einen Authentifizierungsschlüssel in der Tailscale-Konsole. Der Assistent fragt ihn in Schritt 2 ab.",
|
||||
"step0Title": "0. Tailscale-Authentifizierungsschlüssel erzeugen",
|
||||
"step0Body": "Melden Sie sich bei <a>login.tailscale.com/admin/settings/keys</a> an und klicken Sie auf <em>Generate auth key…</em>. Wählen Sie einen <em>vorab authentifizierten</em> Schlüssel, damit keine interaktive Tailscale-Anmeldung nötig ist. Kopieren Sie den Wert; er wird nur einmal angezeigt.",
|
||||
"step0Alt": "Seite Settings → Keys der Tailscale-Administrationskonsole mit hervorgehobener Schaltfläche Generate auth key",
|
||||
"step0Caption": "Tailscale-Admin-Konsole — <em>Settings → Keys → Auth Key generieren...</em>. Verwenden Sie ein kostenloses Tailscale-Konto, wenn Sie noch keins haben (Link innerhalb des Assistenten).",
|
||||
"step1Title": "1. Assistenten öffnen",
|
||||
"step1Body": "Klicken Sie auf der Registerkarte Sicherheit auf <em>Deploy Secure Gateway</em>. Der erste Schritt erläutert Funktionen und Voraussetzungen.",
|
||||
"step1Alt": "Einführung des Secure-Gateway-Assistenten: VPN-Zugriff ohne Portweiterleitung und mit Ende-zu-Ende-Verschlüsselung",
|
||||
"step1Caption": "Schritt 1 - Überblick über das, was das Secure Gateway bietet und eine Erinnerung daran, dass Sie ein kostenloses Tailscale-Konto benötigen.",
|
||||
"step2Title": "2. Tailscale-Authentifizierung",
|
||||
"step2Body": "Fügen Sie den Authentifizierungsschlüssel aus Schritt 0 ein und wählen Sie einen Hostnamen. Unter diesem Namen erscheint das Gateway in der Tailscale-Konsole, üblicherweise <code>proxmox-gateway</code> oder der Knotenname.",
|
||||
"step2Alt": "Schritt des Secure-Gateway-Assistenten mit Feldern für Tailscale-Authentifizierungsschlüssel und Gerätehostname sowie Link zum Erzeugen des Schlüssels",
|
||||
"step2Caption": "Schritt 2: Vorab authentifizierten Schlüssel einfügen und Gerätehostnamen wählen. Falls Sie Schritt 0 übersprungen haben, öffnet der Link unter dem Feld die entsprechende Tailscale-Seite.",
|
||||
"step3Title": "3. Zugangsbereich",
|
||||
"step3Intro": "Wählen Sie, was Ihr Tailnet durch das Gateway erreichen kann:",
|
||||
"step3Items": [
|
||||
"<strong>Proxmox Only</strong> — nur die Proxmox-Benutzeroberfläche und der Monitor. kleinste Angriffsfläche.",
|
||||
"<strong>Full Local Network</strong> — das gesamte LAN-Subnetz (automatisch von der primären Schnittstelle des Hosts erkannt). Sie erreichen NAS, Drucker, VMs und jedes andere LAN-Gerät.",
|
||||
"<strong>Eigene Subnetze</strong> — bestimmte CIDR-Netze angeben. Für Umgebungen mit mehreren VLANs, in denen nur ausgewählte Segmente erreichbar sein sollen."
|
||||
],
|
||||
"step3Alt": "Schritt Zugriffsbereich des Secure-Gateway-Assistenten mit den Optionen Nur Proxmox, Gesamtes lokales Netzwerk und Eigene Subnetze",
|
||||
"step3Caption": "Schritt 3: Zugriffsbereich wählen. <em>Gesamtes lokales Netzwerk</em> übernimmt automatisch das erkannte LAN-Subnetz.",
|
||||
"step4Title": "4. Erweiterte Optionen (optional)",
|
||||
"step4Intro": "Zwei optionale Schalter, beide <strong>standardmäßig deaktiviert</strong>:",
|
||||
"step4Items": [
|
||||
"<strong>Exit Node</strong> — nach Aktivierung und Auswahl auf einem entfernten Gerät wird dessen gesamter Internetverkehr über den WAN-Anschluss des Proxmox-Hosts geleitet. Auf Reisen erscheint der Datenverkehr des Telefons so mit der heimischen Internetverbindung.",
|
||||
"<strong>Routen akzeptieren</strong> — dieses Gateway erreicht Netze, die von <em>anderen</em> Subnetz-Routern im Tailnet angekündigt werden, etwa bei mehreren Standorten."
|
||||
],
|
||||
"step4Alt": "Schritt Erweiterte Optionen im Secure-Gateway-Assistenten mit den Kontrollkästchen Exit Node und Accept Routes",
|
||||
"step4Caption": "Schritt 4: Exit Node und Accept Routes. Lassen Sie beide deaktiviert, wenn Sie nur vom Telefon oder Laptop auf das Dashboard zugreifen möchten.",
|
||||
"step5Title": "5. Prüfen und bereitstellen",
|
||||
"step5Body": "Letzte Zusammenfassung vor der Bereitstellung. Der Assistent erinnert an einen anschließenden manuellen Schritt in der Tailscale-Konsole: <strong>die Subnetzroute genehmigen</strong>.",
|
||||
"step5Alt": "Schritt Prüfen und bereitstellen im Secure-Gateway-Assistenten mit Zusammenfassung von Hostname, Zugriffsmodus, Netzen, Exit Node und Accept Routes sowie Schaltfläche Gateway bereitstellen",
|
||||
"step5Caption": "Schritt 5 — Überprüfen Sie die Konfiguration und Bereitstellung. Der blaue Hinweis unten markiert die ausstehende Routengenehmigung.",
|
||||
"approvalTitle": "Ein letzter manueller Schritt im Tailscale-Admin",
|
||||
"approvalBody": "Öffnen Sie nach der Bereitstellung <a>login.tailscale.com/admin/machines</a> und genehmigen Sie die vom Gateway angekündigte Subnetzroute. Erst dann können entfernte Geräte im Tailnet über das Gateway auf LAN-IPs zugreifen. Tailscale markiert ausstehende Routen mit einer gelben Warnung in der Gerätezeile. Klicken Sie auf <em>Edit route settings</em> und aktivieren Sie die Route."
|
||||
},
|
||||
"pve": {
|
||||
"heading": "Proxmox VE",
|
||||
"intro": "Die Schutzfunktionen des Hosts: Firewall, Angriffserkennung und Sicherheitsprüfung. Die Karten für Fail2Ban und Lynis bieten bei Bedarf die Installation an und zeigen danach die Verwaltungsfunktionen."
|
||||
},
|
||||
"firewall": {
|
||||
"heading": "Proxmox Firewall",
|
||||
"imageAlt": "Proxmox-Firewall-Karte mit Cluster- und Hoststatus, Schnellzugriffsregeln für Monitor und die Proxmox-Weboberfläche, Zählern, Regelliste und Schaltfläche Regel hinzufügen",
|
||||
"imageCaption": "Proxmox-Firewall-Karte: Schalter für Cluster und Host, häufige Ports unter <em>Schnellzugriffsregeln</em>, Zähler unter <em>Regelübersicht</em> und vollständige Liste mit <em>+ Regel hinzufügen</em>.",
|
||||
"intro": "Die Karte verwaltet die Firewall-Konfiguration von Proxmox VE. Das klassische Backend verwendet <code>iptables</code>, das alternative <code>nftables</code>. Beliebige außerhalb von Proxmox erstellte Regeln werden nicht verwaltet. Drei Bereiche:",
|
||||
"items": [
|
||||
"<strong>Cluster-Firewall + Host-Firewall</strong> — globale Schalter. Die Cluster-Firewall muss aktiv sein, damit die Hostregeln greifen. Die Karte zeigt diese Abhängigkeit direkt an der Einstellung.",
|
||||
"<strong>Schnellzugriffsregeln</strong> — vorbereitete Zeilen für <code>8008/TCP</code> (Monitor) und <code>8006/TCP</code> (Proxmox-Weboberfläche) mit Status erlaubt, gesperrt oder ungeschützt. Die Proxmox-Oberfläche wird über ein <em>integriertes</em> Firewall-Makro erlaubt, das sich nicht versehentlich löschen lässt.",
|
||||
"<strong>Regelübersicht</strong> — Zähler für alle Regeln, accept-Regeln, drop/reject-Regeln und verschiedene geschützte Ports. Die Werte stammen aus <code>/etc/pve/firewall/cluster.fw</code> und <code>/etc/pve/nodes/<node>/host.fw</code>.",
|
||||
"<strong>Firewall-Regeln</strong> — Liste mit Aktion, Protokoll, Port, Quelle und Ebene. <em>+ Regel hinzufügen</em> öffnet den Editor in der Karte, das Papierkorbsymbol löscht die jeweilige Regel. Änderungen werden in den Proxmox-Dateien gespeichert und erscheinen auch in dessen Oberfläche (Datacenter / Node → Firewall)."
|
||||
]
|
||||
},
|
||||
"fail2ban": {
|
||||
"heading": "Fail2Ban",
|
||||
"subHeading": "(abhängig vom Status)",
|
||||
"whatIs": "<strong>Was ist das?</strong> Fail2Ban ist ein quelloffener Dienst, der wiederholte fehlgeschlagene Anmeldungen in Protokollen erkennt und die IP-Adresse per Firewall sperrt. Er schützt SSH und Webanmeldungen vor fortlaufenden Brute-Force-Angriffen. ProxMenux richtet drei Jails ein: SSH, Proxmox-Webanmeldung (Port 8006) und ProxMenux-Monitor-Anmeldung (Port 8008).",
|
||||
"notBundled": "Fail2Ban ist <strong>nicht im Lieferumfang enthalten</strong>. Die Karte passt sich daran an, ob es installiert ist: Fehlt es, lässt es sich mit einem Klick installieren. Danach zeigt sie den aktuellen Jail-Status und gesperrte IP-Adressen und ermöglicht es, die Anzahl der Versuche sowie die Sperrdauer pro Jail anzupassen.",
|
||||
"notInstalledAlt": "Fail2Ban-Karte im Zustand Nicht installiert mit Beschreibung des Schutzes für SSH, Proxmox-Weboberfläche und Monitor über nftables sowie Schaltfläche Fail2Ban installieren und konfigurieren",
|
||||
"notInstalledCaption": "Fail2Ban-Karte vor der Installation - die blaue Box zeigt an, was die Installation konfigurieren würde.",
|
||||
"clickBody": "Klicken Sie auf <em>Fail2Ban installieren und konfigurieren</em>. Ein Bestätigungsdialog listet alle Änderungen auf, die das Skript am Host vornehmen wird:",
|
||||
"confirmAlt": "Fail2Ban-Bestätigung mit aggressivem SSH-Modus, Schutz für Proxmox auf Port 8006 und Monitor auf Port 8008, nftables-Erkennung, journald-Protokollanpassung und SSH-Härtung über MaxAuthTries",
|
||||
"confirmCaption": "Installationsbestätigung: Jail-Liste, angepasste journald-Protokollstufe zum Lesen von SSH-Ereignissen und zusätzliche SSH-Härtung (<code>MaxAuthTries=3</code>).",
|
||||
"confirmIntro": "Nach der Bestätigung zeigt ein Panel die Installation live an: apt, Jail-Konfiguration und Prüfungen. Es verwendet denselben Mechanismus wie der ProxMenux-CLI-Installer.",
|
||||
"progressAlt": "Panel mit Fail2Ban-Installationsprotokoll: Paket, journald MaxLevelStore für Anmeldungen, Jails, nftables-Erkennung, MaxAuthTries-Härtung, Kommunikationstest mit fail2ban-client und Abschlussmeldung",
|
||||
"progressCaption": "Installation läuft: Jeder Schritt wird im Panel protokolliert. Connection closed am Ende kennzeichnet das Ende der Übertragung.",
|
||||
"afterInstall": "Nach der Installation zeigt die Karte den aktuellen Status: konfigurierte Jails, gesperrte IPs und jüngste Sperrereignisse. Die Registerkarten trennen <em>Jails und gesperrte IPs</em> von <em>Letzte Aktivitäten</em> mit den letzten N Fail2Ban-Protokolleinträgen.",
|
||||
"activeAlt": "Aktive Fail2Ban-Karte mit drei Jails (proxmenux, proxmox, sshd), Zählern für gesperrte IPs, alle Sperren und fehlgeschlagene Versuche sowie Zeilen mit Versuchen, Sperrdauer, Zeitraum und Zahnradsymbol",
|
||||
"activeCaption": "Fail2Ban aktiv: die drei Standard-Jails (<code>proxmenux</code>, <code>proxmox</code>, <code>sshd</code>) mit Einstellungen für Versuche, Sperrdauer und Erkennungszeitraum.",
|
||||
"tuneBody": "<strong>Jail-Regeln anpassen.</strong> Über das Zahnradsymbol ändern Sie <em>Max Retries</em>, <em>Ban Time</em> und <em>Find Time</em>, den gleitenden Zeitraum zum Zählen der Versuche. Eine dauerhafte Sperre bleibt bis zur manuellen Aufhebung bestehen. Das Formular erklärt übliche Werte.",
|
||||
"configAlt": "Konfigurationsformular für das Jail sshd mit Max Retries, Ban Time in Sekunden, Permanent Ban, Find Time, Hinweisen zu üblichen Werten und Schaltfläche Konfiguration speichern",
|
||||
"configCaption": "Jail sshd bearbeiten: Wählen Sie einen niedrigeren Wert für <em>Max Retries</em>, wenn SSH nur aus Ihrem Subnetz genutzt wird, oder verlängern Sie <em>Ban Time</em> für ein öffentlich erreichbares Dashboard.",
|
||||
"outro": "Die Anleitung <em>Installation, Konfiguration und Deinstallation</em> behandelt auch die manuelle Installation, die Änderung von SSH MaxAuthTries und das Protokoll <code>proxmenux-auth.log</code>. Sie finden sie unter <link>ProxMenux → Sicherheit → Fail2Ban</link>.",
|
||||
"calloutTitle": "Ohne Fail2Ban sperrt dieser Mechanismus keine IPs",
|
||||
"calloutBody": "ProxMenux Monitor prüft die von Fail2Ban gesperrten IPs auf <em>Anwendungsebene</em>, bevor Flask-Anfragen verarbeitet werden. Es fragt fail2ban-client ab und speichert das Ergebnis 30 Sekunden zwischen; eine SQL-Sperrtabelle wird nicht gelesen. Ohne Fail2Ban werden fehlgeschlagene Anmeldungen in <code>proxmenux-auth.log</code> protokolliert, dieser Mechanismus sperrt dann aber keine IPs."
|
||||
},
|
||||
"lynis": {
|
||||
"heading": "Lynis-Sicherheitsprüfung",
|
||||
"subHeading": "(abhängig vom Status)",
|
||||
"whatIs": "<strong>Was ist das?</strong> Lynis ist ein quelloffenes Sicherheitsprüfwerkzeug mit rund 280 Hostprüfungen, etwa zu Dateirechten, Kernel-Härtung, SSH, Paketschwachstellen, Kryptografie, geplanten Aufgaben und Dienstkennungen. Es liefert einen Härtungsindex von 0 bis 100, Warnungen und Vorschläge. Es dient als verbreitete Ausgangsbasis zur Bewertung von Debian-Servern.",
|
||||
"whyUseful": "<strong>Warum ist es nützlich?</strong> Die Sicherheit anhand einzelner Konfigurationsdateien zu bewerten ist schwierig. Lynis erkennt häufig übersehene Punkte: fehlende Kernel-Schutzoptionen, schwache SSH-Verfahren, nicht dauerhafte Protokolle oder <code>NOPASSWD</code> in sudoers für Standardkonten. Ein erneuter Lauf nach ProxMenux-Anpassungen macht die Veränderung als Punktwert vergleichbar.",
|
||||
"notInstalledAlt": "Lynis-Karte im Zustand Nicht installiert mit Schaltfläche Lynis installieren und Funktionen: Härtungsindex, Schwachstellenerkennung, Konformitätsprüfung und GitHub-Quellcode",
|
||||
"notInstalledCaption": "Lynis-Karte vor der Installation - die blaue Box fasst zusammen, was das Tool tut.",
|
||||
"notBundled": "Lynis ist ebenfalls <strong>nicht enthalten</strong>. ProxMenux installiert es direkt aus dem offiziellen GitHub-Quellcode statt aus dem Debian-Paket.",
|
||||
"confirmAlt": "Bestätigungsdialog für Lynis mit seinen Funktionen: Härtungsindex, Schwachstellenerkennung, Konfigurationsanalyse, Konformitätsprüfung und Bezug aus dem offiziellen GitHub-Repository",
|
||||
"confirmCaption": "Installationsbestätigung mit ausdrücklichem Hinweis auf die GitHub-Quelle.",
|
||||
"progressAlt": "Live-Installationspanel für Lynis mit Installation der aktuellen Version, Bestätigung von Version 3.1.6 und Abschlussmeldung",
|
||||
"progressCaption": "Installation läuft: Das Panel zeigt den Verlauf wie bei Fail2Ban live an.",
|
||||
"afterInstall": "Nach der Installation zeigt die Karte die Version und einen leeren Prüfverlauf. Klicken Sie auf <em>Sicherheitsprüfung starten</em>, um den ersten Scan auszuführen.",
|
||||
"installedAlt": "Lynis-Karte nach der Installation mit Versionsanzeige 3.1.6, Zeitpunkt der letzten Prüfung, Härtungsindex 0, Warnungen 0, Vorschläge 0, leerem Bericht und Schaltfläche Sicherheitsprüfung starten",
|
||||
"installedCaption": "Lynis ist installiert, es gibt noch keine Prüfung. Die Kennzahlen zeigen zunächst null.",
|
||||
"runningAlt": "Lynis-Karte während der Prüfung mit Fortschrittsmeldung, geschätzter Dauer von 2 bis 5 Minuten und deaktivierter Schaltfläche Prüfung läuft",
|
||||
"runningCaption": "Prüfung läuft: Die Schaltfläche zeigt eine Ladeanimation und die Karte weist auf eine Dauer von 2 bis 5 Minuten hin.",
|
||||
"finishedBody": "Nach Abschluss zeigt die Karte die Ergebnisse: Härtungsindex, Warnungen, Vorschläge und die Liste <em>Prüfberichte</em> mit früheren Scans.",
|
||||
"resultsAlt": "Lynis-Karte mit Index 71, Aufschlüsselung Lynis 66 und PVE 71, 3 Warnungen, 40 Vorschlägen, für Proxmox angepasstem Wert 71 von 100 im Bereich Gut, Berichten mit PDF-Download und Schaltfläche Sicherheitsprüfung starten",
|
||||
"resultsCaption": "Beispielergebnis: Härtungsindex <strong>71/100 (Gut)</strong>. Die Karte zeigt den Lynis-Rohwert (66) und den für Proxmox angepassten Wert (71). Die Anpassung hängt vom Rohwert und vom Anteil der als erwartetes Proxmox-VE-Verhalten eingestuften Befunde ab; es werden keine festen 11 Punkte addiert.",
|
||||
"scoreTitle": "Lynis-Rohwert und an Proxmox angepasster Wert",
|
||||
"scoreIntro": "Lynis-Regeln sind auf allgemeine Debian-Systeme ausgelegt. Proxmox weicht aus berechtigten Gründen teilweise davon ab, etwa durch Cluster-Dienste als root oder eigene <code>journald</code>-Einstellungen. Die Karte zeigt beide Werte, damit Sie:",
|
||||
"scoreItems": [
|
||||
"Ihren <em>Lynis-Rohwert</em> wie externe Prüfer verfolgen.",
|
||||
"Den <em>für Proxmox angepassten</em> Wert verfolgen, eine passendere Vergleichsbasis für Knoten desselben Clusters."
|
||||
],
|
||||
"reportBody": "<strong>Vollständiger Bericht.</strong> Die Schaltfläche <em>PDF</em> jeder Prüfung lädt einen mehrseitigen Bericht herunter: Zusammenfassung, Systeminformationen, Sicherheitslage, erläuterte Warnungen, nach Auswirkung geordnete Vorschläge und Paketinventar. Er eignet sich als Anhang für eine Sicherheitsprüfung.",
|
||||
"reportAlt": "Beispiel der ersten PDF-Berichtsseite mit Zusammenfassung, Index 71 von 100, Anzahl der Warnungen und Vorschläge, Hostname, Kernel, Lynis-Version, Datum und Übersicht der Sicherheitslage",
|
||||
"reportCaption": "Erste Seite des Berichts mit Zusammenfassung, Systeminformationen und Sicherheitslage. Es folgen ausführliche Warnungen, Vorschläge und die Liste installierter Pakete. Ein <a>Beispiel-PDF</a> ist als Referenz beigefügt.",
|
||||
"runPeriodically": "Führen Sie das Audit regelmäßig durch (nach größeren Proxmox-Upgrades, nach der Anwendung von Nachinstallationsoptimierungen, bevor Sie einen Fernzugriffspfad öffnen) und bewahren Sie die Berichte auf - der Trend ist wichtiger als jede einzelne Zahl.",
|
||||
"outro": "Die Anleitung zu <em>Installation, Konfiguration und Deinstallation</em> sowie die Erläuterung eines Beispielberichts finden Sie unter <link>ProxMenux → Sicherheit → Lynis</link>."
|
||||
},
|
||||
"dataCollected": {
|
||||
"heading": "Wie die Daten gesammelt werden",
|
||||
"headerCard": "Karte",
|
||||
"headerEndpoint": "Endpunkt",
|
||||
"headerSource": "Quelle",
|
||||
"rows": [
|
||||
{
|
||||
"card": "Authentifizierung, 2FA, Passwortänderung",
|
||||
"endpoint": "/api/auth/*",
|
||||
"source": "Lokale Authentifizierungskonfiguration in ~/.config/proxmenux-monitor/auth.json; JWTs werden von Monitor ausgestellt."
|
||||
},
|
||||
{
|
||||
"card": "SSL / HTTPS",
|
||||
"endpoint": "/api/auth/ssl/*",
|
||||
"source": "<code>openssl x509</code> auf <code>/etc/pve/local/pve-ssl.pem</code> + <code>/etc/proxmenux/ssl_config.json</code>."
|
||||
},
|
||||
{
|
||||
"card": "API-Tokens auflisten, erzeugen und widerrufen",
|
||||
"endpoint": "/api/auth/api-tokens",
|
||||
"source": "Token-Zeilen lokal gehalten; nichts verlässt den Host."
|
||||
},
|
||||
{
|
||||
"card": "Secure Gateway (Bereitstellung + Status)",
|
||||
"endpoint": "/api/oci/*",
|
||||
"source": "Erstellt einen Alpine-LXC-Container mit <code>tailscaled</code> über <code>pct create</code> / <code>pct exec</code>."
|
||||
},
|
||||
{
|
||||
"card": "Firewall Status & Regeln",
|
||||
"endpoint": "/api/security/firewall/*",
|
||||
"source": "<code>pve-firewall</code> + <code>/etc/pve/firewall/<cluster|host>.fw</code>."
|
||||
},
|
||||
{
|
||||
"card": "Fail2Ban (nur wenn installiert)",
|
||||
"endpoint": "/api/security/fail2ban/*",
|
||||
"source": "<code>fail2ban-client status</code>, <code>/var/log/fail2ban.log</code>, <code>/etc/fail2ban/jail.local</code>."
|
||||
},
|
||||
{
|
||||
"card": "Lynis Audit (nur wenn installiert)",
|
||||
"endpoint": "/api/security/lynis/*",
|
||||
"source": "Führt <code>lynis audit system</code> im Hintergrund aus und liest den Bericht aus <code>/var/log/lynis-report.dat</code>."
|
||||
}
|
||||
]
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Wohin als nächstes",
|
||||
"items": [
|
||||
{
|
||||
"label": "Zugriff und Authentifizierung",
|
||||
"href": "/docs/monitor/access-auth",
|
||||
"tail": " — vollständige Ersteinrichtung, Auswahl einer 2FA-App, Wiederherstellung bei verlorenem Authenticator und Reverse-Proxy-Beispiele."
|
||||
},
|
||||
{
|
||||
"label": "Integrationen",
|
||||
"href": "/docs/monitor/integrations",
|
||||
"tail": " — Anleitungen für API-Tokens mit Homepage, Home Assistant, Prometheus und n8n sowie die vollständige Secure-Gateway-Einrichtung."
|
||||
},
|
||||
{
|
||||
"label": "API-Referenz",
|
||||
"href": "/docs/monitor/api",
|
||||
"tailRich": " — alle Endpunkte unter <code>/api/auth</code>, <code>/api/security</code> und <code>/api/oci</code> mit Methode, Anfrageinhalt und curl-Beispielen."
|
||||
},
|
||||
{
|
||||
"label": "ProxMenux → Sicherheit → Fail2Ban",
|
||||
"href": "/docs/security/fail2ban",
|
||||
"tail": " — Installationsanleitung, eingerichtete Jails und manuelle Installation."
|
||||
},
|
||||
{
|
||||
"label": "ProxMenux → Sicherheit → Lynis",
|
||||
"href": "/docs/security/lynis",
|
||||
"tail": " — Beispielbericht, Einordnung des Ergebnisses und Zeitpunkt für eine erneute Prüfung."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,367 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Monitor — Dashboard: Registerkarte Einstellungen | ProxMenux-Dokumentation",
|
||||
"description": "Die Registerkarte Einstellungen verwaltet Sprache, Navigationsreihenfolge, Dashboard-Präferenzen, Überwachungsschwellen und Ausschlüsse, Benachrichtigungen, KI und das Inventar der Nachinstallationsoptimierungen."
|
||||
},
|
||||
"header": {
|
||||
"title": "Dashboard: Tab Einstellungen",
|
||||
"description": "Monitor-Sprache, Navigationsreihenfolge, Dashboard-Präferenzen, Überwachungsausschlüsse, Benachrichtigungen, KI-Konfiguration und aktuelles ProxMenux-Optimierungsinventar.",
|
||||
"section": "ProxMenux Monitor · Übersicht"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Wo jede Einstellung gespeichert wird",
|
||||
"body": "Einstellungen bündelt Dashboard-Darstellung, Health-Monitor-Überwachung, Alarmversand und bereits von ProxMenux vorgenommene Hoständerungen. Karten mit ausführlicher Dokumentation verlinken darauf; hier finden Sie den Einstieg."
|
||||
},
|
||||
"interfaceLanguage": {
|
||||
"heading": "Schnittstellensprache",
|
||||
"intro": "Wählen Sie die Sprache der <strong>Weboberfläche des Monitors</strong>. Die Änderung gilt sofort, ohne Dienstneustart und ohne die Sprache der ProxMenux-Shellmenüs zu ändern.",
|
||||
"items": [
|
||||
"ProxMenux Monitor bietet derzeit Englisch, Deutsch, Spanisch, Französisch, Italienisch, Portugiesisch, Slowakisch und Schwedisch an.",
|
||||
"Beim ersten Besuch wird die Browsersprache verwendet, sofern unterstützt; andernfalls Englisch.",
|
||||
"Die Auswahl ändert die Seitensprache und synchronisiert weitere offene Registerkarten desselben Browserprofils.",
|
||||
"Fehlt eine Übersetzung, erscheint nur dieser Text auf Englisch statt als fehlerhafter Schlüssel oder Platzhalter."
|
||||
],
|
||||
"scopeTitle": "Lokale Browsereinstellung",
|
||||
"scopeBody": "Die Auswahl liegt in <code>localStorage</code> unter <code>proxmenux-ui-language</code>. Sie gilt für das aktuelle Browserprofil und Gerät, nicht für den ganzen Knoten. Jeder Benutzer kann seine Sprache wählen."
|
||||
},
|
||||
"navigationOrder": {
|
||||
"heading": "Navigationsreihenfolge",
|
||||
"intro": "Ordnen Sie die sieben Haupteinträge: <strong>Übersicht, Apps, VMs & LXCs, Knoten, Sicherung, Terminal und Verwaltung</strong>. Klicken Sie auf <strong>Bearbeiten</strong>, ziehen Sie die Zeilen und speichern Sie.",
|
||||
"items": [
|
||||
"Mit der Maus beginnt das Ziehen beim Drücken. Auf Touchscreens ist ein 250-ms-Langdruck nötig, um es vom Scrollen zu unterscheiden.",
|
||||
"Die Gruppen <strong>Knoten</strong> und <strong>Verwaltung</strong> werden als Ganzes verschoben; ihre Unterseiten behalten die festgelegte Reihenfolge.",
|
||||
"Das Mobilmenü verwendet dieselbe gespeicherte Reihenfolge.",
|
||||
"<strong>Standard wiederherstellen</strong> setzt den bearbeiteten Reihenfolgeentwurf zurück. Speichern übernimmt die Änderung.",
|
||||
"Neue Hauptregisterkarten künftiger Versionen werden an die eigene Reihenfolge angehängt; Ihre Anordnung bleibt erhalten."
|
||||
],
|
||||
"landingTitle": "Der erste Eintrag ist die Startansicht",
|
||||
"landingBody": "Monitor öffnet den ersten gespeicherten Eintrag. Bei <strong>Knoten</strong> ist das Speicher, bei <strong>Verwaltung</strong> Systemprotokolle. Die Reihenfolge liegt in diesem Browser unter <code>proxmenux-nav-order</code>; jedes Gerät kann eine eigene Anordnung verwenden."
|
||||
},
|
||||
"networkUnits": {
|
||||
"heading": "Netzwerkeinheiten",
|
||||
"imageAlt": "Karte Netzwerkeinheiten mit der Anzeigeauswahl Bytes",
|
||||
"imageCaption": "Wählen Sie zwischen Bits pro Sekunde und Bytes pro Sekunde für jede im Dashboard angezeigte Netzwerkrate.",
|
||||
"body": "Zeigt den Netzwerkdurchsatz in <strong>Bits pro Sekunde</strong> (Mbps/Gbps) oder <strong>Bytes pro Sekunde</strong> (MB/s/GB/s). Standard sind Bits wie bei Netzwerkkarten und Internetanbietern; Dateiübertragungen verwenden oft Bytes. Diagramme, Labels und Hinweise ändern sich sofort ohne Neuladen."
|
||||
},
|
||||
"health": {
|
||||
"heading": "Gesundheitsmonitor",
|
||||
"intro": "Die Karte legt die <strong>Unterdrückungsdauer</strong> fest: wie lange die Prüfung wartet, bevor eine verworfene Warnung erneut erscheinen darf. CPU, Speicher, Datenspeicher, Laufwerke, Netzwerk, VMs, PVE-Dienste, Protokolle, Updates und Sicherheit haben jeweils eine Auswahl:",
|
||||
"items": [
|
||||
"<strong>24 h</strong> — Standard für die meisten transienten Kategorien.",
|
||||
"<strong>72 h</strong> — für Ereignisse, die Sie einige Tage stummschalten möchten.",
|
||||
"<strong>168 h</strong> (1 Woche) und <strong>720 h</strong> (1 Monat) — regelmäßige Kontrollen.",
|
||||
"<strong>8760 h</strong> (1 Jahr) — Unterdrückung für einen langen Zeitraum.",
|
||||
"<strong>-1</strong> — permanente Stille, bis Sie es manuell wieder aktivieren.",
|
||||
"<strong>Eigene Stundenanzahl</strong> — eine ganze Zahl für einen Zwischenwert."
|
||||
],
|
||||
"imageAlt": "Einstellungen, Health-Monitor-Karte mit Dauer je Kategorie und aktiven Unterdrückungen",
|
||||
"imageCaption": "Die Auswahllisten bestimmen die Dauer künftiger Unterdrückungen. Der Bereich darunter zeigt stummgeschaltete Warnungen und ermöglicht ihre Reaktivierung.",
|
||||
"editTitle": "Bearbeitungsmodus",
|
||||
"editBody": "Die Karte ist zunächst schreibgeschützt. <strong>Bearbeiten</strong> oben rechts aktiviert Auswahllisten und Reaktivierungsschaltflächen. <strong>Speichern</strong> übernimmt geänderte Dauern und vorgemerkte Reaktivierungen gemeinsam; <strong>Abbrechen</strong> verwirft sie. Speichern wird erst bei Änderungen aktiv.",
|
||||
"activeTitle": "Aktive Unterdrückungen",
|
||||
"activeIntro": "Unter den Dauerangaben listet <strong>Aktive Unterdrückungen</strong> zeitlich begrenzte —24 Stunden, 7 Tage oder eigener Zeitraum— und <em>dauerhafte</em> Unterdrückungen auf. Jede Zeile zeigt:",
|
||||
"activeItems": [
|
||||
"Ein farbiges Abzeichen: <strong>Dauerhaft</strong> in Orange oder eine Restzeit wie <strong>noch 24 h</strong> / <strong>noch 7 Tage</strong> in Blau.",
|
||||
"Die Warnungskennung in lesbarer Form (z. B. <code>pve_storage_full_PBS-Cloud</code> → <em>PVE-Speicher voll: PBS-Cloud</em>).",
|
||||
"Kategorie, Schweregrad und Zeitpunkt, zu dem die Warnung verworfen wurde.",
|
||||
"Eine Schaltfläche <strong>Reaktivieren</strong> im Bearbeitungsmodus merkt die Aufhebung der Unterdrückung beim Speichern vor."
|
||||
],
|
||||
"activeReenableTitle": "Warnung reaktivieren",
|
||||
"activeReenableBody": "<strong>Reaktivieren</strong> markiert die Zeile beim Bearbeiten grün und streicht die Kennung durch; noch ist nichts übernommen. Erneuter Klick bedeutet <strong>Rückgängig</strong>. <strong>Speichern</strong> sendet je Reaktivierung parallel <code>POST /api/health/un-acknowledge</code> und entfernt die Zeilen. Besteht das Problem weiter und unterstützt die Kategorie erneute Meldungen, erscheint es beim nächsten Scan wieder unter Aktiv.",
|
||||
"activePermanentNote": "Dauerhafte Unterdrückungen über <em>Dauerhaft</em> oder den Standardwert <code>-1</code> <strong>werden nur hier aufgehoben</strong>. Der allgemeine Dialog bietet dafür keinen Knopf; dieser Bereich vereint Übersicht und Reaktivierung.",
|
||||
"activeAutoRefreshTitle": "Automatische Aktualisierung",
|
||||
"activeAutoRefreshBody": "Die Liste aktualisiert sich beim Verwerfen oder Reaktivieren einer Warnung im Health Monitor, bei erneutem Tabfokus und bei Sichtbarkeitswechseln. Ein Neuladen ist nicht nötig.",
|
||||
"calloutTitle": "Details auf der Health-Monitor-Seite",
|
||||
"calloutBody": "Eskalation, automatische Auflösung bei verschwundenen Geräten und der Unterschied zwischen Verwerfen und Beheben stehen unter <link>Health Monitor → Warnungen verwerfen und Unterdrückungsdauer</link>. Diese Karte bietet die Auswahllisten und aktiven Unterdrückungen."
|
||||
},
|
||||
"thresholds": {
|
||||
"heading": "Health-Monitor-Schwellenwerte",
|
||||
"intro": "Die vorige Karte regelt <em>die Ruhezeit nach einer Unterdrückung</em>; diese bestimmt <strong>den Auslösewert einer Warnung</strong>. Die meisten Schwellenprüfungen bieten anpassbare Werte für <strong>Warnung</strong> und <strong>Kritisch</strong>. Die Tabelle erklärt Ausnahmen wie die kombinierte Swap-Regel und den aktuellen RAM-Detektor.",
|
||||
"whatForTitle": "Wozu es dient",
|
||||
"whatForIntro": "Die Standardwerte sind ein Ausgangspunkt, aber jede Umgebung hat eigene Betriebsbedingungen:",
|
||||
"whatForItems": [
|
||||
"Ein Homelab mit einer SSD kann früher bei 75/90 % Belegung warnen, um Platz für Snapshots zu lassen.",
|
||||
"Speicherschwellen sollten Messwerte und Last des Hosts berücksichtigen. Ceph-Redundanz allein rechtfertigt keine lockereren Warnungen; hohe ZFS-ARC-Nutzung ist nicht mit nicht rückgewinnbarem Arbeitsspeicher gleichzusetzen.",
|
||||
"Wählen Sie Temperaturschwellen anhand der Laufwerksspezifikationen und tatsächlichen Bedingungen. Passive oder aktive Kühlung allein bestimmt keine allgemein niedrigere oder höhere sichere Grenze.",
|
||||
"Ein stark virtualisierter Host kann bei Builds CPU-Spitzen erreichen, ohne für jeden 80-%-Peak zu warnen; anhaltende Überlast muss weiter gemeldet werden."
|
||||
],
|
||||
"whatForOutro": "Unterstützte Änderungen gelten <strong>bei der nächsten Prüfung</strong>. Der Health Monitor liest <code>/usr/local/share/proxmenux/health_thresholds.json</code> in jedem Zyklus ohne Neustart. Einige Anzeigen wie die Datenträgertemperatur verwenden diese Werte; manche Kapazitätsbalken haben eigene Grenzen. Die RAM-Zeile beschreibt eine aktuelle Ausnahme.",
|
||||
"coloursTitle": "Statusfarben für Warnung und Kritisch",
|
||||
"coloursIntro": "Widgets mit dem konfigurierten Paar Warnung/Kritisch verwenden die drei folgenden Zustände. Andere Anzeigen, etwa PVE-Kapazitätsbalken, haben eigene Grenzen; ihre Farbe allein belegt keine Health-Monitor-Warnung.",
|
||||
"headerColour": "Farbe",
|
||||
"headerRange": "Bereich",
|
||||
"headerMeaning": "Bedeutung",
|
||||
"colourRows": [
|
||||
{
|
||||
"colour": "Grün",
|
||||
"range": "Wert < Warnung",
|
||||
"meaning": "Normaler Betriebsbereich. Keine Warnung wird erzeugt."
|
||||
},
|
||||
{
|
||||
"colour": "Orange",
|
||||
"range": "Warnung ≤ Wert < Kritisch",
|
||||
"meaning": "Warnzustand. Health Monitor erzeugt ein WARNING-Ereignis; Benachrichtigungen beachten Kanalfilter und Ruhezeiten."
|
||||
},
|
||||
{
|
||||
"colour": "rot",
|
||||
"range": "Wert ≥ kritisch",
|
||||
"meaning": "Kritischer Zustand. Health Monitor erzeugt ein CRITICAL-Ereignis, das Ruhezeiten umgeht. Kategorie- und Ereigniseinstellungen des Kanals gelten weiter; die Zustellung hängt auch von seiner Verfügbarkeit ab."
|
||||
}
|
||||
],
|
||||
"sectionsTitle": "Abschnitte und empfohlene Standardwerte",
|
||||
"sectionsIntro": "Dies sind die ProxMenux-Standardwerte, bis Sie sie ändern. Die Abschnitte folgen <em>Rechenlast</em>, <em>Temperatur</em> und <em>Speicherkapazität</em>, von aktueller Last bis belegtem Platz.",
|
||||
"headerSection": "Abschnitt",
|
||||
"headerWarning": "Warnung",
|
||||
"headerCritical": "Kritisch",
|
||||
"headerGates": "Gesteuerte Prüfung",
|
||||
"thresholdRows": [
|
||||
{
|
||||
"section": "CPU-Auslastung",
|
||||
"warning": "85 %",
|
||||
"critical": "95 %",
|
||||
"gates": "Dauerlastwarnung, wenn die mittlere CPU-Auslastung im Prüfzeitraum über der Schwelle liegt."
|
||||
},
|
||||
{
|
||||
"section": "Arbeitsspeicher",
|
||||
"warning": "85 %",
|
||||
"critical": "95 %",
|
||||
"gates": "RAM-Druck des Hosts. Der konfigurierbare Standard zeigt Kritisch bei 95 %, doch der aktuelle Detektor verwendet fest 90 % über längere Zeit; diese Einstellung ändert diesen Laufzeitzweig derzeit nicht."
|
||||
},
|
||||
{
|
||||
"section": "Swap (nur kritischer Schwellenwert)",
|
||||
"warning": "—",
|
||||
"critical": "80 %",
|
||||
"gates": "Swap-CRITICAL erfordert zugleich mehr als 80 % Swap und weniger als 15 % verfügbaren RAM über mehrere Messungen. Belegter Swap allein löst die Regel nicht aus."
|
||||
},
|
||||
{
|
||||
"section": "CPU-Temperatur",
|
||||
"warning": "80 °C",
|
||||
"critical": "90 °C",
|
||||
"gates": "CPU-Package- oder Kerntemperatur aus <code>lm-sensors</code>."
|
||||
},
|
||||
{
|
||||
"section": "Festplattentemperatur — HDD",
|
||||
"warning": "60 °C",
|
||||
"critical": "65 °C",
|
||||
"gates": "HDD-Temperatur. Standard: Warnung bei 60 °C, Kritisch bei 65 °C. Das sind Überwachungswerte, keine universelle Herstellergrenze; prüfen Sie die Modellspezifikation."
|
||||
},
|
||||
{
|
||||
"section": "Datenträgertemperatur — SSD",
|
||||
"warning": "70 °C",
|
||||
"critical": "75 °C",
|
||||
"gates": "SATA-SSDs in 2,5-Zoll- oder M.2-Bauform. Diese Klasse verwendet 70/75 °C als Standard; tatsächliche Grenzen hängen vom Modell ab."
|
||||
},
|
||||
{
|
||||
"section": "Datenträgertemperatur — NVMe",
|
||||
"warning": "80 °C",
|
||||
"critical": "85 °C",
|
||||
"gates": "NVMe-Temperatur. Standardwerte dieser Klasse sind 80/85 °C. Die Drosseltemperatur des Controllers hängt vom Modell ab und beträgt nicht immer 85 °C."
|
||||
},
|
||||
{
|
||||
"section": "Datenträgertemperatur — SAS",
|
||||
"warning": "55 °C",
|
||||
"critical": "65 °C",
|
||||
"gates": "SAS-Temperatur. Diese Klasse verwendet Warnung bei 55 °C und Kritisch bei 65 °C. Das sind <em>Überwachungsstandards</em>, kein Beweis eines Kühlfehlers bei 55 °C oder eine allgemeine Herstellergrenze."
|
||||
},
|
||||
{
|
||||
"section": "Datenträgerplatz — Host",
|
||||
"warning": "85 %",
|
||||
"critical": "95 %",
|
||||
"gates": "Kapazität von <code>/</code> und jedem Einhängepunkt des Hosts (<code>/var/lib/vz</code>, <code>/mnt/*</code>…)."
|
||||
},
|
||||
{
|
||||
"section": "Plattenraum — LXC Rootfs",
|
||||
"warning": "85 %",
|
||||
"critical": "95 %",
|
||||
"gates": "Root-Laufwerk pro Container, bewertet anhand der Rootfs-Größe von PVE."
|
||||
},
|
||||
{
|
||||
"section": "LXC-Einhängepunkte",
|
||||
"warning": "85 %",
|
||||
"critical": "95 %",
|
||||
"gates": "Kapazität von Einhängepunkten laufender CTs: mp0, mp1, NFS und Bind-Mounts. Ohne rootfs."
|
||||
},
|
||||
{
|
||||
"section": "PVE-Speicher",
|
||||
"warning": "85 %",
|
||||
"critical": "95 %",
|
||||
"gates": "Von PVE verwaltete Speicher: LVM, LVM-thin, ZFS-pool, RBD/Ceph und PBS. Nicht alle sind Blockspeicher."
|
||||
},
|
||||
{
|
||||
"section": "ZFS-Pool",
|
||||
"warning": "85 %",
|
||||
"critical": "95 %",
|
||||
"gates": "ZFS-Pools auf dem Host, unabhängig von ihrer Registrierung in PVE."
|
||||
}
|
||||
],
|
||||
"defaultsTitle": "Standardwerte, Anpassungen und Zurücksetzen",
|
||||
"defaultsBody": "Jeder Abschnitt beginnt mit Standardwerten; Sie speichern nur gewünschte Änderungen. Die Karte zeigt den <em>wirksamen</em> Wert: Ihre Änderung oder den Standard. <strong>Zurücksetzen</strong> entfernt alle Änderungen in sämtlichen Abschnitten.",
|
||||
"validationTitle": "Validierung",
|
||||
"validationBody": "Beim Speichern werden erlaubte Bereiche geprüft und Kritisch unter Warnung abgelehnt. Die Oberfläche zeigt Fehler; der Server validiert API-Anfragen vor dem Speichern erneut."
|
||||
},
|
||||
"lxcDetection": {
|
||||
"heading": "LXC-Update-Erkennung",
|
||||
"imageAlt": "LXC-Update-Erkennung mit Schalter zur Suche nach Paketupdates in laufenden Debian-, Ubuntu- und Alpine-Containern",
|
||||
"imageCaption": "Schalter für regelmäßige Prüfungen mit <code>apt list --upgradable</code> / <code>apk list -u</code> in laufenden CTs. Standardmäßig aktiviert. Der zugehörige Schalter unter Benachrichtigungen → Dienste erscheint bei aktiver Erkennung.",
|
||||
"intro": "Der Schalter zwischen Schwellen und Benachrichtigungen steuert den LXC-Scan. Aktiv fragt er Paketmanager laufender CTs ab; Hardware zeigt Ergebnisse und <code>lxc_updates_available</code> erhält sie. Deaktiviert stoppt er seine <code>pct exec</code>-Aufrufe und entfernt LXC-Einträge aus <code>managed_installs.json</code>; <code>/api/managed-installs</code> meldet den Status dann ohne 24-Stunden-Wartezeit nicht mehr.",
|
||||
"whatRunsTitle": "Was die Prüfung ausführt",
|
||||
"whatRunsIntro": "Für jeden CT im Zustand <code>running</code> mit unterstütztem Paketmanager:",
|
||||
"whatRunsItems": [
|
||||
"<strong>Metadatenaktualität.</strong> Ist der apt/apk-Cache älter als <strong>24 Stunden</strong>, wird eine Aktualisierung mit <code>apt-get update -qq</code> auf Debian/Ubuntu oder <code>apk update</code> auf Alpine versucht, mit 60 s Zeitlimit. Bei Fehlern verwendet die Liste den vorhandenen, eventuell veralteten Cache.",
|
||||
"<strong>Auflistung.</strong> Führt <code>apt list --upgradable</code> / <code>apk list -u</code> aus und ermittelt Paketanzahl und einige Paketnamen.",
|
||||
"<strong>Duplikate je CT vermeiden.</strong> Ein Fingerabdruck aus Gesamtzahl, Sicherheitsupdates und sortierten Namen verhindert tägliche Wiederholungen desselben Bestands. Wesentliche Änderungen melden erneut."
|
||||
],
|
||||
"selfUpdateTitle": "CTs mit Updates außerhalb von apt können 0 melden",
|
||||
"selfUpdateBody": "Die Erkennung umfasst nur den Paketmanager im CT. Außerhalb von apt aktualisierte Software, etwa ein eingerichteter <code>plexupdate</code>-Job oder Images aus <code>docker pull</code>, zählt nicht dazu. Null apt-Updates beweisen nicht, dass alle Anwendungen aktuell sind. Ausstehende Basissystempakete werden weiter erkannt.",
|
||||
"refreshTitle": "Warum Metadaten nach 24 Stunden erneuert werden",
|
||||
"refreshBody": "Lange laufende CTs können alte apt-Metadaten haben, wenn niemand <code>apt update</code> ausführt. <code>apt list --upgradable</code> kann dann neue Updates übersehen. ProxMenux versucht eine Erneuerung nach mehr als 24 Stunden und überspringt sie bei neuerem Cache.",
|
||||
"toggleTitle": "Benachrichtigungsschalter bei aktiver Erkennung",
|
||||
"toggleBody": "Der Schalter <code>lxc_updates_available</code> je Kanal unter <strong>Benachrichtigungen → Dienste</strong> erscheint nur bei aktiver Erkennung. Beim Abschalten verschwindet die Zeile in allen Kanälen. Die Datenbank bewahrt die Einstellung; beim Einschalten kehrt der bisherige Wert zurück.",
|
||||
"purgeTitle": "Was beim Abschalten der Erkennung gelöscht wird",
|
||||
"purgeBody": "Das Abschalten entfernt sofort alle <code>type=lxc</code>-Einträge aus <code>/usr/local/share/proxmenux/managed_installs.json</code>. Hardware zeigt beim nächsten Neuladen keine LXC-Updatezähler mehr. Nach dem Einschalten füllt der nächste Erkennungszyklus den Bestand erneut; ein manueller API-Aufruf kann dies vorziehen."
|
||||
},
|
||||
"storageExclusions": {
|
||||
"heading": "Ausschlüsse von Remote-Speicher",
|
||||
"imageAlt": "Karte für entfernte Speicherausschlüsse mit PBS-Cloud, PBS und PBS2 sowie Schaltern für Zustand und Warnungen je Zeile",
|
||||
"imageCaption": "Schalter für <em>Zustand</em> und <em>Warnungen</em> je Speicher. Sind beide aus, zählt der Speicher nicht mehr im Health Monitor und sendet keine Meldungen. Unter Speicher bleibt er als ausgeschlossen sichtbar.",
|
||||
"intro": "Von Proxmox verwaltete Speicher (NFS / CIFS / PBS / Ceph / iSCSI usw.) lassen sich mit zwei unabhängigen Schaltern ausschließen:",
|
||||
"items": [
|
||||
"<strong>Zustand</strong> — wird dieser Schalter deaktiviert, zählt der Speicher nicht mehr zur Speicherkategorie des Health Monitor. Hilfreich für meist abgeschaltete Archiv-Volumes oder entfernte Sicherungsziele, die nur nach Zeitplan eingeschaltet werden.",
|
||||
"<strong>Warnungen</strong> — ausgeschaltet verhindert dieser Schalter Meldungen für den Speicher über eingerichtete Kanäle, auch bei aktiven Zustandsprüfungen. Hilfreich, wenn Sie den Zustand im Dashboard sehen möchten, ohne Meldungen zu erhalten."
|
||||
],
|
||||
"outro": "Ausgeschlossene Speicher bleiben auf der <link>Registerkarte Speicher</link> mit dem violetten Abzeichen <em>ausgeschlossen</em> sichtbar. Der Zustand wird in der SQLite-Tabelle <code>excluded_storages</code> gespeichert."
|
||||
},
|
||||
"interfaceExclusions": {
|
||||
"heading": "Ausschlüsse von Netzwerkschnittstellen",
|
||||
"imageAlt": "Karte für Schnittstellenausschlüsse mit vmbr0, vmbr1, vmbr2, bond0 und eno1 sowie Zustands- und Warnungsschaltern je Schnittstelle",
|
||||
"imageCaption": "Wie bei Speicherausschlüssen gibt es <em>Zustand</em> und <em>Warnungen</em> je Schnittstelle. Jede Zeile zeigt Namen, Typ (Bridge / Bond / physisch), IP und Verbindungsgeschwindigkeit.",
|
||||
"intro": "Dasselbe Prinzip gilt für Netzwerkschnittstellen: Jede lässt sich von Zustandsprüfungen, Benachrichtigungen oder beiden ausschließen. Typische Beispiele:",
|
||||
"items": [
|
||||
"Eine bewusst deaktivierte Reserve-Bridge.",
|
||||
"Eine physisch entfernte Netzwerkkarte, die noch in <code>/etc/network/interfaces</code> steht.",
|
||||
"Eine VLAN-Unterschnittstelle, die nur bei Wartungsarbeiten genutzt wird.",
|
||||
"Eine Verwaltungs-Bridge mit bekannten, wiederholten Verbindungswechseln während der Wartung."
|
||||
],
|
||||
"outro": "Der Zustand wird in der SQLite-Tabelle <code>excluded_interfaces</code> gespeichert. Das violette Abzeichen <em>ausgeschlossen</em> auf der <link>Registerkarte Netzwerk</link> hält ausgeschlossene Schnittstellen sichtbar."
|
||||
},
|
||||
"notifications": {
|
||||
"heading": "Benachrichtigungen und KI",
|
||||
"body1": "Hier aktivieren Sie ProxMenux-Monitor-Benachrichtigungen und die KI-Umformulierung. <em>Benachrichtigungen aktivieren</em> startet den Hintergrundversand, registriert ein Proxmox-VE-Webhook-Ziel für dessen Ereignisse und öffnet die Kanaleinstellungen für Telegram, Discord, E-Mail, Gotify und weitere Dienste. Die KI-Umformulierung liegt im selben Bereich unter aufklappbaren erweiterten Einstellungen.",
|
||||
"body2": "Eigene Seiten erklären die Optionen: Kanäle, Ereignisschalter, formatierte Nachrichten, Anzeigename, Versand mit Duplikatfilter, Wartezeiten, Bündelung und Ruhezeiten, PVE-Webhook, KI-Anbieter und Prompt-Modi:",
|
||||
"items": [
|
||||
"<notifLink>Benachrichtigungen</notifLink>: Kanaleinrichtung (Telegram, Discord, Gotify, E-Mail mit Gmail-/Microsoft-App-Passwörtern, ntfy, Slack, Teams und allgemeiner Webhook), Ereigniskategorien, formatierte Nachrichten, Anzeigename, Versand, PVE-Webhook, Verlauf und API.",
|
||||
"<aiLink>KI-Assistent</aiLink>: Anbieter (OpenAI, Anthropic, Gemini, Groq, OpenRouter, Ollama), Modelle, Standard- oder eigene Prompts, Ausgabesprache, Detailgrad je Kanal und KI-Vorschläge."
|
||||
]
|
||||
},
|
||||
"optimizations": {
|
||||
"heading": "ProxMenux-Optimierungen",
|
||||
"intro": "Bestand der von ProxMenux auf dem Host registrierten Nachinstallationsoptimierungen. Optionen aus <autoLink>Automatisierte Nachinstallation</autoLink> und <customLink>Anpassbare Nachinstallation</customLink> tragen ihre Anwendung in <code>/usr/local/share/proxmenux/installed_tools.json</code> ein. Der Monitor liest diesen Bestand. Ein Eintrag prüft nicht erneut, ob alle Einstellungen unverändert sind.",
|
||||
"imageAlt": "ProxMenux-Optimierungskarte mit 14 Einträgen aus Farbpunkt, Name und Version: APT IPv4 Force, Bashrc Customization, Fastfetch, Log2ram SSD Protection, Memory Settings Optimization, Setting persistent network interfaces, System Limits Increase, APT Language Skip, Entropy Generation haveged mit Legacy, Kernel Panic Configuration, Logrotate Optimization, Network Optimizations, Subscription Banner Removal und VFIO IOMMU Passthrough.",
|
||||
"imageCaption": "Jede Optimierung erscheint mit Name, Version und Farbpunkt. Oben rechts steht der orange Zähler <em>14 aktiv</em>. Werkzeuge mit verfügbarem Quellcode lassen sich öffnen.",
|
||||
"dotsTitle": "Was die Punkte bedeuten",
|
||||
"dotsItems": [
|
||||
"<green/> <strong>Grüner Punkt</strong>: registrierte Optimierung ohne Legacy-Markierung und ohne angezeigtes Update. Öffnen Sie die Zeile, wenn Quellcode verfügbar ist.",
|
||||
"<amber/> <strong>Oranger Punkt und <em>legacy</em>-Abzeichen</strong>: registrierte Optimierung, deren Skript umbenannt oder ersetzt wurde. Der erhaltene Quellcode öffnet sich im Legacy-Modus mit oranger Hervorhebung. Die aktuelle Host-Konfiguration wird dabei nicht erneut geprüft."
|
||||
],
|
||||
"clickTitle": "Quellcode öffnen",
|
||||
"clickBody": "Ein Klick zeigt die zugeordnete Bash-Funktion und den Skriptnamen (<code>auto_post_install.sh</code> oder <code>customizable_post_install.sh</code>). Aktuelle Werkzeuge stammen aus Host-Dateien, ältere können erhaltenen Quellcode nutzen. Syntaxhervorhebung und Kopieren erleichtern die Prüfung. Dies ist kein garantiertes Abbild des bei der Installation ausgeführten Codes.",
|
||||
"detailAlt": "Quellcodefenster für APT IPv4 Force mit der Bash-Funktion force_apt_ipv4 aus customizable_post_install.sh Version 1.0. Der hervorgehobene Code konfiguriert /etc/apt/apt.conf.d/99-force-ipv4 mit Acquire ForceIPv4 true, registriert das Werkzeug und zeigt eine übersetzte Abschlussmeldung zur APT-IPv4-Konfiguration.",
|
||||
"detailCaption": "Quellcode von <em>APT IPv4 Force</em>: Funktion <code>force_apt_ipv4()</code> aus <code>customizable_post_install.sh v1.0</code>, mit Syntaxhervorhebung und Kopieren per Klick.",
|
||||
"whyTitle": "Warum das wichtig ist",
|
||||
"whyBody": "ProxMenux kann Kernel-Parameter, Paketquellen, Netzwerk, Logrotation und GPU-Durchreichung ändern. Prüfen Sie die registrierten Optimierungen vor manuellen Änderungen, besonders wenn jemand anderes den Host eingerichtet hat. Die Karte zeigt Bestand und verfügbaren Quellcode; sie prüft nicht jede aktuelle Einstellung und bewahrt keinen exakten Ausführungsverlauf.",
|
||||
"updatesTitle": "Hinweis auf verfügbare Updates",
|
||||
"updatesBody": "Ist die Optimierung auf dem Datenträger neuer als die auf dem Host registrierte Version, erscheint ein Hinweis mit Anzahl und <strong>Anwenden</strong>. <strong>Anwenden</strong> öffnet die Auswahl der Optimierungen, wie <em>Verfügbare Updates anwenden</em> im Nachinstallationsmenü. Wählen Sie die Updates; ProxMenux führt ihre Funktionen erneut aus und aktualisiert den Bestand. Sind alle aktuell, verschwindet der Hinweis.",
|
||||
"updatesAlt": "ProxMenux-Optimierungskarte mit Hinweis auf verfügbare Updates, deren Anzahl und Anwenden-Schaltfläche für die Auswahl",
|
||||
"updatesCaption": "Der Hinweis erscheint, wenn mindestens eine Optimierung auf dem Datenträger neuer ist. <link>Verfügbare Updates anwenden</link> erklärt den Ablauf und die entsprechende Path-A-Option im Shell-Menü.",
|
||||
"revertTitle": "Eine Optimierung rückgängig machen",
|
||||
"revertBody": "Um eine Optimierung rückgängig zu machen, wählen Sie die passende Option unter <link>Optimierungen deinstallieren</link> im ProxMenux-Scripts-Menü. Dies entfernt den Eintrag aus <code>installed_tools.json</code>; nach dem Neuladen erscheint er nicht mehr."
|
||||
},
|
||||
"dataCollected": {
|
||||
"heading": "Wie die Daten gesammelt werden",
|
||||
"headerCard": "Karte",
|
||||
"headerEndpoint": "Endpunkt",
|
||||
"headerSource": "Quelle",
|
||||
"rows": [
|
||||
{
|
||||
"card": "Schnittstellensprache",
|
||||
"endpoint": "localStorage",
|
||||
"source": "Browser-Einstellung <code>proxmenux-ui-language</code>; ohne gespeicherte Wahl wird zunächst die Browsersprache verwendet."
|
||||
},
|
||||
{
|
||||
"card": "Navigationsreihenfolge",
|
||||
"endpoint": "localStorage",
|
||||
"source": "Browser-Einstellung <code>proxmenux-nav-order</code>; sie legt auch die Startregisterkarte fest."
|
||||
},
|
||||
{
|
||||
"card": "Netzwerkeinheiten",
|
||||
"endpoint": "/api/settings",
|
||||
"source": "In der SQLite-Einstellungstabelle des Dashboards gespeichert."
|
||||
},
|
||||
{
|
||||
"card": "Health-Monitor-Zeitdauern",
|
||||
"endpoint": "/api/health/settings",
|
||||
"source": "Unterdrückungsdauer je Kategorie in der Health-Monitor-Datenbank."
|
||||
},
|
||||
{
|
||||
"card": "Speicher-/Schnittstellenausschlüsse",
|
||||
"endpoint": "/api/storage/exclusions, /api/network/exclusions",
|
||||
"source": "SQLite Tabellen <code>excluded_storages</code> und <code>excluded_interfaces</code>."
|
||||
},
|
||||
{
|
||||
"card": "Bereich Benachrichtigungen und KI",
|
||||
"endpoint": "/api/notifications/*",
|
||||
"source": "Siehe <notifLink>Benachrichtigungen</notifLink> und <aiLink>KI-Assistent</aiLink>."
|
||||
},
|
||||
{
|
||||
"card": "ProxMenux-Optimierungsliste",
|
||||
"endpoint": "/api/proxmenux/installed-tools",
|
||||
"source": "Liest <code>/usr/local/share/proxmenux/installed_tools.json</code>, geschrieben durch <code>register_tool</code>-Aufrufe der Nachinstallationsskripte."
|
||||
},
|
||||
{
|
||||
"card": "Quellcodefenster einer Optimierung",
|
||||
"endpoint": "/api/proxmenux/tool-source",
|
||||
"source": "Extrahiert die zugeordnete Bash-Funktion aus <code>auto_post_install.sh</code> oder <code>customizable_post_install.sh</code> auf dem Host; ältere Werkzeuge können erhaltenen Quellcode nutzen."
|
||||
}
|
||||
]
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Weitere Schritte",
|
||||
"items": [
|
||||
{
|
||||
"label": "Registerkarte Apps",
|
||||
"href": "/docs/monitor/dashboard/apps",
|
||||
"tail": " — der App-Starter, dessen Position die Navigationsreihenfolge bestimmt."
|
||||
},
|
||||
{
|
||||
"label": "Benachrichtigungen",
|
||||
"href": "/docs/monitor/notifications",
|
||||
"tail": " — Kanäle, Ereignisschalter, kanalbezogene Anpassungen, Verlauf und Testversand."
|
||||
},
|
||||
{
|
||||
"label": "KI-Assistent",
|
||||
"href": "/docs/monitor/ai-assistant",
|
||||
"tail": " — Anbieter, Modelle, Prompt-Modi, Sprachen und Detailgrad je Kanal."
|
||||
},
|
||||
{
|
||||
"label": "Health Monitor → Warnungen unterdrücken und Unterdrückungsdauer",
|
||||
"href": "/docs/monitor/health-monitor#dismissing-alerts-and-the-suppression-duration",
|
||||
"tail": " — wie die obigen Auswahllisten je Kategorie funktionieren."
|
||||
},
|
||||
{
|
||||
"label": "ProxMenux Scripts → Automatisierte Nachinstallation",
|
||||
"href": "/docs/post-install/automated",
|
||||
"tailRich": " und <customLink>Anpassbare Nachinstallation</customLink> — die Skripte, die Einträge in der obigen Optimierungsliste registrieren."
|
||||
},
|
||||
{
|
||||
"label": "Optimierungen deinstallieren",
|
||||
"href": "/docs/post-install/uninstall",
|
||||
"tail": " — wie Sie eine oben registrierte Optimierung rückgängig machen."
|
||||
},
|
||||
{
|
||||
"label": "Dashboard-Index",
|
||||
"href": "/docs/monitor/dashboard",
|
||||
"tail": " — zurück zur Übersicht der Registerkarten."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,268 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Monitor — Dashboard: Registerkarte Speicher | ProxMenux-Dokumentation",
|
||||
"description": "Die Registerkarte Speicher vereint vier Ansichten: Proxmox-Speicher mit Status, ZFS-Pools, interne Laufwerke mit SMART und externe USB-Laufwerke. Die Laufwerksdetails zeigen SMART-Attribute, Verschleiß, Lebensdauer und dauerhaft gespeicherte Beobachtungen."
|
||||
},
|
||||
"header": {
|
||||
"title": "Dashboard: Registerkarte Speicher",
|
||||
"description": "Der gesamte Hostspeicher auf einer Seite: Proxmox-Speicher NFS / CIFS / LVM / ZFS / dir, ZFS-Poolzustand, interne SATA/NVMe-Laufwerke mit SMART und externe USB-Laufwerke. Ein Klick auf ein Laufwerk öffnet SMART-Attribute und Beobachtungsverlauf.",
|
||||
"section": "ProxMenux Monitor · Übersicht"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Unterstützt durch drei Quellen",
|
||||
"body": "Proxmox-Speicher stammen aus <code>pvesm status</code>, ZFS aus <code>zpool status</code>, physische Laufwerke aus <code>lsblk</code> + <code>smartctl</code> und NVMe-Felder aus <code>nvme</code>. Die Seite aktualisiert sich etwa alle 60 Sekunden; die Detailansicht fordert eine SMART-Abfrage an."
|
||||
},
|
||||
"thresholds": {
|
||||
"title": "Hier angewendete Statusfarben und -schwellen",
|
||||
"intro": "Health Monitor bewertet den Status als <green/> <strong>grün</strong> unter Warnung, <amber/> <strong>orange</strong> zwischen Warnung und Kritisch und <red/> <strong>rot</strong> ab Kritisch. Die Standardwerte folgen. Einzelne Dashboard-Balken können andere, unten beschriebene Farbgrenzen verwenden.",
|
||||
"items": [
|
||||
"<strong>Kapazität</strong> (Hostlaufwerke, PVE-Speicher, ZFS-Pools, LXC-Einhängepunkte) — Warnung 85 %, Kritisch 95 %.",
|
||||
"<strong>Laufwerkstemperatur</strong> — HDD 60/65 °C · SSD 70/75 °C · NVMe 80/85 °C · SAS 55/65 °C (Warnung / Kritisch)."
|
||||
],
|
||||
"outro": "Alle Werte lassen sich je Host konfigurieren. <link>Einstellungen → Health-Monitor-Schwellen</link> nennt die maßgeblichen Werte und erklärt ihre Anpassung."
|
||||
},
|
||||
"topRow": {
|
||||
"heading": "Obere Reihe: Speicherübersicht",
|
||||
"intro": "Vier Karten fassen beim Öffnen Gesamtkapazität, lokale Nutzung, entfernte Nutzung und physische Laufwerke zusammen. Sie geben schnelle Antworten; die Karten darunter enthalten die Details.",
|
||||
"imageAlt": "Registerkarte Speicher mit vier Karten: Gesamtspeicher, lokale Nutzung, entfernte Nutzung und physische Laufwerke",
|
||||
"imageCaption": "Obere Reihe: Gesamtkapazität und Laufwerksanzahl, lokal und entfernt belegte Bytes sowie physische Laufwerke nach Typ mit Zustandsübersicht.",
|
||||
"headerCard": "Karte",
|
||||
"headerWhat": "Was es zeigt",
|
||||
"totalLabel": "Gesamtspeicher",
|
||||
"totalWhat": "Gesamte Rohkapazität aller physischen Laufwerke. Die Fußzeile nennt die Anzahl erkannter Laufwerke.",
|
||||
"localLabel": "Lokale Nutzung",
|
||||
"localWhat": "Belegte Bytes auf lokalem Speicher: LVM / LVM-thin / ZFS / dir auf den Hostlaufwerken. Der Hauptwert zeigt belegte Bytes, die Fußzeile <em>X.XX % von Y TB</em> zusätzlich den Belegungsgrad.",
|
||||
"remoteLabel": "Entfernte Nutzung",
|
||||
"remoteWhat": "Dasselbe Format wie Lokale Nutzung für entfernte Speicher NFS / CIFS / PBS / Ceph / iSCSI. Sie werden getrennt gezählt, da lokale und entfernte Ausfälle unterschiedlich wirken und die Ressourcen anders geplant und überwacht werden.",
|
||||
"disksLabel": "Physische Laufwerke",
|
||||
"disksIntro": "Zwei Aufschlüsselungslinien für das Inventar:",
|
||||
"disksItems": [
|
||||
"<strong>Nach Typ</strong> — Anzahl der NVMe-Laufwerke in Lila, SSDs und HDDs in Blau. Angezeigt werden erkannte Typen; ein reiner NVMe-Host zeigt nur diesen Zähler.",
|
||||
"<strong>Nach Zustand</strong> — Anzahl <em>normaler</em> Laufwerke in Grün, mit <em>Warnung</em> in Gelb und <em>kritischer</em> in Rot. Ohne Probleme erscheint nur „X normal“; die anderen Zustände werden erst bei entsprechenden Befunden angezeigt."
|
||||
]
|
||||
},
|
||||
"pveStorage": {
|
||||
"heading": "Proxmox Speicherkarte",
|
||||
"intro": "Je Speicher aus <code>/etc/pve/storage.cfg</code> eine Zeile mit Typ (<code>nfs</code> / <code>cifs</code> / <code>zfspool</code> / <code>lvm</code> / <code>lvmthin</code> / <code>dir</code> / <code>pbs</code>), Name, Status aktiv/Fehler/nicht überwacht, Belegungsgrad und Farbbalken:",
|
||||
"items": [
|
||||
"<strong>Bis 75 %</strong> — blauer Balken und Wert.",
|
||||
"<strong>Über 75 % bis 90 %</strong> — gelber Balken und Wert. Diese Farbgrenzen sind von den Health-Monitor-Schwellen getrennt.",
|
||||
"<strong>> 90 %</strong> — roter Balken und Wert. Diese Farbgrenze ist von der Eskalation im Health Monitor getrennt.",
|
||||
"<strong>Fehler</strong> — roter Rahmen um die Zeile bei konfiguriertem, aber unerreichbarem Speicher, etwa ausgefallenem NFS-Server oder abgelaufenen CIFS-Zugangsdaten.",
|
||||
"<strong>Ausgeschlossen</strong> — lila Rahmen und Kennzeichnung „nicht überwacht“. Vom Benutzer ausgeschlossene Speicher, etwa absichtlich getrennte Archivvolumes."
|
||||
],
|
||||
"calloutTitle": "Speicher von der Überwachung ausschließen",
|
||||
"calloutBody": "Im Speichermenü lässt sich der Speicher als <em>von Überwachung ausgeschlossen</em> markieren. Die Einstellung liegt in <code>excluded_storages</code> und gilt für Dashboard und Health Monitor: keine Benachrichtigungen und kein Einfluss auf den Gesamtstatus."
|
||||
},
|
||||
"zfs": {
|
||||
"heading": "ZFS Poolkarte",
|
||||
"intro": "Erscheint nur bei installiertem ZFS und mindestens einem Pool. Jede Zeile zeigt einen Pool mit Status, Größe, belegtem und freiem Platz sowie Statussymbol:",
|
||||
"items": [
|
||||
"<strong>ONLINE</strong> — grün. Alles gesund.",
|
||||
"<strong>DEGRADED</strong> — gelb. Der Pool liefert Daten, aber mindestens ein Gerät ist nicht verfügbar; ein Austausch muss geprüft werden.",
|
||||
"<strong>FAULTED</strong> / <strong>UNAVAIL</strong> / <strong>SUSPENDED</strong> — rot. Der Pool liefert keine Daten und erfordert sofortiges Eingreifen."
|
||||
],
|
||||
"outro": "ZFS-Zustand und SMART-Status jedes Laufwerks fließen in die Kategorie <em>Laufwerke und E/A</em> im <link>Health Monitor</link> ein."
|
||||
},
|
||||
"physical": {
|
||||
"heading": "Physische Laufwerke und SMART-Status",
|
||||
"intro": "Interne Festplatten (SATA / NVMe). Jede Zeile kondensiert die nützlichsten Felder auf einen Blick:",
|
||||
"items": [
|
||||
"<strong>Gerätepfad</strong> — <code>/dev/sda</code>, <code>/dev/nvme0n1</code>.",
|
||||
"<strong>Typkennzeichnung</strong> — SATA / NVMe und passendes Symbol.",
|
||||
"<strong>Systemkennzeichnung</strong> — orange Markierung für erkannte Betriebssystemlaufwerke. Die Erkennung verwendet die Einhängepunkte <code>/</code> und <code>/boot</code>; zugehörige Laufwerke erhalten <em>System</em>. Eine fehlende Markierung beweist nicht, dass das Laufwerk gefahrlos gelöscht oder anders verwendet werden kann.",
|
||||
"<strong>Modell</strong> — Hersteller und Modell aus <code>smartctl -i</code>.",
|
||||
"<strong>Kapazität</strong> — in gut lesbaren Einheiten.",
|
||||
"<strong>Temperatur</strong> — aktueller Wert in °C, eingefärbt nach Laufwerkstyp; NVMe verwendet höhere Schwellen als SATA.",
|
||||
"<strong>SMART-Status</strong> — bestanden / fehlgeschlagen / unbekannt.",
|
||||
"<strong>Beobachtungsanzeige</strong> — enthält der dauerhafte Verlauf <code>disk_observations</code> Einträge für das Laufwerk, erscheint eine blaue Kennzeichnung mit der Anzahl, etwa <em>3 obs.</em>. Ein Klick öffnet die Beobachtungen.",
|
||||
"<strong>Zustandsanzeige</strong> — In Ordnung / Warnung / Kritisch anhand von SMART und jüngsten Beobachtungen."
|
||||
],
|
||||
"clickHint": "Die gesamte Zeile öffnet per Klick die unten beschriebenen Laufwerksdetails.",
|
||||
"warningTitle": "Systemlaufwerke mit Bedacht behandeln",
|
||||
"warningBody": "Laufwerke mit orangefarbenem <strong>System</strong> enthalten das laufende Betriebssystem. Die Kennzeichnung hilft bei der Erkennung; <link>ProxMenux → Laufwerksverwaltung → Formatieren / Löschen</link> verweigert destruktive Aktionen darauf. Verwenden Sie zur Umnutzung einer Startplatte eine Rettungsumgebung außerhalb des laufenden Proxmox."
|
||||
},
|
||||
"external": {
|
||||
"heading": "Externer Speicher (USB)",
|
||||
"body": "USB-Laufwerke haben eine eigene Karte, die nur bei angeschlossenen Geräten erscheint. Sie zeigt dieselben Felder wie interne Laufwerke und ein orangefarbenes <strong>USB</strong>-Label. Da sie oft nur für Sicherungen oder gelegentliche Übertragungen verbunden sind, bleiben Beobachtungen erhalten, während E/A-Fehler getrennter USB-Laufwerke nicht eskalieren."
|
||||
},
|
||||
"drillIn": {
|
||||
"heading": "Dialog mit Laufwerksdetails",
|
||||
"intro": "Ein Klick auf ein Laufwerk öffnet vier Registerkarten: <strong>Übersicht</strong> · <strong>SMART</strong> · <strong>Verlauf</strong> · <strong>Zeitplan</strong>. Die Kopfzeile zeigt Gerätepfad, Modell, Kapazität und gegebenenfalls das orangefarbene <em>System</em>-Label.",
|
||||
"overviewTitle": "Registerkarte 1 — Übersicht",
|
||||
"overviewImageAlt": "Laufwerksdetails mit Übersicht, Zustand, Ringanzeige für Verschleiß und Lebensdauer sowie wichtigen SMART-Attributen",
|
||||
"overviewImageCaption": "Übersicht: Identifikation, Zustand, Restlebensdauer mit aktuellem Verschleiß und geschriebenen Daten sowie wichtige SMART-Attribute.",
|
||||
"overviewIntro": "Standardansicht zum Prüfen des Laufwerkszustands ohne Testlauf. Drei Bereiche:",
|
||||
"overviewItems": [
|
||||
"<strong>Identifikation</strong> — Modell, Seriennummer, Kapazität und Zustand In Ordnung / Warnung / Kritisch.",
|
||||
"<strong>Verschleiß und Lebensdauer</strong> — Ring für Restlebensdauer (97 %, 50 %, …) mit Quellattribut (<em>Media Wearout Indicator</em>, <em>Percentage Used</em>, …), Verschleißbalken, Prognose <em>Geschätzte Lebensdauer</em> in Jahren und geschriebenen Gesamtdaten. NVMe zeigt auch <em>Available Spare</em>.",
|
||||
"<strong>SMART-Attribute</strong>: Die wichtigsten Werte erscheinen in einem Raster mit zwei Spalten: Temperatur, Betriebsstunden mit lesbarer Dauer wie <em>3 Jahre und 116 Tage</em>, Drehzahl oder <em>SSD</em>, Einschaltzyklen, SMART-Status, neu zugewiesene Sektoren, ausstehende Sektoren und CRC-Fehler. Die vollständige Attributtabelle befindet sich auf der Registerkarte SMART."
|
||||
],
|
||||
"smartTitle": "Tab. 2 — SMART",
|
||||
"smartImageAlt": "Laufwerksdetails, SMART-Registerkarte mit kurzem und erweitertem Test, letztem Ergebnis und vollständiger Attributtabelle",
|
||||
"smartImageCaption": "SMART-Registerkarte: kurzen oder erweiterten Test starten, letztes Ergebnis und alle Attribute prüfen sowie den vollständigen Bericht zum Drucken oder Speichern als PDF öffnen.",
|
||||
"smartIntro": "Verfügbare Aktionen in drei Bereichen:",
|
||||
"smartItems": [
|
||||
"<strong>SMART-Test starten</strong> — zwei Schaltflächen. <em>Kurzer Test (~2 Min.)</em> wartet auf das Ergebnis und zeigt es im Dialog. <em>Erweiterter Test (Hintergrund)</em> kann bei großen Laufwerken Stunden dauern, läuft auf dem Server weiter und benachrichtigt bei Abschluss.",
|
||||
"<strong>Letzter Test</strong> — Typ, Status (<em>bestanden</em> / <em>fehlgeschlagen</em>) und Zeitstempel des letzten Laufs.",
|
||||
"<strong>SMART-Attribute</strong> — vollständige Tabelle mit ID, Name, Wert, schlechtestem Wert und Status In Ordnung, Warnung oder Kritisch. SATA/SAS zeigt die nummerierte Liste. NVMe verwendet <code>nvme smart-log</code>: Temperatur, verfügbare Reserve, verbrauchter Anteil, gelesene/geschriebene Einheiten, Hostzugriffe, Controller-Auslastungszeit, Einschaltzyklen, unsichere Abschaltungen, Medienfehler, Fehlerprotokolleinträge und Zeit im Warn-/Kritischbereich der Gesamttemperatur."
|
||||
],
|
||||
"pdfTitle": "Vollständigen SMART-Bericht anzeigen (PDF)",
|
||||
"pdfIntro": "Unten auf SMART öffnet <strong>Vollständigen SMART-Bericht anzeigen</strong> einen druckbaren Bericht. Speichern Sie ihn über den Browser-Druckdialog als PDF zum Archivieren oder für den Herstellersupport bei einer RMA.",
|
||||
"pdfPreviewAlt": "Erste Seite des SMART-Berichts mit Zusammenfassung, PASSED-Ring und Laufwerksinformationen",
|
||||
"pdfPreviewCaption": "Erste Seite: Zusammenfassung, PASSED-Ring und vollständige Laufwerksinformationen. Das Beispiel-PDF enthält SSD-Verschleiß, alle SMART-Attribute und den Testverlauf.",
|
||||
"pdfDownloadLabel": "Beispiel-SMART-Bericht herunterladen (PDF)",
|
||||
"pdfSectionsIntro": "Der Bericht hat sechs Hauptabschnitte:",
|
||||
"pdfSections": [
|
||||
"<strong>Zusammenfassung</strong> — PASSED/FAILED, verständliche Zustandsbewertung — in Ordnung, Verschleiß oder Ausfall — und vier Angaben: Berichtszeit, letzter Testtyp, Ergebnis und geprüfte Attribute.",
|
||||
"<strong>Laufwerksinformationen</strong> — Modell, Seriennummer, Kapazität, Typ HDD/SSD/NVMe, Familie, Bauform, Schnittstelle (SATA 3.3 · 6.0 Gb/s, …), TRIM, Temperatur und optimale Schwelle, Betriebsstunden, Einschaltzyklen, SMART, ausstehende/neu zugewiesene Sektoren und CRC-Fehler.",
|
||||
"<strong>SSD-Verschleiß und Lebensdauer</strong> (nur SSD/NVMe) — Restlebensdauer, Quellattribut, aktueller Verschleiß, geschriebene Daten und Betriebsstunden.",
|
||||
"<strong>Vollständige SMART-Attribute</strong> — ID, Name, Wert, schlechtester Wert, Schwelle, Rohwert und Status jedes Attributs. Wichtige Attribute wie Reallocated Sector Ct, Power On Hours, Reported Uncorrect, UDMA CRC Error Count und Media Wearout Indicator werden unter der Zeile kurz erklärt.",
|
||||
"<strong>Letzter Selbsttest und vollständiger Verlauf</strong> — letzter Test mit Typ, Ergebnis, Abschlussmeldung und damaligen Betriebsstunden sowie nummerierte Tabelle aller aufbewahrten Tests.",
|
||||
"<strong>Empfehlungen</strong> — Maßnahmen anhand des Ergebnisses. Für gesunde Laufwerke: <em>Laufwerk in Ordnung / regelmäßige Tests / Sicherungsstrategie</em>. Bei auffälligen Attributen folgen Hinweise zum Austausch."
|
||||
],
|
||||
"pdfOutro": "Der Browser erstellt den druckbaren Bericht; Drucken und Als PDF speichern öffnen beide den Druckdialog. Wählen Sie einen Namen wie <code>SMART-<short-id>.pdf</code>. Bewahren Sie datierte Berichte zum Vergleich oder für den Herstellersupport auf.",
|
||||
"historyTitle": "Registerkarte 3 — Verlauf",
|
||||
"historyImageAlt": "Laufwerksdetails, Verlauf mit früheren SMART-Tests sowie Download und Löschen",
|
||||
"historyImageCaption": "SMART-Testverlauf des Laufwerks. Jede Zeile zeigt Typ, Zeit, Alter, Markierung des neuesten Tests sowie Download der <code>smartctl</code>-Ausgabe und Löschen.",
|
||||
"historyIntro": "Aufbewahrte abgeschlossene kurze und erweiterte Tests des Laufwerks. Jeder Eintrag enthält die ursprüngliche <code>smartctl</code>-Ausgabe und die von Monitor für das Dashboard ausgewerteten Felder. Aktionen je Zeile:",
|
||||
"historyItems": [
|
||||
"<strong>Herunterladen</strong> — speichert den JSON-Snapshot mit den vom Bericht verwendeten <code>smartctl -a</code>-Daten. Hilfreich, wenn der Herstellersupport die ursprünglichen Diagnosefelder benötigt.",
|
||||
"<strong>Löschen</strong> — entfernt einen Test manuell aus dem Verlauf. Die Aufbewahrung im Zeitplan (<em>letzte 5 / 10 / 20</em>) löscht automatisch die ältesten."
|
||||
],
|
||||
"scheduleTitle": "Registerkarte 4 — Zeitplan",
|
||||
"scheduleImageAlt": "Laufwerksdetails, Zeitplan-Registerkarte mit Schalter für automatische SMART-Tests, Zeitplanliste und Schaltfläche Zeitplan hinzufügen",
|
||||
"scheduleImageCaption": "Zeitplan: Testtyp, Intervall und Aufbewahrung wählen; Monitor richtet <code>cron</code> für automatische Tests ein.",
|
||||
"scheduleIntro": "Automatische SMART-Tests über cron ohne Terminal. Drei Bereiche:",
|
||||
"scheduleItems": [
|
||||
"<strong>Automatische SMART-Tests</strong> — gemeinsamer Schalter für alle Zeitpläne des Laufwerks. Er pausiert sie während der Wartung, ohne ihre Konfiguration zu löschen.",
|
||||
"<strong>Konfigurierte Zeitpläne</strong> — je Zeitplan eine Zeile mit Typ (<em>kurz</em> / <em>lang</em>), lesbarem Cron-Ausdruck (<em>„Am 1. des Monats um 03:00“</em>, <em>„Jeden Sonntag um 02:00“</em>), betroffenen Laufwerken und Aufbewahrung.",
|
||||
"<strong>Zeitplan hinzufügen / bearbeiten</strong> — Typ (<em>kurz ~2 Min.</em> / <em>lang 1–4 Std.</em>), Intervall (<em>täglich / wöchentlich / monatlich</em>), Monats- oder Wochentag, Uhrzeit und Ergebnisse aufbewahren (<em>letzte 5 / 10 / 20</em>)."
|
||||
],
|
||||
"scheduleOutro": "Der Zeitplan erzeugt einen Cron-Eintrag auf dem Host, der Monitor aufruft. Ergebnisse landen im SMART-Verlauf auf Registerkarte 3; die Aufbewahrung entfernt nach neuen Tests automatisch die ältesten Ergebnisse.",
|
||||
"tempTitle": "Dialog mit Temperaturverlauf",
|
||||
"tempIntro": "Monitor erfasst regelmäßig Messwerte von Laufwerken mit Temperatursensor und speichert sie lokal als Verlauf. Der aktuelle Wert steht in der Übersicht; ein Klick öffnet den Temperaturverlauf.",
|
||||
"tempImageAlt": "Temperaturverlauf mit Gerätepfad und Modell, Zeiträumen von 1 Stunde, 24 Stunden, 7 oder 30 Tagen, Anzeigen für Aktuell/Minimum/Mittelwert/Maximum und Liniendiagramm nach den Schwellen des Laufwerkstyps",
|
||||
"tempImageCaption": "Der Temperaturdialog öffnet sich aus der Übersicht bei einem Sensorwert ungleich null. Das Diagramm verwendet die Schwellen für HDD / SSD / NVMe / SAS.",
|
||||
"tempShowsTitle": "Inhalt des Dialogs",
|
||||
"tempShowsItems": [
|
||||
"<strong>Zeitraumauswahl</strong>: <em>1 Stunde</em>, standardmäßig <em>24 Stunden</em>, <em>7 Tage</em> oder <em>30 Tage</em>. Die Auflösung wird je Anfrage für ein lesbares Diagramm angepasst.",
|
||||
"<strong>Vier Kennzahlen</strong>: <em>Aktuell</em>, <em>Minimum</em>, <em>Mittelwert</em> und <em>Maximum</em> im Zeitraum. <em>Aktuell</em> verwendet dieselben Schwellen wie Speicheransicht und Benachrichtigungen für normale, erhöhte oder hohe Temperatur.",
|
||||
"<strong>Liniendiagramm</strong> der Temperatur im Zeitverlauf, dessen Linie und Fläche nach Laufwerkstyp eingefärbt sind:"
|
||||
],
|
||||
"tempDiskTypes": [
|
||||
"HDD - typischerweise kühlere Schwellenwerte.",
|
||||
"SSD — moderate Schwellenwerte.",
|
||||
"NVMe — höhere Schwellenwerte (NVMe läuft vom Design her heißer).",
|
||||
"SAS — Warnung bei 55 °C und Kritisch bei 65 °C; die Warnschwelle unterscheidet sich von HDD."
|
||||
],
|
||||
"tempConfigurable": "Alle vier Typen werden unter <em>Einstellungen → Health-Monitor-Schwellen</em> konfiguriert.",
|
||||
"tempWhyTitle": "Warum der Verlauf wichtig ist",
|
||||
"tempWhyItems": [
|
||||
"<strong>Trends erkennen.</strong> Ein einzelner Wert zeigt nicht, dass ein Laufwerk seit Wochen wärmer wird, etwa durch Lüfterprobleme, Staub oder benachbarte Wärmequellen. Die Ansichten für 7 und 30 Tage zeigen den Verlauf.",
|
||||
"<strong>Spitzen zuordnen.</strong> Hat eine Sicherung oder Wiederherstellung die Temperatur kurz über die Schwelle erhöht, zeigen die Ansichten für 1 und 24 Stunden, ob es einmalig oder wiederkehrend war.",
|
||||
"<strong>Schwellen anpassen.</strong> Prüfen Sie vor Änderungen unter <em>Einstellungen → Health-Monitor-Schwellen</em> im 30-Tage-Diagramm den tatsächlichen Betriebsbereich des Laufwerks."
|
||||
],
|
||||
"obsTitle": "Beobachtungsverlauf über Registerkarten hinweg",
|
||||
"obsIntro": "Laufwerksfehler können sich allmählich entwickeln. Ein Laufwerk kann SMART <strong>PASSED</strong> melden und dennoch Lesefehler in dmesg, SATA-Verbindungsabbrüche oder zeitweise ausstehende Sektoren zeigen. ProxMenux speichert diese <em>Signale</em> und zeigt sie im Dialog neben dem aktuellen SMART-Status.",
|
||||
"obsImageAlt": "Übersicht eines Laufwerks mit bestandenem SMART und null neu zugewiesenen/ausstehenden Sektoren und CRC-Fehlern, aber einer E/A-Beobachtung mit ursprünglicher Kernelmeldung, ATA-Erklärung, erstem und letztem Zeitpunkt und Zähler",
|
||||
"obsImageCaption": "Ein Laufwerk mit <strong>bestandenem SMART</strong> kann frühere Beobachtungen haben. Die Karte ergänzt den aktuellen Status um den Signalverlauf.",
|
||||
"obsWhatTitle": "Was ist eine Beobachtung?",
|
||||
"obsWhatIntro": "ProxMenux speichert erkannte Laufwerksereignisse aus Kernelprotokoll, dmesg oder SMART als <strong>Beobachtung</strong>, wenn sie einzeln zu detailliert für eine Benachrichtigung wären. Jede Zeile zeigt:",
|
||||
"obsWhatItems": [
|
||||
"<strong>Typ</strong> — E/A-, SMART-, Dateisystem-, ZFS-Pool- oder Verbindungsfehler.",
|
||||
"<strong>Ursprüngliche Kernelmeldung</strong> aus dmesg zum Kopieren in eine Suchmaschine oder Supportanfrage.",
|
||||
"<strong>Kurze Erklärung</strong> bekannter ATA-Codes: <code>IDNF</code>, Sektoradresse nicht gefunden, möglicher Sektor- oder Kabelfehler; <code>UNC</code>, nicht korrigierbarer Lesefehler, defekter Sektor; und weitere Standardcodes.",
|
||||
"<strong>Erster und letzter Zeitpunkt</strong> sowie <strong>Anzahl der Vorkommen</strong>, gruppiert nach Fehlersignatur."
|
||||
],
|
||||
"obsWhyTitle": "Warum ProxMenux sie speichert und anzeigt",
|
||||
"obsWhyItems": [
|
||||
"<strong>Fehler können sich entwickeln.</strong> ATA-Busfehler, UNC-Sektoren oder Medienfehler können auftreten, bevor SMART <em>FAILED</em> meldet. Der dmesg-Puffer bewahrt sie nicht über Neustarts hinweg; der Beobachtungsverlauf schon.",
|
||||
"<strong>SMART schließt nicht jeden Fehler aus.</strong> Ein Laufwerk kann grüne Attribute und trotzdem Probleme haben. Beobachtungen bewahren zusätzliche Symptome wie ICRC, IDNF, SATA-Verbindungsresets oder Geschwindigkeitsreduzierungen.",
|
||||
"<strong>Trennt aktuell von kürzlich.</strong> Health Monitor löst vorübergehende Fehler automatisch, wenn sie nicht mehr auftreten. Der Verlauf zeigt noch Tage später beispielsweise drei E/A-Fehler einer Nacht.",
|
||||
"<strong>Grundlage abgestufter Benachrichtigungen.</strong> disk_io verwendet die Beobachtungsrate der Tabelle für still, WARNING oder CRITICAL über das seit 1.2.1.2 gleitende 24-Stunden-Fenster."
|
||||
],
|
||||
"obsDedupTitle": "Duplikate und erneute Benachrichtigungen",
|
||||
"obsDedupBody1": "Beobachtungen werden nach <strong>Signatur</strong> gruppiert, einem stabilen Fingerabdruck aus Fehlertyp, Gerät und wichtigen Meldungsfeldern. Wiederholungen erhöhen <code>occurrence_count</code> der vorhandenen Zeile. Eine <strong>andere Signatur</strong> erzeugt eine weitere Beobachtung und gilt für Benachrichtigungen als neues Ereignis.",
|
||||
"obsDedupBody2": "Gegen Benachrichtigungskaskaden meldet die erste Kombination aus Laufwerk, Signatur und Schweregrad den Befund. Dieselbe Kombination meldet sich trotz steigender Anzahl erst nach 24 Stunden erneut. Ein Wechsel von WARNING zu CRITICAL unterbricht diese Wartezeit.",
|
||||
"obsDismissTitle": "Dauerhafter Verlauf und aktive Fehler",
|
||||
"obsDismissBody1": "Beobachtungen lassen sich nicht verwerfen, ausblenden oder löschen. Jede Signatur hat eine Karte; Wiederholungen erhöhen die Anzahl und aktualisieren den letzten Zeitpunkt. Der Verlauf folgt der Seriennummer: Ein anderes Laufwerk beginnt leer, auch am selben Port; eine Kernel-Umbenennung bewahrt seinen Verlauf.",
|
||||
"obsDismissBody2": "Das Beheben oder Verwerfen eines aktiven Fehlers im Health Monitor verändert die Beobachtungen nicht. Sie bleiben nach automatischer Auflösung erhalten, sodass eine vorübergehende Warnung von letzter Woche heute sichtbar bleibt. Aktive Fehler verwalten Sie unter <link>Health Monitor</link>."
|
||||
},
|
||||
"dataCollected": {
|
||||
"heading": "Wie die Daten gesammelt werden",
|
||||
"headerSection": "Abschnitt des Reiters",
|
||||
"headerEndpoint": "Endpunkt",
|
||||
"headerSource": "Quelle",
|
||||
"rows": [
|
||||
{
|
||||
"section": "Obere Übersichtskarten",
|
||||
"endpoint": "/api/storage/summary",
|
||||
"source": "Aggregiert aus <code>lsblk</code>, <code>zpool list</code>, <code>vgs</code> / <code>lvs</code>."
|
||||
},
|
||||
{
|
||||
"section": "Inventar je Laufwerk",
|
||||
"endpoint": "/api/storage",
|
||||
"source": "<code>lsblk -O</code> + <code>smartctl -i</code> je Gerät mit Identitätscache, der bei Hotplug-Ereignissen geleert wird."
|
||||
},
|
||||
{
|
||||
"section": "Proxmox-Speicher",
|
||||
"endpoint": "/api/proxmox-storage",
|
||||
"source": "<code>pvesh get /nodes/<node>/storage</code> mit dem aktiven / Online-Zustand von jedem."
|
||||
},
|
||||
{
|
||||
"section": "Aktuelle SMART-Werte",
|
||||
"endpoint": "/api/storage/smart/<disk>",
|
||||
"source": "<code>smartctl -A <dev></code> ist eine mögliche Abfrage; der Detail-Endpunkt verwendet auch vollständige SMART-JSON-Daten und NVMe-spezifische Werte."
|
||||
},
|
||||
{
|
||||
"section": "SMART-Selbsttestverlauf",
|
||||
"endpoint": "/api/storage/smart/<disk>/history",
|
||||
"source": "Als JSON-Snapshots unter <code>/usr/local/share/proxmenux/smart/<disk>/</code> gespeichert."
|
||||
},
|
||||
{
|
||||
"section": "Dauerhafte Beobachtungen",
|
||||
"endpoint": "/api/storage/observations",
|
||||
"source": "SQLite-Tabelle, die Health Monitor in jedem Zyklus aktualisiert und nach Auflösung aktiver Fehler beibehält."
|
||||
}
|
||||
],
|
||||
"outro": "Überprüfung der Sammelkette auf dem Host:",
|
||||
"codeComment1": "# Aktuellen Stand aus einem Skript abrufen",
|
||||
"codeComment2": "# Dashboard-Daten mit der direkten Betriebssystemansicht vergleichen"
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Wohin als nächstes",
|
||||
"items": [
|
||||
{
|
||||
"label": "Gesundheitsmonitor",
|
||||
"href": "/docs/monitor/health-monitor",
|
||||
"tail": " — Kategorie Laufwerke und E/A sowie Unterdrückungsregeln."
|
||||
},
|
||||
{
|
||||
"label": "API-Referenz",
|
||||
"href": "/docs/monitor/api",
|
||||
"tail": " — Speicher- und SMART-Endpunkte."
|
||||
},
|
||||
{
|
||||
"label": "Benachrichtigungen",
|
||||
"href": "/docs/monitor/notifications",
|
||||
"tailRich": " — welche Folgeaktionen <code>disk_io_error</code>, <code>storage_unavailable</code> und <code>smart_test_failed</code> auslösen."
|
||||
},
|
||||
{
|
||||
"label": "Dashboard-Index",
|
||||
"href": "/docs/monitor/dashboard",
|
||||
"tail": "Die anderen Tabs."
|
||||
},
|
||||
{
|
||||
"label": "ProxMenux → Datenträgerverwaltung",
|
||||
"href": "/docs/disk-manager",
|
||||
"tail": " — TUI-Aktionen: Formatieren, Löschen, SMART-Tests und Laufwerke in VMs oder Container importieren."
|
||||
},
|
||||
{
|
||||
"label": "ProxMenux → SMART-Laufwerkszustand und Tests",
|
||||
"href": "/docs/disk-manager/smart-disk-test",
|
||||
"tail": " — CLI-Entsprechung: SMART-Tests planen, das angezeigte JSON exportieren und Testtypen sowie Ergebnisinterpretation nachschlagen."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Monitor — Dashboard: Systemprotokolle | ProxMenux-Dokumentation",
|
||||
"description": "Die Registerkarte Systemprotokolle konsolidiert drei Quellen in einem Bildschirm: journalctl mit Filtern und Download, Proxmox Task History (UPIDs) und Benachrichtigungsprotokoll - alle durchsuchbar, nach Schweregrad / Zeitbereich filterbar und als Textbündel herunterladbar."
|
||||
},
|
||||
"header": {
|
||||
"title": "Dashboard: Systemprotokolle",
|
||||
"description": "Drei Unterreiter in einer Ansicht: das Systemjournal (journalctl mit Filtern), der Proxmox-Aufgabenverlauf und das Benachrichtigungsprotokoll. Alle drei lassen sich durchsuchen, filtern und als Textpakete herunterladen.",
|
||||
"section": "ProxMenux Monitor · Übersicht"
|
||||
},
|
||||
"readOnly": {
|
||||
"title": "Read-only nach Design",
|
||||
"body": "Dieser Reiter verändert keine Protokolldateien. Die Filter werden in der URL bzw. im Ansichtsstatus gehalten; Downloads werden auf dem Server erstellt. Das Dashboard löscht keine Einträge. Zur Protokollpflege verwenden Sie auf dem Host <code>journalctl --vacuum-time=<N></code> oder <code>logrotate</code>."
|
||||
},
|
||||
"topRow": {
|
||||
"heading": "Obere Reihe: vier Zähler",
|
||||
"items": [
|
||||
"<strong>Einträge insgesamt</strong> — Anzahl der Protokolleinträge im aktiven Filterzeitraum.",
|
||||
"<strong>Fehler</strong> — Anzahl der Einträge mit Schweregrad ≤ 3 (<code>err</code> / <code>crit</code> / <code>alert</code> / <code>emerg</code>).",
|
||||
"<strong>Warnungen</strong> — Anzahl der Einträge mit Schweregrad 4 (<code>warning</code>).",
|
||||
"<strong>Sicherungen</strong> — Anzahl der vzdump-/PBS-Aufgabeneinträge im selben Zeitraum."
|
||||
]
|
||||
},
|
||||
"subtabs": {
|
||||
"heading": "Drei Unterreiter",
|
||||
"logsTitle": "Protokolle",
|
||||
"logsIntro": "Das Systemjournal wird auf dem Server mit <code>journalctl</code> abgerufen. Die Werkzeugleiste bietet folgende Filter :",
|
||||
"logsFilters": [
|
||||
"<strong>Schweregrad</strong> — emerg / alert / crit / err / warning / notice / info / debug oder eine beliebige Kombination.",
|
||||
"<strong>Zeitbereich</strong> — zuletzt 5 min. / 15 min. / 1 h / 6 h / 24 h / 7 d / Custom.",
|
||||
"<strong>Freitextsuche</strong> — Teilzeichenfolge oder regulärer Ausdruck (<code>journalctl --grep</code>).",
|
||||
"<strong>Unit-Filter</strong> — auf eine bestimmte systemd-Unit beschränken (<code>pveproxy.service</code>, <code>nginx.service</code>, …)."
|
||||
],
|
||||
"logsRowsAfter": "Jede Zeile zeigt Zeitstempel, Schweregradabzeichen, Quelleinheit und die Nachricht. Lange Nachrichten brechen mit einem \"mehr anzeigen\"-Schalter zusammen. Die Aktion <strong>Download</strong> bündelt den aktuellen Filter über <code>GET /api/logs/download</code> in einer einzigen <code>.txt</code>-Datei – nützlich, wenn Sie ein Stück Journal mit jemandem teilen möchten.",
|
||||
"logDetailsModalTitle": "Dialog Protokolldetails",
|
||||
"logDetailsBody": "Ein Klick auf eine Zeile öffnet <strong>Protokolldetails</strong> mit allen strukturierten Feldern, die journald für diesen Eintrag erfasst hat — wie bei <code>journalctl --output=verbose</code> auf dem Host.",
|
||||
"logDetailsImageAlt": "Dialog Protokolldetails — einzelner Journaleintrag mit Stufe, Dienst, Zeitstempel, Quelle, systemd-Unit, Prozess-ID, Hostname und vollständiger Nachricht",
|
||||
"logDetailsImageCaption": "Protokolldetails — alle strukturierten journald-Felder dieses Eintrags mit der vollständigen, ungekürzten Nachricht am Ende. Hilfreich bei cron- und Dienstprotokollen, wenn die ausgeführte Befehlszeile wichtig ist.",
|
||||
"fieldsIntro": "Gezeigte Felder:",
|
||||
"fields": [
|
||||
"<strong>Level</strong> — farbiges Schweregradabzeichen (INFO / WARNUNG / ERROR / KRITIKAL).",
|
||||
"<strong>Service</strong> — Kurzname der Einheit / des Prozesses, der den Eintrag ausgegeben hat.",
|
||||
"<strong>Timestamp</strong> — vollständiges Datum und Uhrzeit der Logzeile.",
|
||||
"<strong>Source</strong> — Ursprung des Eintrags (Journal, Kernel, Audit, ...).",
|
||||
"<strong>Systemd Unit</strong> — die tatsächliche <code>.service</code>/<code>.timer</code>/<code>.socket</code>-Einheit, wenn der Eintrag mit einer Einheit verknüpft war.",
|
||||
"<strong>Process ID</strong> — PID des Sendevorgangs.",
|
||||
"<strong>Hostname</strong> — nützlich, wenn Zeitschriften über Clusterknoten weitergeleitet werden.",
|
||||
"<strong>Nachricht</strong> — vollständige, ungekürzte Nachricht in einem Monospace-Block zum Kopieren."
|
||||
],
|
||||
"maxLevelStoreTitle": "Journald MaxLevelStore",
|
||||
"maxLevelStoreBody": "Bei einer neuen Proxmox-Installation verwendet journald standardmäßig <code>MaxLevelStore=warning</code> und verwirft dadurch Info-Meldungen. Monitor erkennt dies beim Start und ergänzt eine Drop-in-Datei (<code>/etc/systemd/journald.conf.d/proxmenux-loglevel.conf</code>) mit dem Grenzwert <code>info</code>. So werden Informationsmeldungen und schwerwiegendere Meldungen gespeichert; debug ist darin nicht enthalten.",
|
||||
"backupsTitle": "Sicherungen",
|
||||
"backupsBody": "Proxmox-Taskhistorie gefiltert auf Backup-bezogene Einträge. Eine Zeile pro Aufgabe (<code>vzdump</code>, PBS-Transfers, Garbage Collect, Verify) mit dem Status (OK / WARNINGS / ERROR), beteiligter Gast, Quellspeicher, Dauer und UPID. Klicken Sie auf eine Zeile, um das vollständige Aufgabenprotokoll über <code>GET /api/task-log/<upid></code> zu laden - die gleichen Daten, die Proxmox über <em>Datacenter → Tasks</em>, die auf Backups beschränkt sind, freigibt.",
|
||||
"notificationsTitle": "Benachrichtigungen",
|
||||
"notificationsBody1": "Alle von Monitor versendeten Benachrichtigungen: Telegram, Discord, E-Mail, Gotify, ntfy, Slack, Teams und Webhook. Jede Zeile zeigt Zeitstempel, Kanal, Ereignistyp, Schweregrad, erzeugten Titel und Nachrichtentext sowie bei aktivierter KI einen Schalter zum Vergleich der KI-Fassung mit dem Original.",
|
||||
"notificationsBody2": "Hier prüfen Sie, ob ein Kanal tatsächlich Nachrichten zustellt, und vergleichen die KI-Fassung mit der ursprünglichen Vorlage. Die Kanäle konfigurieren Sie auf der Detailseite <link>Benachrichtigungen</link>."
|
||||
},
|
||||
"dataCollected": {
|
||||
"heading": "Wie die Daten gesammelt werden",
|
||||
"headerSubtab": "Unterregisterkarte",
|
||||
"headerEndpoint": "Endpunkt",
|
||||
"headerSource": "Quelle",
|
||||
"rows": [
|
||||
{
|
||||
"subtab": "Protokolle (Live-Filter)",
|
||||
"endpoint": "/api/logs",
|
||||
"source": "<code>journalctl --output json --since <range></code> mit serverseitigen Filtern für Schweregrad, Unit und Suche."
|
||||
},
|
||||
{
|
||||
"subtab": "Herunterladen",
|
||||
"endpoint": "/api/logs/download",
|
||||
"source": "Dieselbe Abfrage als Klartext für grep / less."
|
||||
},
|
||||
{
|
||||
"subtab": "Sicherungen",
|
||||
"endpoint": "/api/backups",
|
||||
"source": "PVE-Taskhistorie gefiltert nach <code>vzdump</code>, PBS-Transfers, Garbage Collect, Verify."
|
||||
},
|
||||
{
|
||||
"subtab": "Details einer Sicherungsaufgabe",
|
||||
"endpoint": "/api/task-log/<upid>",
|
||||
"source": "Vollständiges Aufgabenprotokoll im Klartext aus <code>/var/log/pve/tasks/<index>/<upid></code>."
|
||||
},
|
||||
{
|
||||
"subtab": "Meldeverlauf",
|
||||
"endpoint": "/api/notifications/history",
|
||||
"source": "Die SQLite-Tabelle <code>notification_history</code> wird von der Versandschleife gefüllt."
|
||||
}
|
||||
],
|
||||
"apiIntro": "Live-Filter und Downloads sind auch über die API erreichbar:",
|
||||
"codeComment1": "# Fehler und schwerwiegendere Meldungen der letzten Stunde mit einem Suchwort",
|
||||
"codeComment2": "# Laden Sie das vollständige Journal der letzten 6 Stunden als Klartext herunter",
|
||||
"codeComment3": "# Vollständige Ausgabe einer bestimmten Aufgabe anhand ihrer UPID abrufen"
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Wohin als nächstes",
|
||||
"items": [
|
||||
{
|
||||
"label": "Gesundheitsmonitor",
|
||||
"href": "/docs/monitor/health-monitor",
|
||||
"tail": " — die Kategorie Systemprotokolle zur Erkennung dauerhafter, sprunghafter oder kaskadierender Muster."
|
||||
},
|
||||
{
|
||||
"label": "Benachrichtigungen",
|
||||
"href": "/docs/monitor/notifications",
|
||||
"tail": " — die Journalüberwachung liest dieselbe Quelle und erzeugt bei Treffern Benachrichtigungen."
|
||||
},
|
||||
{
|
||||
"label": "API-Referenz",
|
||||
"href": "/docs/monitor/api",
|
||||
"tail": " — die Endpunkte logs und task-log mit ihren Abfrageparametern."
|
||||
},
|
||||
{
|
||||
"label": "Dashboard-Index",
|
||||
"href": "/docs/monitor/dashboard",
|
||||
"tail": " — die anderen Reiter."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Monitor — Dashboard: Systemübersicht | ProxMenux-Dokumentation",
|
||||
"description": "Der Standardstartreiter von ProxMenux Monitor: vier Kennzahlenkarten (CPU, Arbeitsspeicher, aktive VMs und LXCs, Temperatur) mit Live-Aktualisierung und Minidiagramm, ein Verlaufsdiagramm und kompakte Speicher- und Netzwerkübersichten mit Links zu ihren Detailreitern."
|
||||
},
|
||||
"header": {
|
||||
"title": "Dashboard: Registerkarte Systemübersicht",
|
||||
"description": "Der Reiter, den das Dashboard standardmäßig öffnet: vier Live-Kennzahlenkarten oben, ein Verlaufsdiagramm in der Mitte und kompakte Speicher- und Netzwerkübersichten unten. Sie verwenden dieselben APIs wie die jeweiligen Detailreiter.",
|
||||
"section": "ProxMenux Monitor · Übersicht"
|
||||
},
|
||||
"readOnly": {
|
||||
"title": "Eine schreibgeschützte Momentaufnahme",
|
||||
"body": "Alle Bereiche dieses Reiters dienen der Information. Aktionen finden Sie in den verlinkten Detailreitern: Speicher zur Datenträgerverwaltung, VMs und LXCs zum Starten und Stoppen von Gästen sowie Sicherheit zur Authentifizierung."
|
||||
},
|
||||
"captureAlt": "Registerkarte Systemübersicht — vier metrische Karten (CPU, Speicher, aktive VMs, Temperatur), Knotenmetrikdiagramm und Speicher- / Netzwerkzusammenfassungskarten",
|
||||
"captureCaption": "Systemübersicht, der Standardstartreiter. Die vier Karten zeigen Live-Werte, das Diagramm zeigt den Verlauf und die beiden unteren Karten fassen Speicher und Netzwerk zusammen.",
|
||||
"topRow": {
|
||||
"heading": "Obere Reihe: Live-Kennzahlenkarten",
|
||||
"intro": "Vier Karten im 2×2-Raster auf Mobilgeräten und in einer Reihe auf dem Desktop. Jede wird alle paar Sekunden über <code>/api/system</code> aktualisiert.",
|
||||
"headerCard": "Karte",
|
||||
"headerWhat": "Was es zeigt",
|
||||
"headerSource": "Quelle",
|
||||
"rows": [
|
||||
{
|
||||
"card": "CPU-Auslastung",
|
||||
"what": "Aktueller Prozentsatz mit Fortschrittsbalken. Der Vitaldaten-Sampler aktualisiert ihn etwa jede Sekunde.",
|
||||
"source": "psutil.cpu_percent()"
|
||||
},
|
||||
{
|
||||
"card": "Arbeitsspeichernutzung",
|
||||
"what": "Belegte GB, Prozentsatz und Gesamt-GB. Der Balken zeigt den Prozentsatz.",
|
||||
"source": "psutil.virtual_memory()"
|
||||
},
|
||||
{
|
||||
"card": "Aktive VM und LXC",
|
||||
"what": "Anzahl laufender Gäste mit Aufschlüsselung nach Laufend/Gestoppt und Gesamtzahlen der VMs und LXCs in der Fußzeile.",
|
||||
"source": "/api/vms (konsolidiert)"
|
||||
},
|
||||
{
|
||||
"card": "Temperatur",
|
||||
"what": "CPU-Temperatur in °C mit Statusanzeige (kühl/warm/heiß) und einem Minidiagramm der letzten 5 Minuten im Hintergrund. Ohne Sensor erscheint <em>N/A</em>. Ein Klick öffnet die Temperaturdetails.",
|
||||
"source": "sensors / coretemp"
|
||||
}
|
||||
],
|
||||
"thresholdsTitle": "Hier angewendete Statusfarben und -schwellen",
|
||||
"thresholdsIntro": "Ringe, Balken und Minidiagramme verwenden dieselbe Einteilung: <green/> <strong>grün</strong> unter der Warnschwelle, <amber/> <strong>bernsteinfarben</strong> zwischen Warn- und kritischer Schwelle, <red/> <strong>rot</strong> ab der kritischen Schwelle. Empfohlene Standardwerte von ProxMenux :",
|
||||
"thresholdsItems": [
|
||||
"<strong>CPU-Auslastung</strong> — Warnung 85 %, kritisch 95 %.",
|
||||
"<strong>Arbeitsspeicher</strong> — Warnung 85 %, kritisch 95 %. Swap löst ebenfalls ab 5 % Nutzung den kritischen Zustand aus; ein gesunder Proxmox-Host sollte Swap nur selten verwenden.",
|
||||
"<strong>CPU-Temperatur</strong> — Warnung 80 °C, kritisch 90 °C."
|
||||
],
|
||||
"thresholdsOutro": "Alle Werte sind pro Host konfigurierbar. <link>Einstellungen → Grenzwerte der Zustandsüberwachung</link> ist die zentrale Referenz und erklärt ihre Anpassung.",
|
||||
"sparklineTitle": "Das Minidiagramm zeigt den Verlauf",
|
||||
"sparklineBody": "Die Temperaturkarte zeichnet eine 5-Minuten-Spur unter dem Wert, wobei die Linie und die Farbverlaufsfarbe dem gleichen Warning/Critical-Paar folgen, das oben dokumentiert ist. Es ist der schnellste Weg, um zu sehen, ob der Host in einem thermischen Aufstieg ist, ohne das Detail Modal zu öffnen."
|
||||
},
|
||||
"processes": {
|
||||
"heading": "Prozesse mit der höchsten CPU- und Arbeitsspeichernutzung",
|
||||
"intro": "Die Karten CPU-Auslastung und Arbeitsspeicher öffnen eine sortierbare Liste der 25 führenden Prozesse: nach CPU-Auslastung beim Öffnen über CPU, nach residentem Speicher beim Öffnen über Arbeitsspeicher.",
|
||||
"listTitle": "Der Listendialog",
|
||||
"listItems": [
|
||||
"<strong>Automatische Aktualisierung</strong> — die Liste wird bei geöffnetem Dialog alle 5 Sekunden aktualisiert. Beim Schließen enden die Abfragen.",
|
||||
"<strong>Filter</strong> — das Suchfeld grenzt die Liste nach Befehl, Benutzer oder PID ein.",
|
||||
"<strong>Inline bar</strong> — die primäre metrische Spalte zeichnet einen kleinen Balken, der auf den höchsten Wert in der gefilterten Liste skaliert ist, so dass das Ranking auch dann sichtbar bleibt, wenn kein Prozess in der Nähe von 100 % liegt.",
|
||||
"<strong>Mobiles Layout</strong> — unter 640 px werden PID und Benutzer ausgeblendet. Befehl, CPU % und Arbeitsspeicher passen so ohne horizontales Scrollen auf den Telefonbildschirm."
|
||||
],
|
||||
"captureListAlt": "Dialog Prozesse nach Arbeitsspeichernutzung — nach RSS sortierte Tabelle mit PID, Benutzer, Befehl, CPU % und Arbeitsspeicher",
|
||||
"captureListCaption": "Die Speicherkarte öffnet die nach RSS (indigo accent) sortierte Liste. Die CPU-Karte öffnet die gleiche Liste, sortiert nach CPU-Nutzung (blauer Akzent).",
|
||||
"detailTitle": "Angaben zu den einzelnen Prozessen",
|
||||
"detailIntro": "Ein Klick auf eine Zeile öffnet einen zweiten Dialog mit Live-Daten dieses Prozesses in vier Abschnitten :",
|
||||
"detailItems": [
|
||||
"<strong>Übersicht</strong> — Zustand, Elternprozess, Threadanzahl, offene Dateideskriptoren, Benutzer und Gruppe.",
|
||||
"<strong>Ressourcen</strong> — CPU %, Arbeitsspeicher %, residenter Speicher (RSS), virtuelle Größe, Swap und gesamte gelesene/geschriebene I/O-Daten.",
|
||||
"<strong>Befehl</strong> — Kurzname, vollständige Befehlszeile, Pfad der ausführbaren Datei und Arbeitsverzeichnis.",
|
||||
"<strong>Laufzeit</strong> — Startzeitpunkt und bisherige Laufzeit."
|
||||
],
|
||||
"detailRefresh": "Der Detaildialog wird alle 3 Sekunden aktualisiert. Endet der Prozess, stoppen die Abfragen und der bernsteinfarbene Hinweis <em>Dieser Prozess wurde beendet</em> erscheint. Die letzte erfasste Ansicht bleibt abgeblendet sichtbar und zeigt den Zustand vor dem Ende.",
|
||||
"captureDetailAlt": "Prozessdetaildialog — Übersicht, Ressourcen, Befehl und Laufzeit für eine PID",
|
||||
"captureDetailCaption": "Pro-Prozess-Detaildialog geöffnet von einer Listenzeile. Die Akzentfarbe stimmt mit der Karte überein, die sie geöffnet hat (blau für CPU, indigo für Memory)."
|
||||
},
|
||||
"middle": {
|
||||
"heading": "Mitte: Knotenmetrikdiagramme",
|
||||
"body1": "Unter den Karten zeigt <code>NodeMetricsCharts</code> CPU-, Arbeitsspeicher- und Datenträger-I/O-Verläufe aus dem RRD-Speicher von Proxmox über <code>/api/node/metrics</code>. Wählbar sind <em>1 Stunde / 24 Stunden / 7 Tage / 30 Tage / 1 Jahr</em>. Bei größeren Zeiträumen sinkt die Datenauflösung, damit die Anzeige flüssig bleibt.",
|
||||
"body2": "Dies sind die gleichen Graphen, die die Proxmox-Web-Benutzeroberfläche für einen Knoten darstellt, nur in das dunkle Thema des Monitors konsolidiert und mit den anderen Panels ausgerichtet."
|
||||
},
|
||||
"bottom": {
|
||||
"heading": "Untere Reihe: Speicher- und Netzwerkübersichten",
|
||||
"storageTitle": "Speicherübersichtskarte",
|
||||
"storageIntro": "Eine verdichtete Ansicht des Speicherzustands des Hosts, unterteilt in drei Blöcke:",
|
||||
"storageItems": [
|
||||
"<strong>Gesamtkapazität des Knotens</strong> — Summe aller VM-/LXC-Speicher und des lokalen Systemspeichers mit einem Verlaufsbalken für belegten und freien Platz.",
|
||||
"<strong>Gesamtkapazität / Physische Datenträger</strong> — Rohkapazität und Anzahl der erkannten physischen Datenträger.",
|
||||
"<strong>VM-/LXC-Speicher</strong> — belegter und freier Platz sowie Prozentsatz der Gastspeicher, ergänzt um deren Anzahl bei mehreren Speichern.",
|
||||
"<strong>Lokaler Speicher (System)</strong> — Root-/Systemeinhängepunkt des Hosts, getrennt vom Gastpool."
|
||||
],
|
||||
"storageDrillIn": "Details finden Sie im <link>Reiter Speicher</link>: SMART pro Datenträger, ZFS-Pools, Beobachtungsverlauf usw.",
|
||||
"networkTitle": "Netzwerkübersichtskarte",
|
||||
"networkBody1": "Die obere Zeile zeigt die Anzahl der aktiven Schnittstellen (physisch + Brücken kombiniert). Darunter befinden sich zwei Reihen farbiger Abzeichen für die Schnittstellen <code>up</code> — physische NICs in blau, Brücken in einer Sekundärfarbe. Ein Zeitrahmen-Selektor oben rechts (1 Stunde / 24 Stunden / 7 Tage / 30 Tage / 1 Jahr) steuert ein kleines RX / TX-Verkehrsdiagramm.",
|
||||
"networkBody2": "Details pro Schnittstelle (IP/MAC, RRD-Diagramm, Bridge-Mitglieder, Bond-Modus usw.) stehen im <link>Reiter Netzwerk</link>."
|
||||
},
|
||||
"refresh": {
|
||||
"heading": "Aktualisierungsmodell",
|
||||
"intro": "Jeder Bereich verwaltet seinen Ladezustand (<code>loadingStates.cpu</code>, <code>loadingStates.storage</code>, …), damit eine langsame Quelle die anderen nicht blockiert. Beim Laden erscheint ein pulsierender Platzhalter. Fehler werden abgefangen; ohne Temperatursensor zeigt die Karte etwa <em>N/A</em> statt eines Fehlers.",
|
||||
"items": [
|
||||
"<strong>Obere Kennzahlenkarten</strong> — Aktualisierung etwa alle 5 Sekunden. CPU und Temperatur erhalten zusätzlich jede Sekunde Daten vom Vitaldaten-Sampler.",
|
||||
"<strong>Knotenmetrikdiagramm</strong> — lädt beim Öffnen sowie bei Änderung von Zeitraum oder Sprache. Erforderliche Wiederholungsversuche erfolgen nach 60 Sekunden.",
|
||||
"<strong>Speicherkarte</strong> — Aktualisierung etwa alle 60 Sekunden. SMART-Daten bleiben länger im Cache; der Speicherreiter fordert bei Bedarf eine neue Abfrage an.",
|
||||
"<strong>Netzwerkkarte</strong> — Zusammenfassung alle 59 Sekunden und Verkehrsdiagramm alle 60 Sekunden für den gewählten Zeitraum.",
|
||||
"<strong>Manuell aktualisieren</strong> — die Schaltfläche Aktualisieren im Kopf lädt alle Bereiche sofort neu."
|
||||
]
|
||||
},
|
||||
"dataCollected": {
|
||||
"heading": "Wie die Daten gesammelt werden",
|
||||
"headerCard": "Karte",
|
||||
"headerEndpoint": "Endpunkt",
|
||||
"headerSource": "Quelle",
|
||||
"rows": [
|
||||
{
|
||||
"card": "Statusanzeige im Kopf",
|
||||
"endpoint": "/api/health",
|
||||
"source": "Der zwischengespeicherte Gesamtstatus, der vom Health Monitor in jedem Zyklus erzeugt wird."
|
||||
},
|
||||
{
|
||||
"card": "CPU / RAM / Swap / Betriebszeit",
|
||||
"endpoint": "/api/system",
|
||||
"source": "<code>/proc/stat</code>, <code>/proc/meminfo</code>, <code>/proc/uptime</code> mit Kurzfenster-CPU-Probenahme."
|
||||
},
|
||||
{
|
||||
"card": "Host-Info (Kernel, BIOS, Distro)",
|
||||
"endpoint": "/api/info",
|
||||
"source": "<code>uname -a</code>, <code>dmidecode</code>, PVE-Version. Pro Prozess zwischengespeichert."
|
||||
},
|
||||
{
|
||||
"card": "Speicher / Netzwerk / VMs Karten",
|
||||
"endpoint": "/api/storage/summary, /api/network/summary, /api/vms",
|
||||
"source": "Siehe die dedizierten Tabs für jeden. Die Kopfkarten zeigen eine verdichtete Ansicht von den gleichen Endpunkten."
|
||||
},
|
||||
{
|
||||
"card": "Aktualisierungsintervall",
|
||||
"endpoint": "—",
|
||||
"source": "Systemdaten alle 5 Sekunden; Speicher, VMs und Netzwerkzusammenfassung alle 59 Sekunden. Aktualisieren im Kopf lädt alle Bereiche sofort neu."
|
||||
}
|
||||
],
|
||||
"codeComment1": "# Aufruf für die Statusanzeige im Kopf",
|
||||
"codeComment2": "# öffentlich, kein Token",
|
||||
"codeComment3": "# Authentifizierter Snapshot, der von den Karten verwendet wird"
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Wohin als nächstes",
|
||||
"items": [
|
||||
{
|
||||
"label": "Gesundheitsmonitor",
|
||||
"href": "/docs/monitor/health-monitor",
|
||||
"tail": " — der Dialog hinter der Statusanzeige im Kopf: zehn Kategorien sowie Ausblenden und Unterdrücken von Meldungen."
|
||||
},
|
||||
{
|
||||
"label": "API-Referenz",
|
||||
"href": "/docs/monitor/api",
|
||||
"tail": " — die Endpunkte system, info und health."
|
||||
},
|
||||
{
|
||||
"label": "Benachrichtigungen",
|
||||
"href": "/docs/monitor/notifications",
|
||||
"tail": "— wie sich die gleichen Status in Telegram / Discord / E-Mail-Nachrichten verwandeln."
|
||||
},
|
||||
{
|
||||
"label": "Dashboard-Index",
|
||||
"href": "/docs/monitor/dashboard",
|
||||
"tail": " — die übrigen Dashboard-Reiter auf einen Blick."
|
||||
},
|
||||
{
|
||||
"label": "Architektur",
|
||||
"href": "/docs/monitor/architecture",
|
||||
"tail": " — die Hintergrundthreads und APIs hinter dieser Ansicht."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Monitor — Dashboard: Terminal | ProxMenux-Dokumentation",
|
||||
"description": "Browser-Shell auf dem Proxmox-Host: bis zu 4 Terminals in Rasteransicht, Tastaturhilfen für Mobilgeräte (ESC, TAB, Pfeile, Ctrl-Kombinationen), integrierte Befehlsübersicht mit cheat.sh und JWT-Schutz."
|
||||
},
|
||||
"header": {
|
||||
"title": "Dashboard: Terminal Tab",
|
||||
"description": "Eine echte Shell-Sitzung auf dem Proxmox-Host im Browser: bis zu vier Terminals gleichzeitig, Tastaturhilfen für Mobilgeräte und eine integrierte Befehlsübersicht im selben Design wie das übrige Dashboard.",
|
||||
"section": "ProxMenux Monitor · Übersicht"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Ein echter PTY im Browser",
|
||||
"body": "Das Terminal legt über <code>flask_terminal_routes</code> eine serverseitige PTY an, verbindet sie per WebSocket mit <code>xterm.js</code> im Browser und läuft als <code>root</code>, dem Benutzer der systemd-Unit. Wie bei <code>ssh root@<host></code> stehen <code>vim</code>, <code>tmux</code>, ncurses-Werkzeuge und die Proxmox-CLIs (<code>qm</code>, <code>pct</code>, <code>pvesh</code>, <code>pvecm</code>) zur Verfügung. Jede PTY exportiert <code>PROXMENUX_TERMINAL=monitor</code>. Alle untergeordneten <code>bash</code>-Prozesse, auch ein späterer Start von <code>menu</code>, erben die Variable, damit ProxMenux den Browserterminal-Kontext erkennt."
|
||||
},
|
||||
"singleAlt": "ProxMenux Monitor Terminal Registerkarte — Einzelterminalsitzung mit Fastfetch-Systemzusammenfassung beim Login",
|
||||
"singleCaption": "Ein Host-Terminal offen — die obige Symbolleiste zeigt die Anzahl (<em>1 / 4 Terminals</em>), <em> + New</em>, <em>Search</em>, <em>Clear</em> und <em>Close</em>. Die mobilen Tastaturhelfer erscheinen unter dem Terminal auf Touch-Geräten.",
|
||||
"target": {
|
||||
"heading": "Verbindungsziel",
|
||||
"body1": "Die Registerkarte Terminal öffnet eine Shell auf dem <strong>Proxmox-Host selbst</strong> - die gleiche Anmeldung, die Sie über SSH erhalten würden. Jeder Tab öffnet ein brandneues Host-Terminal.",
|
||||
"body2": "Um einen <strong>LXC-Container</strong> aus dem Browser zu erreichen, verwenden Sie die dedizierte <em>Console</em>-Taste auf jeder laufenden CT-Karte in der <link>VMs & LXCs tab</link>. Es öffnet ein Modal, auf dem <code>pct enter <vmid></code> ausgeführt wird, und verwendet die gleiche mobilfreundliche Symbolleiste, die unten beschrieben wird."
|
||||
},
|
||||
"menuGuard": {
|
||||
"heading": "Schutz bei der Selbstaktualisierung von menu in diesem Terminal",
|
||||
"body1": "Bei der Selbstaktualisierung ersetzt <code>menu</code> nach Bestätigung seinen Skriptbaum und lädt sich neu. Über SSH oder die Proxmox-Konsole funktioniert das, im Browser würde dabei jedoch die PTY der Shell beendet und der WebSocket getrennt. Deshalb lesen <code>check_updates_stable</code>, <code>check_updates_beta</code> und <code>apply_release_channel</code> die Variable <code>PROXMENUX_TERMINAL</code> und erkennen den Monitor-Kontext.",
|
||||
"body2": "Dann wird der Ja/Nein-Dialog durch einen Hinweis mit dem offiziellen Installationsbefehl ersetzt: <code>bash -c \"$(wget -qLO - https://raw.githubusercontent.com/MacRimi/ProxMenux/main/install_proxmenux.sh)\"</code> für Stable bzw. die entsprechende URL mit <code>install_proxmenux_beta.sh</code> für Beta. Die Aktualisierung wird über SSH oder die Proxmox-Hostkonsole ausgeführt; im Browserterminal lesen und bestätigen Sie nur den Hinweis."
|
||||
},
|
||||
"fourTerminals": {
|
||||
"heading": "Bis zu vier Terminals gleichzeitig",
|
||||
"intro": "Mit der Registerkarte können Sie bis zu vier Host-Terminals gleichzeitig öffnen. Jeder bekommt seinen eigenen PTY und seinen eigenen WebSocket - es sind völlig unabhängige Sitzungen. Zwei Layouts wechseln mit den Icons neben der Schaltfläche \"Neu\":",
|
||||
"items": [
|
||||
"<strong>Reiteransicht</strong> — ein sichtbares Terminal, die übrigen als benannte Reiter oben (<em>Terminal 1</em>, <em>Terminal 2</em>…). Gut für eine Aufgabe, während die anderen im Hintergrund laufen.",
|
||||
"<strong>Rasteransicht</strong> — alle offenen Terminals gleichzeitig in einem 2×2-Raster. So können Sie <code>htop</code> und <code>iftop</code> beobachten und im dritten Terminal bearbeiten, ohne die Ansicht zu wechseln."
|
||||
],
|
||||
"outro": "Die Werkzeugleiste zeigt die Anzahl (<em>1/4 Terminals</em>, <em>4/4 Terminals</em>). <strong>+ Neu</strong> öffnet einen Reiter, das kleine <code>×</code> in dessen Kopf schließt ihn. Die große rote Schaltfläche <strong>Schließen</strong> oben beendet alle Terminals."
|
||||
},
|
||||
"gridAlt": "ProxMenux Monitor Terminal Registerkarte — Rasteransicht mit vier Host-Terminals mit ls, Netzwerkkonfiguration, iftop und ProxMenux Hauptmenü nebeneinander",
|
||||
"gridCaption": "Rasteransicht (4 / 4 Terminals) — vier unabhängige Host-PTYs parallel mit Verzeichnisliste, <code>/etc/network/interfaces</code>, <code>iftop</code> und ProxMenux-Hauptmenü. Der Layout-Schalter in der Werkzeugleiste wechselt zwischen Raster und Reitern.",
|
||||
"keyboard": {
|
||||
"heading": "Tastaturhilfen für Mobilgeräte",
|
||||
"intro": "Telefon- und Tablet-Tastaturen bieten meist kein ESC, TAB, keine Pfeiltasten oder Tastenkombinationen mit Modifikatoren. Diese werden für <code>vim</code>, <code>nano</code>, <code>htop</code> und TUI-Menüs benötigt. Der Terminalreiter zeigt daher auf kleinen oder berührungsempfindlichen Geräten eine Reihe von Touch-Schaltflächen darunter an :",
|
||||
"headerButton": "Schaltfläche",
|
||||
"headerSends": "Sendet",
|
||||
"headerUse": "Typische Verwendung",
|
||||
"rows": [
|
||||
{
|
||||
"button": "ESC",
|
||||
"sends": "\\x1b",
|
||||
"use": "Einfügemodus in <code>vim</code> verlassen, einen TUI-Dialog abbrechen, eine Suche beenden."
|
||||
},
|
||||
{
|
||||
"button": "TAB",
|
||||
"sends": "\\t",
|
||||
"use": "Pfadvervollständigung und Feldnavigation in dialog/whiptail."
|
||||
},
|
||||
{
|
||||
"button": "↑ ↓ ← →",
|
||||
"sends": "\\x1bO[ABCD]",
|
||||
"use": "Shell-Historie, Cursorbewegung, Menünavigation."
|
||||
},
|
||||
{
|
||||
"button": "↵ Eingabetaste",
|
||||
"sends": "\\r",
|
||||
"use": "Bestätigen. Manche Bildschirmtastaturen ersetzen Enter durch Los/Fertig; diese Schaltfläche ist eindeutig."
|
||||
},
|
||||
{
|
||||
"button": "Ctrl ▾",
|
||||
"sends": "Auswahlliste",
|
||||
"useRich": true
|
||||
}
|
||||
],
|
||||
"ctrlIntro": "Drei Kontrollsequenzen:",
|
||||
"ctrlItems": [
|
||||
"<code>Ctrl+C</code> — laufenden Befehl abbrechen oder unterbrechen (<code>\\x03</code>).",
|
||||
"<code>Ctrl+X</code> — <code>nano</code> beenden (<code>\\x18</code>).",
|
||||
"<code>Ctrl+R</code> — Rückwärtssuche im bash-Verlauf (<code>\\x12</code>)."
|
||||
],
|
||||
"modalTitle": "Dieselbe Werkzeugleiste im LXC-Konsolendialog",
|
||||
"modalBody": "Die über <link>VMs und LXCs → Konsole</link> gestartete Containerkonsole zeigt dieselben Tastaturhilfen unter dem Dialog. Beim Verbinden gibt sie automatisch <code>pct enter <vmid></code> ein, sodass Sie direkt im Container landen."
|
||||
},
|
||||
"lxcAlt": "ProxMenux Monitor — LXC-Konsolendialog, Terminal: ubuntu (ID: 103), mit derselben mobilen Werkzeugleiste (ESC, TAB, Pfeile, Enter, Ctrl) darunter",
|
||||
"lxcCaption": "LXC-Konsolendialog, geöffnet über <em>VMs und LXCs → Konsole</em>. Der Kopf zeigt den Zielcontainer (<em>Terminal: ubuntu (ID: 103)</em>), darunter erscheint dieselbe Touch-Werkzeugleiste.",
|
||||
"search": {
|
||||
"heading": "Befehle suchen — integrierte Kurzübersicht",
|
||||
"intro": "Die blaue Schaltfläche <strong>Suchen</strong> öffnet eine fehlertolerante Befehlssuche. Geben Sie einige Buchstaben eines Linux- oder Proxmox-Befehls (<code>ls</code>, <code>tar</code>, <code>qm</code>, <code>pct</code>, <code>zpool</code>, <code>systemctl</code>…) ein. Der Dialog zeigt Beispiele mit <em>An aktives Terminal senden</em>. So müssen Sie zur Suche nach einer Option keinen anderen Browserreiter öffnen.",
|
||||
"modalAlt": "ProxMenux Monitor — Dialog Befehle suchen mit fehlertoleranter Suche nach Linux- und Proxmox-Befehlen über cheat.sh und mehreren ls-Beispielen",
|
||||
"modalCaption": "Befehlssuche nach <code>ls</code> — jedes Ergebnis zeigt Befehl, Beschreibung und einen kleinen Sendepfeil zum aktiven Terminal. Unten rechts steht die Datenquelle (<em>Bereitgestellt von cheat.sh</em>).",
|
||||
"aboutLabel": "Über cheat.sh:",
|
||||
"aboutBody": "ist eine quelloffene, von der Community gepflegte Kurzübersicht mit kurzen Praxisbeispielen für Hunderte von Linux-Befehlen, Administrationswerkzeugen und Programmiersprachen. Ursprünglich für <code>curl cheat.sh/<command></code> im Terminal entwickelt, ist sie auch im Browser erreichbar. ProxMenux Monitor leitet die Abfragen serverseitig weiter, damit der Dialog denselben Ursprung wie das Dashboard verwendet.",
|
||||
"headerSource": "Quelle",
|
||||
"headerWhen": "Wenn es verwendet wird",
|
||||
"headerWhat": "Was du siehst",
|
||||
"onlineLabel": "(online)",
|
||||
"onlineWhen": "Wenn der Host einen Internetzugang hat und der cheat.sh-Proxy antwortet.",
|
||||
"onlineWhat": "Mehrere Praxisbeispiele pro Befehl mit einer Beschreibung darüber. Der Statuspunkt im Dialogkopf ist <green>grün</green>.",
|
||||
"fallbackLabel": "Lokale Ersatzliste",
|
||||
"fallbackWhen": "Wenn cheat.sh nicht erreichbar ist (Offline-Host, restriktive Firewall, cheat.sh-Ausfall).",
|
||||
"fallbackWhat": "Eine mitgelieferte Liste gängiger Linux- und Proxmox-Befehle. Kleinerer Katalog, aber immer verfügbar. Der Statuspunkt ist <red>rot</red>.",
|
||||
"sendingNote": "<strong>So funktioniert das Senden</strong>: Der kleine Pfeil neben dem Ergebnis sendet den Befehlstext an das aktive Terminal: den gewählten Reiter oder das zuletzt angeklickte Terminal im Raster. Der Dialog schließt sich automatisch, sodass Sie direkt Enter drücken können."
|
||||
},
|
||||
"auth": {
|
||||
"heading": "Authentifizierung",
|
||||
"items": [
|
||||
"Der Browser fordert zunächst über <code>POST /api/terminal/ticket</code> mit JWT im <code>Authorization</code>-Header ein Einmalticket an. Dieses wird beim Öffnen des WebSockets übergeben und läuft nach 5 Sekunden ab. Bei aktivierter Authentifizierung wird eine Verbindung ohne gültiges Ticket geschlossen, bevor eine PTY angelegt wird.",
|
||||
"Bei einem Reverse Proxy muss dieser WebSocket-Upgrades weiterleiten. Beispiele für Nginx / Caddy / Traefik stehen unter <link>Zugriff und Authentifizierung</link>."
|
||||
]
|
||||
},
|
||||
"clipboard": {
|
||||
"heading": "Zwischenablage, Scrollback und Größenänderung",
|
||||
"items": [
|
||||
"<strong>Kopieren und Einfügen</strong> — über die Zwischenablage des Browsers. Text mit Maus oder Trackpad auswählen und das Systemtastenkürzel verwenden (<code>Cmd+C</code> unter macOS, <code>Ctrl+Shift+C</code> unter Linux/Windows). Linux-Desktops unterstützen auch Einfügen per Mittelklick.",
|
||||
"<strong>Scrollback</strong> — mit Mausrad oder Zwei-Finger-Geste blättern. xterm.js hält die letzten mehreren Tausend Zeilen im Speicher.",
|
||||
"<strong>Größe ändern</strong> — bei einer Größenänderung des Dashboardbereichs wird die PTY-Fenstergröße angepasst, damit <code>htop</code> und <code>vim</code> korrekt dargestellt werden.",
|
||||
"<strong>Wiederverbinden beim Zurückkehren</strong> — ein App-Wechsel auf Telefon oder Tablet, etwa dem iPad, kann den WebSocket trennen. Der Terminalreiter erkennt die Sichtbarkeitsänderung und verbindet sich beim Zurückkehren automatisch neu, mit 15 Sekunden Zeitlimit für langsame VPN-Verbindungen."
|
||||
]
|
||||
},
|
||||
"disconnect": {
|
||||
"heading": "Ursachen für Verbindungsabbrüche",
|
||||
"intro": "Die häufigsten Gründe, warum eine Sitzung endet und was mit jedem zu tun ist:",
|
||||
"headerCause": "Ursache",
|
||||
"headerFix": "Lösung",
|
||||
"rows": [
|
||||
{
|
||||
"cause": "Sitzungs-JWT beim Öffnen oder Wiederverbinden abgelaufen (24 Stunden).",
|
||||
"fix": "Aktualisieren Sie die Seite und melden Sie sich erneut an. Das Terminal ist nicht für unbeaufsichtigte Sitzungen konzipiert, so dass die JWT-Lebensdauer dem regulären Dashboard-Login entspricht."
|
||||
},
|
||||
{
|
||||
"cause": "Inaktivitätszeitlimit des Reverse Proxys.",
|
||||
"fix": "Erhöhen Sie <code>proxy_read_timeout</code> in Nginx oder den entsprechenden Wert in Caddy / Traefik (Beispiele unter Zugriff und Authentifizierung)."
|
||||
},
|
||||
{
|
||||
"cause": "Telefon oder Tablet im Ruhezustand.",
|
||||
"fix": "Beim Aufwecken des Geräts verbindet sich der Reiter automatisch neu (15 Sekunden Zeitlimit für VPN-Verbindungen). Falls nicht, laden Sie ihn neu."
|
||||
},
|
||||
{
|
||||
"cause": "Service-Neustart auf dem Host.",
|
||||
"fix": "Jeder Neustart von <code>proxmenux-monitor.service</code> beendet alle PTYs. Öffnen Sie neue Terminals, sobald das Dashboard fertig geladen ist."
|
||||
}
|
||||
]
|
||||
},
|
||||
"warning": {
|
||||
"title": "Das Terminal ist eine Root-Shell auf dem Host",
|
||||
"body": "Das Terminal übernimmt den Benutzer der systemd-Unit (<code>root</code>) und hat volle Rechte auf dem Proxmox-Host. Konfigurieren Sie Benutzername, Passwort und 2FA unter <authLink>Zugriff und Authentifizierung</authLink>, bevor Sie Zugriffe außerhalb des lokalen Netzes erlauben. Bei deaktivierter Authentifizierung kann jeder mit Zugriff auf Port 8008 ohne weitere Rückfragen oder SSH-Zugangsdaten eine Root-Shell öffnen. Nutzen Sie extern <gatewayLink>Secure Gateway</gatewayLink> (Tailscale) oder einen HTTPS-Reverse-Proxy, statt den Port im Internet freizugeben."
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Wohin als nächstes",
|
||||
"items": [
|
||||
{
|
||||
"label": "Zugriff und Authentifizierung",
|
||||
"href": "/docs/monitor/access-auth",
|
||||
"tail": " — Reverse-Proxy-Beispiele mit den für das Terminal erforderlichen WebSocket-Upgrade-Zeilen."
|
||||
},
|
||||
{
|
||||
"label": "Architektur",
|
||||
"href": "/docs/monitor/architecture",
|
||||
"tail": " — WebSocket-Transport (HTTP über flask-sock bzw. HTTPS / WSS über gevent)."
|
||||
},
|
||||
{
|
||||
"label": "API-Referenz",
|
||||
"href": "/docs/monitor/api",
|
||||
"tail": " — die WebSocket-Endpunkte /ws/terminal und /ws/script/<sid> neben der übrigen API."
|
||||
},
|
||||
{
|
||||
"label": "Integrationen → Secure Gateway",
|
||||
"href": "/docs/monitor/integrations",
|
||||
"tail": "- wenn Sie einen Terminalzugriff von außerhalb des LAN wünschen, ohne den Port 8008 freizulegen."
|
||||
},
|
||||
{
|
||||
"label": "Dashboard-Index",
|
||||
"href": "/docs/monitor/dashboard",
|
||||
"tail": " — die anderen Reiter."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,245 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "LXC-App-Reiter: Erkennung, Links und Versionsverfolgung | ProxMenux",
|
||||
"description": "Entdecken und registrieren Sie LXC-Anwendungen, erstellen Sie Weblinks und verfolgen Sie optional installierte und verfügbare Versionen."
|
||||
},
|
||||
"header": {
|
||||
"title": "LXC-App-Reiter: Erkennung, Links und Versionsverfolgung",
|
||||
"description": "Geben Sie jeder LXC-Anwendung eine dauerhafte Identität, einen Webzugang und einen optionalen Versionsnachweis, ohne die Registrierung an Updates zu koppeln."
|
||||
},
|
||||
"intro": {
|
||||
"p1": "Die Registerkarte <strong>App</strong> zeichnet auf, welche Anwendungen zu einer LXC gehören. Eine Registrierung kann nur einen Namen und einen Weblink enthalten oder auch einen Detektor für installierte Versionen und eine Upstream-Quelle enthalten.",
|
||||
"p2": "Das Verfahren zur Softwareänderung wird separat im <link>Reiter Aktualisierungen</link> konfiguriert. Das Speichern einer App startet niemals einen Installer oder Updater.",
|
||||
"callout": "Registrierung, Versionsverfolgung und Aktualisierung sind drei unabhängige Funktionen. Jeder kann verwendet werden, ohne die anderen beiden zu benötigen.",
|
||||
"dashboardTitle": "Von der Registrierung bis zum Apps Launcher",
|
||||
"dashboard": "Jeder hier gespeicherte Weblink erscheint auch als Karte im übergeordneten <appsLink>Apps-Reiter</appsLink>. Diese LXC-Seite bleibt die maßgebliche Stelle für Name, Logo, Links und Versionsverfolgung."
|
||||
},
|
||||
"overview": {
|
||||
"heading": "Was ein Anwendungsdatensatz bietet",
|
||||
"lead": "Ein einzelner gespeicherter Datensatz kann Folgendes umfassen:",
|
||||
"items": [
|
||||
"Anzeigename und ein an das Farbschema angepasstes Logo.",
|
||||
"Ein oder mehrere anklickbare Weblinks, die aus der LXC-Adresse, dem Schema und dem gespeicherten Port erstellt wurden.",
|
||||
"Ein optionaler Detektor für die derzeit im LXC installierte Version.",
|
||||
"Eine optionale GitHub, HTTP JSON oder Docker Hub-Quelle für die neueste verfügbare Version.",
|
||||
"Benachrichtigungen über neue Versionen und Einstellungen zur Aufnahme in den Aktualisierungszähler pro App.",
|
||||
"Ein entsprechender Abschnitt auf der Registerkarte Updates, auch wenn die Versionsverfolgung deaktiviert ist."
|
||||
]
|
||||
},
|
||||
"discovery": {
|
||||
"heading": "Zwischengespeicherte Erkennung und Anwendungen suchen",
|
||||
"lead": "Anwendungsvorschläge sind Teil des per-LXC modalen Cache. Der Start-Scan bereitet sie im Hintergrund vor, so dass das Öffnen des App-Tabs zwischengespeicherte Ergebnisse sofort anzeigen kann.",
|
||||
"items": [
|
||||
"Das Öffnen des App-Reiters startet <strong>keinen</strong> neuen Katalogscan und fragt den LXC nicht wiederholt ab.",
|
||||
"<strong>Anwendungen suchen</strong> startet ausdrücklich eine neue Erkennung für diesen LXC. Verwenden Sie dies nach einer Softwareinstallation bei bereits laufendem ProxMenux.",
|
||||
"Die vorherige Liste bleibt sichtbar, während der explizite Scan ausgeführt wird. Neue Übereinstimmungen werden hinzugefügt, wenn sie beendet sind.",
|
||||
"Wird keine neue Übereinstimmung gefunden, steht das Ergebnis neben den Aktionen. <strong>Anwendung registrieren</strong> bleibt für manuelle Einträge verfügbar.",
|
||||
"Das Speichern, Entfernen oder Wiederherstellen einer App aktualisiert den gleichen Cache sofort. Das Starten oder Wiederherstellen eines LXC aktualisiert nur diesen Gast durch sein bestehendes Lebenszyklusereignis."
|
||||
],
|
||||
"callout": "Ein Vorschlag ist keine Registrierung. Er bleibt schreibgeschützt, bis <strong>Registrieren</strong> gewählt und das Formular gespeichert wird."
|
||||
},
|
||||
"registration": {
|
||||
"heading": "Eine Anwendung registrieren",
|
||||
"lead": "Ein erkannter Vorschlag und eine manuelle Aufzeichnung verwenden denselben Editor:",
|
||||
"steps": [
|
||||
"Klicken Sie bei einem Vorschlag auf <strong>Registrieren</strong> oder auf <strong>Anwendung registrieren</strong>, um im Katalog zu wählen oder einen eigenen Namen einzugeben.",
|
||||
"Überprüfen Sie den Namen und das Logo, die im Katalog vorgeschlagen werden.",
|
||||
"Ergänzen Sie die benötigten Weblinks. Erkannte lauschende Ports werden als Vorschläge angeboten, aber nicht automatisch gespeichert.",
|
||||
"Lassen Sie <strong>Upstream-Version verfolgen</strong> für reine Link-Datensätze deaktiviert oder aktivieren Sie es und prüfen Sie den Detektor für die installierte Version sowie die Upstream-Quelle.",
|
||||
"Bei aktivierter Versionsverfolgung <strong>Detektor testen</strong> verwenden und danach speichern.",
|
||||
"Nach der Bearbeitung <strong>Fertig</strong> wählen. App und Aktualisierungen verwenden denselben aktualisierten Cache-Datensatz."
|
||||
]
|
||||
},
|
||||
"catalog": {
|
||||
"heading": "Kataloggestützte Registrierung",
|
||||
"lead": "Der Katalog liefert Standardwerte, aber der gespeicherte Datensatz bleibt editierbar.",
|
||||
"items": [
|
||||
"Suchergebnisse können den kanonischen Namen, das Logo und die gemeinsamen Web-Ports vorfüllen.",
|
||||
"Bekannte Versionsdetektoren basieren auf echten Paketnamen, Binärdateien, Dateien, Python-Distributionen, OCI-Beschriftungen oder Befehlen und nicht auf einer universellen <code>/root/.app</code>-Annahme.",
|
||||
"Verifizierte Laufzeitüberschreibungen haben Vorrang, wenn eine Installation einen Pfad verwendet, der sich von den Metadaten des Installationsprogramms unterscheidet.",
|
||||
"Proxmox VE Helper-Scripts-Marker wie <code>/root/.slug</code> bleiben ein Kompatibilitätssignal für neuere Helferinstallationen, nicht der einzige Detektor.",
|
||||
"Alle vorgeschlagenen Werte sind vor dem Speichern bearbeitbar, um offizielle Installationsprogramme und manuelle Installationen abzudecken."
|
||||
]
|
||||
},
|
||||
"docker": {
|
||||
"heading": "Wie Docker LXCs dargestellt sind",
|
||||
"lead": "Für einen LXC, dessen primäre Plattform Docker ist, ist <strong>Docker</strong> die auf LXC registrierte Anwendung.",
|
||||
"items": [
|
||||
"Eine containerisierte Arbeitslast wie Portainer, Frigate oder Vaultwarden wird nicht als unabhängige native LXC-Anwendung vorgeschlagen.",
|
||||
"Docker-Dienste mit veröffentlichten TCP-Ports werden im Docker-Editor als optionale Weblinks angeboten.",
|
||||
"Jeder vorgeschlagene Link zeigt den Service, Host-Port und Container-Port an. Nur Links, die ein Webinterface bereitstellen, sollten gespeichert werden.",
|
||||
"Das globale Docker-Logo wird verwendet, wenn ein Link kein bestimmtes Logo hat. Ein Per-Link-Logo überschreibt es, wenn eines konfiguriert ist.",
|
||||
"Nachdem Docker registriert wurde, werden Docker Engine und Bildaktualisierungen zusammen im Abschnitt auf der Registerkarte Updates angezeigt."
|
||||
],
|
||||
"callout": "Diese Struktur verhindert, dass ein Docker-Workload wie eine direkt im LXC installierte Software aussieht, während gleichzeitig schnelle Verbindungen zu seinen Schnittstellen erhalten bleiben."
|
||||
},
|
||||
"webLinks": {
|
||||
"heading": "Weblinks und Logos",
|
||||
"lead": "Weblinks funktionieren mit oder ohne Versionsverfolgung.",
|
||||
"items": [
|
||||
"Jeder Link speichert ein Schema, einen Port, eine optionale Beschreibung und eine optionale Logo-URL.",
|
||||
"Die angezeigte URL verwendet die aktuelle Adresse, die bereits für den LXC erkannt wurde; die Adresse wird nicht in jedem App-Record dupliziert.",
|
||||
"Ein Link ohne eigenes Logo fällt auf das App-Level-Logo zurück.",
|
||||
"Mehrere Links können eine Admin-Schnittstelle, API, eine sekundäre Benutzeroberfläche oder einen anderen Endpunkt derselben App darstellen.",
|
||||
"Eine nur gespeicherte Link-App wird auch in Updates angezeigt, wo ein benutzerdefinierter Updater später konfiguriert werden kann."
|
||||
]
|
||||
},
|
||||
"tracking": {
|
||||
"heading": "Optionale Versionsverfolgung",
|
||||
"lead": "Die Versionsverfolgung kombiniert einen Detektor für die installierte Version mit einer optionalen Upstream-Quelle. Beide Seiten werden unabhängig geprüft.",
|
||||
"colMethod": "Methode zur Ermittlung der installierten Version",
|
||||
"colUse": "Verwendung",
|
||||
"detectorRows": [
|
||||
{
|
||||
"method": "dpkg / apk",
|
||||
"use": "Lies die installierte Paketversion aus Debian, Ubuntu oder Alpine Paket-Metadaten."
|
||||
},
|
||||
{
|
||||
"method": "binary",
|
||||
"use": "Führt einen absoluten binären Pfad oder einen Befehlsnamen mit Versionsargumenten aus."
|
||||
},
|
||||
{
|
||||
"method": "file + regex",
|
||||
"use": "Lies eine echte Datei und extrahiert die Version mit einer Capture-Gruppe."
|
||||
},
|
||||
{
|
||||
"method": "docker label / docker exec",
|
||||
"use": "Lesen Sie ein OCI-Versionslabel oder führen Sie einen Versionsbefehl in einem Docker-Container aus."
|
||||
},
|
||||
{
|
||||
"method": "python distribution",
|
||||
"use": "Verwendet importlib.metadata über den ausgewählten Python-Interpreter."
|
||||
},
|
||||
{
|
||||
"method": "command",
|
||||
"use": "Führt einen fortgeschrittenen Befehl im argv-Format ohne Shell aus und extrahiert die Version aus seiner Ausgabe."
|
||||
},
|
||||
{
|
||||
"method": "manual",
|
||||
"use": "Speichert eine manuell eingegebene Version; sie muss nach dem Upgrade der App geändert werden."
|
||||
},
|
||||
{
|
||||
"method": "OCI image",
|
||||
"use": "Für Container aus OCI manager Apps. Liest App- und Image-Versionen aus dem Installationsdatensatz und vergleicht den installierten Digest mit dem veröffentlichten Registry-Digest. Keine Konfiguration erforderlich."
|
||||
}
|
||||
],
|
||||
"sourcesHeading": "Quellen für die verfügbare Version",
|
||||
"sources": [
|
||||
"<strong>GitHub-Repository</strong>: neueste Version oder Tag aus einem öffentlichen <code>owner/name</code>-Repository.",
|
||||
"<strong>HTTP JSON</strong>: ein öffentlicher Endpunkt plus ein gepunkteter Pfad wie <code>data.version</code> oder <code>releases[0].tag_name</code>.",
|
||||
"<strong>Docker Hub</strong>: versionierte Tags, die durch einen regulären Ausdruck gefiltert werden. Eine Live-Vorschau zeigt echte übereinstimmende Tags, bevor der Datensatz gespeichert wird.",
|
||||
"Veränderliche Tags wie <code>latest</code>, <code>stable</code> oder <code>lts</code> enthalten keine Version. Verfolgen Sie solche Images anhand ihres Digests über die Docker-Image-Aktualisierungen."
|
||||
],
|
||||
"regexHeading": "Schreiben des Capture-Ausdrucks",
|
||||
"regexLead": "Der reguläre Ausdruck muss die Version in seiner <strong>ersten Erfassungsgruppe</strong> zurückgeben.",
|
||||
"regexRules": [
|
||||
"Passen Sie den Text an, der von der ausgewählten Binär-, Datei-, Befehls- oder Tag-Quelle ausgegeben wird; raten Sie keinen generischen Pfad.",
|
||||
"Schreiben Sie literale Punkte als <code>\\.</code>, damit sie nicht für beliebige Zeichen stehen.",
|
||||
"Lassen Sie einen führenden <code>v</code> nur zu, wenn die Quelle ihn enthalten kann.",
|
||||
"Fügen Sie Suffixe wie Pre-Release oder Distro-Revisionen nur dann hinzu, wenn sie für den Vergleich aussagekräftig sind.",
|
||||
"Vor dem Speichern <strong>Detektor testen</strong> verwenden und prüfen, ob die angezeigte installierte Version zum LXC passt."
|
||||
],
|
||||
"regexExampleLead": "Gemeinsame semantische Versionserfassung:",
|
||||
"regexExample": "v?(\\d+\\.\\d+\\.\\d+)",
|
||||
"regexCallout": "Ein erfolgreiches Regex-Match ist kein Beweis dafür, dass der Detektorpfad korrekt ist. Der Pfad oder das Paket muss auch in der registrierten realen Anlage vorhanden sein."
|
||||
},
|
||||
"updater": {
|
||||
"heading": "Versionsverfolgung und -aktualisierung sind unabhängig",
|
||||
"lead": "Der <link>Reiter Aktualisierungen</link> legt einen App-Abschnitt an, sobald ein Anwendungsdatensatz gespeichert wird.",
|
||||
"items": [
|
||||
"Ein Link-only-Record zeigt an, dass die Versionsverfolgung nicht konfiguriert ist, aber dennoch einen benutzerdefinierten Update-Befehl erhalten kann.",
|
||||
"Eine App mit Tracking, aber ohne ausführbare Methode zeigt eine neutrale Nachricht an, in der ein benutzerdefinierter Befehl angefordert wird.",
|
||||
"Eine App mit einem verifizierten Proxmox VE Helper-Scripts-Wrapper kann diesen integrierten Updater auch dann verwenden, wenn die Registrierung über einen Weblink begann.",
|
||||
"Durch Hinzufügen oder Bearbeiten eines Updaters wird der Detektor oder die Upstream-Quelle, die auf der Registerkarte App gespeichert ist, nicht geändert."
|
||||
]
|
||||
},
|
||||
"states": {
|
||||
"heading": "Versionsangaben auf der App-Karte",
|
||||
"colState": "Zustand",
|
||||
"colDisplay": "Anzeige",
|
||||
"colMeaning": "Bedeutung",
|
||||
"rows": [
|
||||
{
|
||||
"state": "Update verfügbar",
|
||||
"display": "Verfügbare Version in lila mit einem nach oben gerichteten Symbol",
|
||||
"meaning": "Die installierten und Upstream-Versionen unterscheiden sich."
|
||||
},
|
||||
{
|
||||
"state": "Aktuell",
|
||||
"display": "Installierte und neueste Versionen ohne den lila Alarm",
|
||||
"meaning": "Der letzte Check fand keine neuere Upstream-Version."
|
||||
},
|
||||
{
|
||||
"state": "Versionsprüfung ausstehend",
|
||||
"display": "Prüfung läuft oder steht aus",
|
||||
"meaning": "Der Datensatz ist konfiguriert, hat aber noch nicht beide Prüfungen abgeschlossen."
|
||||
},
|
||||
{
|
||||
"state": "Tracking deaktiviert",
|
||||
"display": "Nur Weblinks; kein Versionsvergleichsblock",
|
||||
"meaning": "Der Datensatz bleibt gültig und kann immer noch einen Updater haben."
|
||||
},
|
||||
{
|
||||
"state": "Prüffehler",
|
||||
"display": "Bernstein Erklärung im Inneren der Karte",
|
||||
"meaning": "Der zuvor gespeicherte Zustand bleibt sichtbar, während der Detektor oder Upstream-Fehler gemeldet wird."
|
||||
}
|
||||
]
|
||||
},
|
||||
"management": {
|
||||
"heading": "Verwalten von gespeicherten und vorgeschlagenen Apps",
|
||||
"lead": "Die Aktionen am unteren Rand des Tabs haben unterschiedliche Rollen:",
|
||||
"items": [
|
||||
"<strong>Anwendungen suchen</strong> aktualisiert die Erkennung nur für diesen LXC.",
|
||||
"<strong>Registrieren Sie eine andere Anwendung</strong> öffnet den Katalog und den manuellen Editor, ohne den LXC neu zu scannen.",
|
||||
"<strong>Bearbeiten</strong> zeigt je Karte Entfernen, Prüfen, Benachrichtigungen und Felder bearbeiten.",
|
||||
"<strong>Ausblenden</strong> entfernt einen unerwünschten Vorschlag. Ausgeblendete Erkennungen lassen sich in der Registrierungsübersicht wiederherstellen.",
|
||||
"<strong>Prüfen</strong> aktualisiert die Versionsdaten der gewählten gespeicherten App und sucht keine neuen Apps."
|
||||
]
|
||||
},
|
||||
"troubleshooting": {
|
||||
"heading": "Häufige Situationen",
|
||||
"colProblem": "Situation",
|
||||
"colResolution": "Lösung",
|
||||
"rows": [
|
||||
{
|
||||
"problem": "Software wurde installiert, nachdem ProxMenux gestartet wurde",
|
||||
"resolution": "Wählen Sie Anwendungen suchen. Der explizite Scan aktualisiert die zwischengespeicherten Vorschläge dieses LXC."
|
||||
},
|
||||
{
|
||||
"problem": "Keine Anwendung festgestellt",
|
||||
"resolution": "Registrieren Sie es manuell. Ein Name und ein Weblink sind ausreichend; Tracking kann später hinzugefügt werden."
|
||||
},
|
||||
{
|
||||
"problem": "Der vorgeschlagene Detektor gibt die falsche Version zurück",
|
||||
"resolution": "Öffnen Sie Felder bearbeiten, wählen Sie den realen Paket-, Binär- oder Dateipfad aus und testen Sie den Detektor vor dem Speichern."
|
||||
},
|
||||
{
|
||||
"problem": "Ein Docker Workload wird nicht als LXC App angeboten",
|
||||
"resolution": "Registrieren Sie Docker und fügen Sie die veröffentlichte Benutzeroberfläche des Workloads als Docker-Weblink hinzu. Image-Updates bleiben im Docker Abschnitt."
|
||||
},
|
||||
{
|
||||
"problem": "Eine gespeicherte App hat keinen Update-Button",
|
||||
"resolution": "Öffnen Sie die Registerkarte Updates und konfigurieren Sie die Aktualisierungsmethode. Versions-Tracking allein definiert nicht, wie ein Update installiert wird."
|
||||
}
|
||||
]
|
||||
},
|
||||
"figures": {
|
||||
"catalog": {
|
||||
"alt": "Anwendungsregistrierungskatalog mit Suchergebnissen, Logos, Ports und Detektorfeldern",
|
||||
"caption": "Katalog-Metadaten beschleunigen die Registrierung, während jeder vorgeschlagene Wert editierbar bleibt."
|
||||
},
|
||||
"webLinks": {
|
||||
"alt": "Gespeicherte LXC-Anwendungskarte mit einem anklickbaren Weblink",
|
||||
"caption": "Ein Link-Only-Record ist gültig: Das Versions-Tracking kann deaktiviert bleiben und ein Updater kann unabhängig hinzugefügt werden."
|
||||
},
|
||||
"tracking": {
|
||||
"alt": "Optionale Felder für den Detektor der installierten Version und die Upstream-Quelle",
|
||||
"caption": "Die Installationsversionserkennung und die Upstream-Quelle werden separat konfiguriert und getestet."
|
||||
},
|
||||
"card": {
|
||||
"alt": "Gespeicherte Anwendungskarte mit installierten und verfügbaren Versionen sowie einem Weblink",
|
||||
"caption": "Die Karte kombiniert Identität, Versionsnachweis und Webzugriff, ohne Update-Aktionen von diesem Tab aus auszuführen."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,203 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "LXC-Aktualisierungen: Betriebssystem, Apps und Docker | ProxMenux",
|
||||
"description": "Konfigurieren und Ausführen von Betriebssystem-, Anwendungs-, Docker Engine- und Docker-Image-Updates aus einem LXC-Container."
|
||||
},
|
||||
"header": {
|
||||
"title": "LXC-Aktualisierungen: Betriebssystem, Apps und Docker",
|
||||
"description": "Überprüfen Sie jedes Update-Ziel an einem Ort, führen Sie es unabhängig aus oder kombinieren Sie ausgewählte Ziele in einer kontrollierten Massenaktion."
|
||||
},
|
||||
"intro": {
|
||||
"p1": "Der Reiter <strong>Aktualisierungen</strong> trennt Versionserkennung und Installation. Registrierung und optionale Versionsverfolgung erfolgen im <link>App-Reiter</link>; ausführbare Aktualisierungsmethoden werden hier verwaltet.",
|
||||
"p2": "Eine gespeicherte Anwendung wird in Updates angezeigt, auch wenn sie nur einen Weblink enthält. Die Versionsverfolgung ist optional und ein Updater kann unabhängig konfiguriert werden.",
|
||||
"callout": "Die Registrierung wählt keinen Updater aus. Wird ein passender Helper-Scripts-Updater erkannt, wählen und speichern Sie <strong>Helper-Scripts</strong> oder <strong>Eigener Befehl</strong>. Die Erkennung garantiert keine Kompatibilität. Die Wahl gilt pro App, auch wenn mehrere denselben LXC nutzen."
|
||||
},
|
||||
"overview": {
|
||||
"heading": "Was der Tab enthält",
|
||||
"lead": "Jedes verfügbare Ziel hat seinen eigenen Abschnitt und seine eigene Aktion:",
|
||||
"items": [
|
||||
"<strong>Betriebssystempakete</strong> für Debian-, Ubuntu- und Alpine-Container.",
|
||||
"Ein Abschnitt je <strong>registrierter Anwendung</strong>, auch für Datensätze mit nur einem Link.",
|
||||
"Ein <strong>Docker</strong>-Abschnitt, wenn Docker registriert ist, wobei Docker Engine und getaggte Images gruppiert sind.",
|
||||
"Ein konfigurierbarer Abschnitt <strong>Sammelaktualisierung</strong> mit anschließenden Sicherungs-, Neustart- und Zeitplanoptionen."
|
||||
]
|
||||
},
|
||||
"mechanisms": {
|
||||
"heading": "Wie eine Aktualisierungsmethode ausgewählt wird",
|
||||
"lead": "Der integrierte Weg für Proxmox VE Helper-Scripts verwendet den offiziellen <helper>update-apps-Mechanismus</helper>. Andere Installationen verwenden die passende Paket-, Docker- oder eigene Methode.",
|
||||
"officialReference": "Offizielle Referenz: Die <helper>Proxmox VE Helper-Scripts-Update-Apps-Dokumentation</helper> umfasst interaktive und unbeaufsichtigte Modi, Backups, Trockenläufe, temporäre Build-Ressourcen, Protokolle und Exit-Codes.",
|
||||
"colSource": "Quelle",
|
||||
"colAction": "Gezeigte Aktion",
|
||||
"colNotes": "Was läuft",
|
||||
"rows": [
|
||||
{
|
||||
"source": "APT- oder APK-Pakete",
|
||||
"action": "OS Updates anwenden",
|
||||
"notes": "Aktualisiert die Containerpakete. Als dpkg- oder apk-Pakete installierte registrierte Apps werden im selben Lauf berücksichtigt."
|
||||
},
|
||||
{
|
||||
"source": "Proxmox VE Helper-Scripts",
|
||||
"action": "Update anwenden",
|
||||
"notes": "Nachdem Helper-Scripts explizit ausgewählt wurde, wird das offizielle Anwendungsskript ausgeführt, das durch den validierten /usr/bin/update-Wrapper identifiziert wurde. Eine Marker- oder Katalogübereinstimmung allein ermöglicht niemals die Ausführung."
|
||||
},
|
||||
{
|
||||
"source": "Eigener Befehl",
|
||||
"action": "Führen Sie den Updater aus",
|
||||
"notes": "Führt den gespeicherten Befehl im LXC aus und ersetzt jeden integrierten App-Updater für diesen Datensatz."
|
||||
},
|
||||
{
|
||||
"source": "Docker Engine",
|
||||
"action": "Docker Engine aktualisieren",
|
||||
"notes": "Aktualisiert nur installierte Docker-Pakete und deren erforderliche Abhängigkeiten. Andere Betriebssystempakete und Container bleiben unverändert."
|
||||
},
|
||||
{
|
||||
"source": "Docker-Image",
|
||||
"action": "Image aktualisieren",
|
||||
"notes": "Zieht das ausgewählte Image und erstellt die Compose-Servicegruppe oder den geschützten eigenständigen Container neu."
|
||||
}
|
||||
],
|
||||
"callout": "Ein eigener Befehl <strong>ersetzt</strong> Helper-Scripts für diese Anwendung. Manuelle, Sammel- und geplante Läufe beachten die gespeicherte Wahl. Vorhandene eigene Befehle und ausdrücklich gespeicherte ältere Sammel- bzw. aktivierte Zeitplanauswahlen bleiben erhalten. Neu registrierte Apps werden nie durch einen alten Zeitplan aufgenommen."
|
||||
},
|
||||
"docker": {
|
||||
"heading": "Docker Engine und Docker Images",
|
||||
"lead": "Nach der Docker-Registrierung im App-Reiter erscheinen Docker Engine und Image-Inventar im selben Abschnitt <strong>Docker</strong>.",
|
||||
"items": [
|
||||
"Die Docker Engine-Versionsverfolgung ist vom OS-Paketzähler getrennt und verfügt über einen eigenen Update-Button.",
|
||||
"Lokale Images mit Tags werden anhand unveränderlicher Digests mit ihrer Registry verglichen. <strong>Jetzt prüfen</strong> aktualisiert das Inventar, ohne Images herunterzuladen oder Container neu zu starten.",
|
||||
"Compose-Dienste werden von ihrem deklarierten Projekt aktualisiert. Images, die zur gleichen Servicegruppe gehören, werden zusammen bearbeitet, damit das Projekt nicht wiederholt neu erstellt wird.",
|
||||
"Ein eigenständiger Container wird anhand seiner aktuellen Konfiguration neu erstellt. Der geschützte Ablauf bewahrt Rücksetzungsdaten auf und stellt bei einem Fehler den vorherigen Container wieder her.",
|
||||
"Jedes Image kann separat in manuellen, massenhaften und geplanten Updates ausgewählt werden, mit Ausnahme deklarierter Compose-Abhängigkeiten, die dem übergeordneten Service folgen müssen."
|
||||
],
|
||||
"callout": "Container, die innerhalb von Docker laufen, werden nicht als unabhängige LXC-Anwendungen angezeigt. Ihre veröffentlichten Webports können als Links unter der Docker-Registrierung gespeichert werden, während Bildaktualisierungen im Docker-Bereich verbleiben."
|
||||
},
|
||||
"actions": {
|
||||
"heading": "Individuelle Aktionen und Statusfarben",
|
||||
"lead": "Jeder Abschnitt bleibt unabhängig voneinander umsetzbar, unabhängig davon, ob ein Bulk-Update konfiguriert ist oder nicht.",
|
||||
"items": [
|
||||
"<strong>Configure</strong> öffnet den Updater-Selektor, wenn keine Methode ausgewählt ist; <strong>Edit</strong> ändert eine gespeicherte Auswahl. Die Informationsschaltflächen erklären jede Option, verlinken auf die offizielle Dokumentation und zeigen ein benutzerdefiniertes Skriptbeispiel an. Die Auswahl einer Option führt sie nicht aus.",
|
||||
"Wenn die Versionsverfolgung deaktiviert ist, aber ein Updater vorhanden ist, wird die neutrale Aktion <strong>Run updater</strong> angezeigt. ProxMenux behauptet nicht, dass ein Update anhängig ist.",
|
||||
"Konfigurieren Sie ohne einen verfügbaren Helper-Scripts-Updater einen benutzerdefinierten Befehl. Das Deaktivieren einer Methode wählt nicht stillschweigend eine andere aus; bestehende Plan-/Zeitplanauswahlen bleiben gespeichert und nicht verfügbare Ziele werden gemeldet.",
|
||||
"Die Aktion <strong>Update image</strong> gilt nur für die ausgewählte Docker-Einheit; sie aktualisiert weder Docker Engine noch nicht verwandte Images."
|
||||
],
|
||||
"statusColState": "Bekannter Zustand",
|
||||
"statusColAppearance": "Aussehen",
|
||||
"statusColMeaning": "Bedeutung",
|
||||
"statusRows": [
|
||||
{
|
||||
"state": "Verifiziertes Update verfügbar",
|
||||
"appearance": "Lila Text, nach oben gerichtetes Symbol und lila Aktion",
|
||||
"meaning": "Installierte und verfügbare Versionen bzw. Image-Digests unterscheiden sich."
|
||||
},
|
||||
{
|
||||
"state": "Nachweislich aktuell",
|
||||
"appearance": "Grünes Häkchen und grüne Aktion Aktualisiert",
|
||||
"meaning": "Die letzte abgeschlossene Überprüfung bestätigt, dass das Ziel aktuell ist."
|
||||
},
|
||||
{
|
||||
"state": "Version unbekannt",
|
||||
"appearance": "Neutraler Text und neutrale Handlung",
|
||||
"meaning": "Ein Updater kann ausgeführt werden, aber es gibt keinen Versionsnachweis, um ihn als anhängig oder aktuell zu kennzeichnen."
|
||||
}
|
||||
]
|
||||
},
|
||||
"custom": {
|
||||
"heading": "Benutzerdefinierte Aktualisierungsbefehle",
|
||||
"lead": "Verwenden Sie einen benutzerdefinierten Befehl, wenn die Installation keinen verifizierten integrierten Updater hat oder wenn die normale Prozedur ersetzt werden muss.",
|
||||
"items": [
|
||||
"Öffnen Sie <strong>Configure</strong>, wenn das Feld leer ist, oder <strong>Edit</strong>, wenn bereits eine Methode vorhanden ist.",
|
||||
"Bei einer integrierten App oder Docker Engine zeigt der Editor den aktuell verwendeten Befehl an. Das Speichern verschiedener Inhalte macht es zum expliziten Override für diesen Datensatz.",
|
||||
"Testen Sie zuerst die komplette Prozedur im LXC Terminal. Es muss nicht interaktiv sein, das korrekte Arbeitsverzeichnis verwenden und beim Ausfall einen Nicht-Null-Ausgangsstatus zurückgeben.",
|
||||
"<code>pct exec</code> nicht einschließen; ProxMenux betritt bereits den Container und führt den Befehl als root aus."
|
||||
],
|
||||
"exampleLead": "Beispiel eines vollständigen Containerverfahrens:",
|
||||
"example": "cd /opt/my-app && ./update.sh",
|
||||
"callout": "Ein Versionsbefehl wie <code>myapp --version</code> liest nur eine Version; es ist kein Updater. Befehle laufen mit administrativen Privilegien, so dass gespeicherte Inhalte mit der gleichen Sorgfalt wie ein Root-Shell-Befehl überprüft werden müssen."
|
||||
},
|
||||
"bulk": {
|
||||
"heading": "Sammelaktualisierung",
|
||||
"lead": "Die Sammelaktualisierung erstellt eine wiederverwendbare Aktion für eine genau festgelegte Zielauswahl im LXC. Sie steht nach den App- und Docker-Abschnitten und vor <strong>Optionen</strong>.",
|
||||
"items": [
|
||||
"Betriebssystempakete sind Pflicht. Zusätzlich muss mindestens eine App, Docker Engine oder eine Docker-Image-Einheit ausgewählt werden.",
|
||||
"Apps und Docker-Einheiten werden einzeln ausgewählt. Der übergeordnete Compose-Dienst zeigt die mit ihm zu aktualisierenden Abhängigkeiten.",
|
||||
"Nicht verfügbare oder entfernte Ziele werden als veraltet markiert und müssen entfernt werden, bevor die Konfiguration gespeichert werden kann.",
|
||||
"<strong>Aktualisierungen anwenden</strong> ist lila, wenn ein gewähltes Ziel ein nachgewiesenes Update hat, grün, wenn alle nachweislich aktuell sind, und neutral bei unbekanntem Ergebnis.",
|
||||
"Durch das Entfernen der Bulk-Konfiguration werden keine einzelnen Aktualisierungsmethoden oder Einstellungen für geplante Aktualisierungen entfernt."
|
||||
],
|
||||
"callout": "Bulk Update ersetzt nicht die einzelnen Buttons. Es ist eine optionale Abkürzung für eine Auswahl, die zusammen laufen sollte."
|
||||
},
|
||||
"options": {
|
||||
"heading": "Backup- und Neustartoptionen",
|
||||
"lead": "Die gleichen Optionen gelten für manuelle, Massen- und geplante Durchläufe:",
|
||||
"items": [
|
||||
"<strong>Sicherung vor dem Anwenden</strong> erstellt ein vzdump-Backup auf dem gewählten Speicher. Schlägt die erforderliche Sicherung fehl, startet die Aktualisierung nicht.",
|
||||
"<strong>Neustart nach dem Anwenden</strong> startet den LXC nur nach einem erfolgreichen Lauf neu.",
|
||||
"Die Auswahlen werden pro LXC gespeichert und bleiben unabhängig von der Zielliste."
|
||||
]
|
||||
},
|
||||
"scheduled": {
|
||||
"heading": "Geplante Updates",
|
||||
"lead": "Geplante Updates verwenden die gleichen ausführbaren Ziele und Sicherheitsoptionen wie manuelle Aktionen.",
|
||||
"items": [
|
||||
"Wählen Sie einen voreingestellten oder cron-Ausdruck und wählen Sie dann genaue Ziele aus: Betriebssystempakete, einzelne Apps, Docker Engine, eigenständige Docker-Einheiten oder Compose-Dienstgruppen.",
|
||||
"Ein Release Hold gilt nur für ausgewählte Anwendungen mit Versionstracking. Apps ohne Tracking führen ihren Updater immer dann aus, wenn ihr Zeitplan fällig ist.",
|
||||
"Der Zustand des letzten Laufs unterscheidet Erfolg, Teilerfolg, Fehler, Sicherheitsaufschub und keine ausstehenden Updates. Nach dem ersten geplanten Lauf öffnet <strong>Aktualisierungen → Geplante Aktualisierungen → Protokoll anzeigen</strong> die vollständige Ausgabe des Updaters und seiner aufgerufenen Unterskripte.",
|
||||
"Nach jedem Durchlauf überprüft ProxMenux den standardmäßigen Debian-Reboot-erforderlichen Marker. Wenn ein Neustart erforderlich ist, wird dies auf der Registerkarte Updates und der Abschlussbenachrichtigung angezeigt; die Warnung wird gelöscht, wenn der LXC gestartet oder neu gestartet wird.",
|
||||
"Protokolle geplanter Läufe liegen auf dem Proxmox-Host in <code>/usr/local/share/proxmenux/logs/lxc-updates/</code> mit dem Namen <code><VMID>-scheduled-<run-id>.log</code>. Pro LXC bleiben die letzten zehn Protokolle erhalten; ältere Dateien werden automatisch gelöscht.",
|
||||
"Diese beibehaltene Historie gilt für geplante Updates. Ein manuelles Update zeigt seine Ausgabe live im Monitor-Ausführungsfenster an und erstellt kein geplantes Protokoll in diesem Verzeichnis.",
|
||||
"Externe Host-Zeitpläne, die von Proxmox VE Helper-Scripts erkannt wurden, werden separat angezeigt, so dass eine überlappende Automatisierung sichtbar ist."
|
||||
],
|
||||
"callout": "Führen Sie jede ausgewählte Methode manuell aus, bevor Sie einen Zeitplan aktivieren. Geplante Befehle können keine Eingabeaufforderungen beantworten."
|
||||
},
|
||||
"completion": {
|
||||
"heading": "Was passiert nach einem Update",
|
||||
"lead": "Das Update gilt nicht als abgeschlossen, wenn der Terminalbefehl lediglich beendet wird.",
|
||||
"items": [
|
||||
"Derselbe Lauf zeichnet sein Endergebnis auf und aktualisiert den OS-Paketzustand, die registrierten App-Versionen und das Docker-Inventar.",
|
||||
"Geplante Durchläufe behalten ihre Terminalausgabe bei und melden, ob ein Neustart noch erforderlich ist, um die Anwendung von Paketänderungen abzuschließen.",
|
||||
"Der LXC-Cache wird durch den verifizierten Post-Update-Zustand ersetzt, so dass Badges und Buttons das vorherige Ergebnis nicht beibehalten.",
|
||||
"Wenn ein angehaltener oder wiederhergestellter LXC startet, aktualisiert das vorhandene Lebenszyklusereignis diesen LXC erneut. Docker-Inventar wartet, bis der Daemon fertig ist, anstatt ein leeres Startergebnis als endgültig zwischenzuspeichern.",
|
||||
"Aktivierte Benachrichtigungen werden vom finalisierten Durchlauf ausgegeben, einschließlich Teilfehlern und gruppierten Docker-Bildergebnissen."
|
||||
]
|
||||
},
|
||||
"troubleshooting": {
|
||||
"heading": "Häufige Situationen",
|
||||
"colProblem": "Situation",
|
||||
"colResolution": "Lösung",
|
||||
"rows": [
|
||||
{
|
||||
"problem": "Es wurde keine Aktualisierungsmethode identifiziert",
|
||||
"resolution": "Öffnen Sie die Konfiguration, fügen Sie die offizielle nicht-interaktive Prozedur hinzu und testen Sie sie manuell, bevor Sie sie planen."
|
||||
},
|
||||
{
|
||||
"problem": "Eine Proxmox VE Helper-Scripts-Identität wird angezeigt, aber es gibt keine Aktion",
|
||||
"resolution": "Der LXC hat Legacy-Identifikationsdaten, aber keinen verifizierten /usr/bin/update-Wrapper. Fügen Sie eine benutzerdefinierte Methode erst hinzu, nachdem Sie das korrekte Verfahren bestätigt haben."
|
||||
},
|
||||
{
|
||||
"problem": "Docker-Bilder sind nach dem Start oder der Wiederherstellung vorübergehend leer",
|
||||
"resolution": "Warten Sie, bis Docker fertig ist, oder drücken Sie jetzt Überprüfen. Das Inventar wiederholt den Start und behandelt ein vorübergehendes leeres Ergebnis nicht als endgültig."
|
||||
},
|
||||
{
|
||||
"problem": "Ein gespeichertes Bulk-Ziel ist nicht mehr verfügbar",
|
||||
"resolution": "Bearbeiten Sie die Bulk-Konfiguration, entfernen Sie das veraltete Ziel und wählen Sie den aktuellen Ersatz aus, wenn eines vorhanden ist."
|
||||
},
|
||||
{
|
||||
"problem": "Ein benutzerdefinierter Befehl scheitert",
|
||||
"resolution": "Führen Sie es im LXC-Terminal aus und überprüfen Sie dessen Pfad, Abhängigkeiten, nicht-interaktive Flags und Exit-Code."
|
||||
},
|
||||
{
|
||||
"problem": "Ein geplantes Update sagt, dass ein Neustart erforderlich ist",
|
||||
"resolution": "Öffnen Sie Protokoll anzeigen, prüfen Sie den abgeschlossenen Lauf und starten Sie den LXC neu. ProxMenux löscht die Warnung, sobald das Lebenszyklusereignis den erneuten Start meldet."
|
||||
}
|
||||
]
|
||||
},
|
||||
"figures": {
|
||||
"osPending": {
|
||||
"alt": "Abschnitt Betriebssystempakete mit ausstehenden und Sicherheitsupdates",
|
||||
"caption": "Der Betriebssystembereich hält Paketaktualisierungen unabhängig von Anwendungs- und Docker-Aktionen."
|
||||
},
|
||||
"options": {
|
||||
"alt": "LXC Update-Optionen mit Pre-Update-Backup und Post-Update-Neustart",
|
||||
"caption": "Backup- und Neustarteinstellungen gelten für manuelle, Massen- und geplante Ausführung."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,244 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Monitor — Dashboard: VMs und LXCs | ProxMenux-Dokumentation",
|
||||
"description": "Inventar aller Gäste mit CPU, Arbeitsspeicher und Datenträgern in Echtzeit. Die Details zeigen Konfiguration, Ressourcen, Sicherungen, aktuelle Proxmox-Protokollergebnisse, Notizen und Starten / Herunterfahren / Neustart / Stopp."
|
||||
},
|
||||
"header": {
|
||||
"title": "Dashboard: VMs und LXCs",
|
||||
"description": "Vollständiges Gastinventar des Knotens: vier Kennzahlen oben, eine sortierbare VM-/LXC-Liste darunter und Gastdetails mit Konfiguration, Ressourcen, Sicherungen, Protokollen sowie Starten/Herunterfahren/Neustart/Stopp.",
|
||||
"section": "ProxMenux Monitor · Übersicht"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Steuerung der Gäste",
|
||||
"body": "Hier steuern Sie den Lebenszyklus der Gäste. Aktionen laufen nach ausdrücklicher Bestätigung über <code>POST /api/vms/<vmid>/control</code> und aktualisieren die Gastzeile. Erzwungenes Ausschalten erfordert die eigene Schaltfläche Stopp erzwingen."
|
||||
},
|
||||
"topRow": {
|
||||
"heading": "Obere Reihe: vier Stat-Karten",
|
||||
"intro": "Vier Karten fassen den Gastzustand zusammen: Gesamtzahl, CPU-Auslastung, zugewiesener Arbeitsspeicher im Verhältnis zur Hostkapazität und Datenträgerzuweisung.",
|
||||
"imageAlt": "Registerkarte VMs & LXCs — oberste Reihe von vier Statistikkarten: Total VMs & LXCs, Total CPU, Total Memory, Total Disk",
|
||||
"imageCaption": "Obere Reihe: Gesamtzahlen und Laufend/Gestoppt, aktuelle CPU-Auslastung, belegter Speicher / laufenden Gästen zugewiesener Speicher / insgesamt zugewiesener Speicher mit Grenzwertanzeige sowie zugewiesener Datenträgerplatz.",
|
||||
"headerCard": "Karte",
|
||||
"headerWhat": "Was es zeigt",
|
||||
"totalLabel": "Gesamtzahl der VMs und LXCs",
|
||||
"totalWhat": "Gesamtzahl mit zwei Abzeichen — <em>X Running</em> (grün) und <em>Y Stopped</em> (rot, nur wenn > 0). Die Nummer, die Sie sehen, wenn etwas nach einem Neustart nicht wieder auftaucht.",
|
||||
"cpuLabel": "CPU gesamt",
|
||||
"cpuWhat": "Gesamte aktuelle CPU-Auslastung aller Gäste als Anteil der physischen Host-CPU mit der Fußzeile <em>„Zugewiesene CPU-Auslastung“</em>.",
|
||||
"memoryLabel": "Gesamtspeicher",
|
||||
"memoryIntro": "Drei Messwerte vertikal gestapelt:",
|
||||
"memoryItems": [
|
||||
"<strong>Aktuell belegt</strong> — großer Wert, etwa <em>15.4 GB</em>, und <em>X.X % von Y GB</em> des Host-RAMs. Der blaue Balken zeigt den Prozentsatz.",
|
||||
"<strong>Laufenden Gästen zugewiesen</strong> + <strong>Insgesamt zugewiesen</strong> — Summe von <code>maxmem</code> der <em>laufenden</em> Gäste neben der Summe <em>aller</em> Gäste einschließlich gestoppter. Die erste ist jetzt relevant, die zweite beim gleichzeitigen Start aller Gäste.",
|
||||
"<strong>Innerhalb der Grenzen</strong> ist grün und wechselt zu <em>Überbucht</em>, wenn die Gesamtzuweisung den Host-RAM übersteigt. Kontrollierte Überbuchung kann mit KSM funktionieren; die Anzeige warnt früh bei knappem Spielraum."
|
||||
],
|
||||
"diskLabel": "Gesamtes Laufwerk",
|
||||
"diskWhat": "Summe des Speicherplatzes, der allen Gästen in der entsprechenden Einheit (GB / TB) zugewiesen ist, mit der Fußzeile <em>\"Zugeordneter Speicherplatz\"</em>."
|
||||
},
|
||||
"inventory": {
|
||||
"heading": "Liste virtueller Maschinen und Container",
|
||||
"intro": "Eine Reihe pro Gast. Die Liste stammt aus <code>/api/vms</code>, die <code>qm list</code> + <code>pct list</code> + <code>pvesh /cluster/resources</code> auf dem Host konsolidiert.",
|
||||
"imageAlt": "Liste virtueller Maschinen und Container — eine Zeile pro Gast mit Status, Typabzeichen, Name, ID und Inline-CPU / Speicher / Festplattenprozentsatz",
|
||||
"imageCaption": "Das mobil optimierte Layout des Inventars - die gleichen Daten, die die Desktop-Ansicht zeigt, werden in einer einzigen Spalte neu gestapelt, wobei die Prozentsätze und Statusindikatoren kompakt gehalten werden.",
|
||||
"rowsIntro": "Jede Zeile zeigt:",
|
||||
"rows": [
|
||||
"<strong>Statussymbol</strong> — grünes Wiedergabedreieck für laufend oder rotes Quadrat für gestoppt. Gestoppte Gäste werden abgeblendet und fallen sofort auf.",
|
||||
"<strong>Typanzeige</strong> — <em>LXC</em> in Cyan für Container, <em>VM</em> in Lila für virtuelle Maschinen.",
|
||||
"<strong>Name</strong> — Hostname oder Anzeigename des Gasts.",
|
||||
"<strong>VMID</strong> — die numerische ID von Proxmox unter dem Namen.",
|
||||
"<strong>Inline-Metriken</strong> — drei Prozent mit ihrem Symbol (CPU %, Memory %, Disk %). Jedes Symbol wird orange, wenn die Metrik eine Aufmerksamkeitsschwelle überschreitet (z. B. Speicher über 90 %), so dass ein schneller Scan Ihnen sagt, welcher Gast unter Druck steht, ohne ihn zu öffnen."
|
||||
],
|
||||
"clickHint": "Ein Klick auf eine Zeile öffnet den Detaildialog, unabhängig davon, ob der Gast läuft oder gestoppt ist.",
|
||||
"mobileTitle": "Die Liste ist für Mobilgeräte entworfen",
|
||||
"mobileBody": "Auf Telefonen und in schmalen Fenstern stehen Typ, Name, ID und die drei Prozentwerte untereinander wie im Bild. Auf breiten Ansichten verteilen sie sich horizontal. In beiden Fällen öffnet ein Tippen auf die gesamte Zeile die Details."
|
||||
},
|
||||
"drillIn": {
|
||||
"heading": "Gastdetaildialog",
|
||||
"intro": "Der Detaildialog zeigt Gastname, VMID, Typ, Zustand und Laufzeit. Seine Navigation passt sich dem Gast an: <strong>Status</strong>, <strong>App</strong> und <strong>Updates</strong> für die LXC-Anwendungsverwaltung, <strong>Mounts</strong> bei vorhandenen LXC-Mountpoints, <strong>Logs</strong> für durch OCI manager Apps installierte Container sowie <strong>Backups</strong> und <strong>Firewall</strong>. Die feste Aktionsleiste hält die Start- und Stoppfunktionen sowie das LXC-Terminal in jeder Registerkarte bereit.",
|
||||
"statusTitle": "Tab. 1 — Status",
|
||||
"statusImageAlt": "Gastdetails — Status mit Live-Werten für CPU, Arbeitsspeicher und Datenträger, Datenträger-/Netzwerk-I/O, Betriebssystemlogo und Ressourcen/IP-Adressen",
|
||||
"statusImageCaption": "Status: oben CPU, Arbeitsspeicher und Datenträger mit Balken; darunter gesamte I/O-Daten (Datenträger gelesen/geschrieben, Netzwerk empfangen/gesendet); anschließend Ressourcen mit Notizen, + Info und IP-Adressliste.",
|
||||
"statusIntro": "Der Standardreiter zum Prüfen des Gastzustands. Drei Bereiche:",
|
||||
"liveTitle": "1. Zeile Live-Metriken",
|
||||
"liveItems": [
|
||||
"<strong>CPU-Auslastung (X Kerne)</strong> — Prozentsatz mit Balken. Die konfigurierte Kernzahl im Kopf erklärt, worauf sich 100 % bezieht.",
|
||||
"<strong>Arbeitsspeicher</strong> — <em>belegt / maximal</em> in GB mit Balken.",
|
||||
"<strong>Datenträger</strong> — <em>belegt / maximal</em> für das primäre Gast-Image im selben Format."
|
||||
],
|
||||
"ioTitle": "2. I/O-Gesamtwerte + OS-Logo",
|
||||
"ioItems": [
|
||||
"<strong>Datenträger-I/O</strong> — gelesene (↓) und geschriebene (↑) Daten seit dem Start. Zeigt einen plötzlichen I/O-Anstieg gegenüber dem üblichen Gastverhalten.",
|
||||
"<strong>Netzwerk-I/O</strong> — insgesamt empfangene (↓) und gesendete (↑) Daten, entsprechend den Datenträgerwerten.",
|
||||
"<strong>OS-Verteilungslogo</strong> - das Debian / Ubuntu / Alpine / Windows / usw.-Symbol, das vom Betriebssystemtyp des Gastes erkannt wird. Ein schneller visueller Hinweis beim Scrollen mehrerer geöffneter Modals."
|
||||
],
|
||||
"resourcesTitle": "3. Ressourcenblock",
|
||||
"resourcesIntro": "Gastkonfiguration aus Proxmox: CPU-Kerne, Arbeitsspeicher (konfiguriertes <code>maxmem</code>) und Swap. Zwei aufklappbare Bereiche im Kopf:",
|
||||
"resourcesItems": [
|
||||
"<strong>Notizen</strong> — bearbeitbare Gastbeschreibung. Speichern ruft <code>PUT /api/vms/<vmid>/config</code> auf und schreibt in <code>/etc/pve/qemu-server/<vmid>.conf</code> oder <code>/etc/pve/lxc/<vmid>.conf</code>.",
|
||||
"<strong>+ Info</strong> — BIOS-Modus, Maschinentyp, Agentstatus, hostpci-Passthrough-Einträge, CT-Einhängepunkte und Startreihenfolge."
|
||||
],
|
||||
"ipsTitle": "4. IP-Adressen",
|
||||
"ipsBody": "Jede IPv4-/IPv6-Adresse des Gasts erscheint als grüne Anzeige. Die Liste bleibt bei gestopptem Gast oder einer VM ohne QEMU-Agent leer. LXCs melden ihre Adressen direkt.",
|
||||
"appTitle": "Tab 2 — App (nur LXC)",
|
||||
"appIntro": "Registriert Anwendungen, die zum LXC gehören, speichert Weblinks und vergleicht optional installierte und verfügbare Versionen. Vorschläge kommen aus dem Start-Cache; <strong>Find-Anwendungen</strong> aktualisiert ausdrücklich die Entdeckung für diesen LXC, nachdem neue Software installiert wurde.",
|
||||
"appLinkLead": "Siehe die",
|
||||
"appLinkLabel": "dedizierte App-Seite",
|
||||
"appLinkTail": "für zwischengespeicherte Erkennung, kataloggestützte Registrierung, Docker-Weblinks und Versionsdetektoren.",
|
||||
"updatesTitle": "Tab 3 — Updates (nur LXC)",
|
||||
"updatesIntro": "<strong>Betriebssystempakete</strong>, Apps, <strong>Docker Engine</strong> und Docker-Images bleiben getrennte Ziele. Jedes lässt sich einzeln starten oder in einer genau festgelegten Sammelaktion bzw. einem Zeitplan auswählen.",
|
||||
"updatesLinkLead": "Siehe die",
|
||||
"updatesLinkLabel": "dedizierte Updates Seite",
|
||||
"updatesLinkTail": "für integrierte und eigene Updater, Neuerstellung von Docker-Containern, Sammelauswahl, Sicherheitsoptionen und Zeitplanung.",
|
||||
"mountsTitle": "Reiter 4 — Einhängepunkte (nur LXC, falls vorhanden)",
|
||||
"mountsImageAlt": "LXC-Details, Einhängepunkte: PVE-Volumes, Bind-Mounts vom Host oder PVE-Speicher sowie im CT eingehängte NFS-/CIFS-Freigaben. Je Karte: Typ, Kapazität, belegte/gesamte Bytes, Optionen und Statuspunkt — grün intakt, bernsteinfarben schreibgeschützt/abweichend, rot nicht erreichbar.",
|
||||
"mountsImageCaption": "Einhängepunkte erscheint nur bei LXCs mit mindestens einem konfigurierten oder nachträglich hinzugefügten Remote-Einhängepunkt. Ohne Einhängepunkte fehlt der Reiter.",
|
||||
"mountsIntro": "Proxmox zeigt konfigurierte <code>mpX</code>-Einhängepunkte, jedoch keine später im CT über <code>mount.cifs</code>, NFS mit <code>autofs</code> usw. hinzugefügten. Dieser Reiter verbindet <strong>beide Ansichten</strong>: konfigurierte Einhängepunkte <strong>und</strong> im Container erkannte Laufzeiteinhängungen, mit Status und abrufbarer Kapazität.",
|
||||
"mountTypesTitle": "Erkannte Einhängepunkttypen",
|
||||
"mountTypesItems": [
|
||||
"<strong>PVE-Volume</strong> — liegt auf Proxmox-verwaltetem Speicher, etwa ZFS-Subvolume, Verzeichnis oder Ceph RBD. Die Kapazität stammt aus den PVE-Speicherstatistiken und entspricht der Proxmox-Anzeige.",
|
||||
"<strong>Bind-Mount aus PVE-Speicher</strong> — <code>mpX</code>-Eintrag mit einem Pfad auf PVE-bekanntem Speicher.",
|
||||
"<strong>Bind-Mount vom Host</strong> — <code>mpX</code>-Eintrag mit beliebigem Hostpfad (<code>/mnt/something</code>). Die Kapazität liefert <code>df</code> für diesen Pfad.",
|
||||
"<strong>Ad-hoc in CT</strong> – Mount, der <em>nur</em> im Mount-Namespace des Containers existiert (z. B. eine NFS-Freigabe, die der CT selbstständig mountet). Die Kapazität wird über <code>pct exec <vmid> df</code> gelesen, was die einzige Möglichkeit ist, sie anzuzeigen – <code>/proc/<pid>/root</code> vom Host stellt die tatsächlichen Statistiken des Remote-Mounts nicht offen."
|
||||
],
|
||||
"mountStateTitle": "Statuspunkt und Warnungen je Karte",
|
||||
"mountStateItems": [
|
||||
"<green/> <strong>Grün</strong> — Einhängepunkt intakt und erreichbar.",
|
||||
"<amber/> <strong>Bernsteinfarben</strong> — konfiguriert, aber nicht eingehängt, schreibgeschützt oder <em>Zombie-Bind</em>. Dabei fehlt die Hostquelle, während der CT sie noch als eingehängt sieht, etwa nach Entfernen eines USB-Laufwerks oder <code>umount</code> auf dem Host.",
|
||||
"<red/> <strong>Rot</strong> — nicht erreichbar: Die Laufzeitprüfung konnte den Einhängepunkt nicht erreichen, etwa eine NFS-Freigabe bei ausgefallenem Server."
|
||||
],
|
||||
"mountsCalloutTitle": "Zusätzliche Informationen gegenüber Proxmox",
|
||||
"mountsCalloutBody": "Zeigt alle Lese- und Schreibziele des Containers samt Kapazität. Im CT eingehängte NFS-/CIFS-Freigaben, die Proxmox nicht anzeigt, erhalten dieselbe Darstellung und Zustandsprüfung. Nicht erreichbare Remote-Mounts und Zombie-Binds werden vor Problemen bei einer Sicherung markiert.",
|
||||
"logsTitle": "Tab 5 — Protokolle (nur OCI-Container)",
|
||||
"logsBody": "Nur für Container aus OCI manager Apps. Zeigt die Hauptprozess-Konsole des Images aus <code>/var/log/proxmenux/oci/VMID.console.log</code>: letzte 100, 500 oder 1000 Zeilen, Live-Verfolgung bei laufendem Container, Filter und Download. Die Datei wird beim Öffnen neu gelesen, auch bei gestopptem Container. Details: <ociLink>OCI-Container in ProxMenux Monitor</ociLink>.",
|
||||
"backupsTitle": "Tab. 6 — Backups",
|
||||
"backupsImageAlt": "Pro-Gast-Bohr-in-Modal - Backups-Registerkarte mit der verfügbaren Backup-Liste, Ziel-Tag, Größen und der Create Backup-Schaltfläche",
|
||||
"backupsImageCaption": "Alle Sicherungen dieses Gasts auf konfigurierten Proxmox-Speichern, neueste zuerst. Die Kopfzeile zeigt ihre Anzahl.",
|
||||
"backupsIntro": "Listet alle Gastsicherungen auf konfigurierten Proxmox-Speichern, neueste zuerst. Der Zähler im Titel zeigt, ob Sicherungen vorhanden sind. Jede Zeile enthält :",
|
||||
"backupsItems": [
|
||||
"<strong>Zeitstempel</strong> — Datum und Uhrzeit des Laufs.",
|
||||
"<strong>Zielanzeige</strong> — Speicherort (PBS-Cloud, PBS-Local, NFS-Backup, …), nach Zustand eingefärbt.",
|
||||
"<strong>Größe</strong> — endgültige Größe der Sicherung auf dem Datenträger."
|
||||
],
|
||||
"backupsOutro": "<strong>+ Sicherung erstellen</strong> startet eine Sicherung auf dem in Proxmox als „Backup target“ markierten Speicher. Die Wiederherstellung erfolgt in der Proxmox-Weboberfläche; Monitor zeigt aktuelle Sicherungen des Gasts und erstellt neue.",
|
||||
"firewallTitle": "Tab. 7 — Firewall",
|
||||
"firewallIntro": "Liest das Proxmox-Firewallprotokoll des Gasts direkt vom Host, ohne Zusatzdienst oder regelmäßige Abfragen. Der Reiter ist immer sichtbar; der Inhalt hängt davon ab, ob die Firewall aktiv ist und Regeln tatsächlich protokollieren.",
|
||||
"firewallItems": [
|
||||
"<strong>Firewall deaktiviert</strong> — eine bernsteinfarbene Mitteilung erklärt genau, wo sie in der Proxmox-Benutzeroberfläche aktiviert werden soll (<em><Container|VM> → Firewall → Options</em>) und erinnert Sie daran, dass mindestens eine Regel <code>log: info</code> (oder höher) benötigt, bevor Pakete angezeigt werden.",
|
||||
"<strong>Firewall aktiv, noch keine Ereignisse</strong> — Hinweis im leeren Bereich auf die nötige Protokollierung, hilfreich direkt nach dem Aktivieren.",
|
||||
"<strong>Ereignisse vorhanden</strong> — scrollbarer Monospace-Bereich mit Originaleinträgen nach Aktion: <green>ACCEPT</green> grün, <orange>REJECT</orange> orange, <red>DROP</red> rot. Der Zähler im Kopf nennt die geladenen Einträge."
|
||||
],
|
||||
"firewallRefresh": "<em>Aktualisieren</em> lädt neue Einträge bei Bedarf. Ohne automatische Abfrage bleibt die Ansicht eine Momentaufnahme des Öffnens oder letzten Aktualisierens. Quelle ist <code>/var/log/pve-firewall.log</code>, nach VMID gefiltert über <code>GET /api/vms/<vmid>/firewall/log</code>.",
|
||||
"firewallCalloutTitle": "Warum haben Sie es hier, wenn die Proxmox-Benutzeroberfläche es bereits zeigt?",
|
||||
"firewallCalloutBody": "Spart den Wechsel zur Proxmox-Oberfläche und hält die Ansicht auf dieselbe VMID beschränkt: Gast starten, Einhängepunkte und Firewallereignisse prüfen, Gast wieder stoppen. Regeln werden in Proxmox bearbeitet; Monitor verändert sie nicht.",
|
||||
"actionBarTitle": "Untere Aktionsleiste",
|
||||
"actionBarIntro": "Immer sichtbar am Fuß des Modals, unabhängig davon, welcher Tab aktiv ist:",
|
||||
"consoleItem": "<strong>Konsole</strong> öffnet bei laufenden LXCs <code>pct enter <vmid></code> im Container. Sie nutzt wie der <link>Terminalreiter</link> xterm.js und WebSocket sowie die <strong>mobile Werkzeugleiste</strong> mit ESC, TAB, Pfeilen, Enter und Ctrl+C / Ctrl+X / Ctrl+R. Damit ist die Bedienung per Telefon oder Tablet möglich. VMs nutzen hier keine Konsole; verwenden Sie Proxmox noVNC.",
|
||||
"lifecycleIntro": "Darunter stehen vier Schaltflächen im 2×2-Raster. Jede sendet <code>POST /api/vms/<vmid>/control</code> mit der passenden <code>action</code>. Ihre Verfügbarkeit hängt vom Gastzustand ab.",
|
||||
"headerButton": "Schaltfläche",
|
||||
"headerEnabled": "Aktiviert, wenn",
|
||||
"headerAction": "Aktion an Host gesendet",
|
||||
"lifecycleRows": [
|
||||
{
|
||||
"button": "Starten",
|
||||
"color": "green",
|
||||
"enabled": "Der Gast ist gestoppt.",
|
||||
"action": "qm start / pct start"
|
||||
},
|
||||
{
|
||||
"button": "Herunterfahren",
|
||||
"color": "blue",
|
||||
"enabled": "Der Gast läuft.",
|
||||
"action": "qm shutdown / pct shutdown — geordnetes Herunterfahren, ACPI"
|
||||
},
|
||||
{
|
||||
"button": "Neustart",
|
||||
"color": "blue",
|
||||
"enabled": "Der Gast läuft.",
|
||||
"action": "qm reboot / pct reboot — geordneter Neustart"
|
||||
},
|
||||
{
|
||||
"button": "Stopp erzwingen",
|
||||
"color": "red",
|
||||
"enabled": "Der Gast läuft.",
|
||||
"action": "qm stop / pct stop — hartes Ausschalten"
|
||||
}
|
||||
],
|
||||
"forceStopTitle": "Stopp erzwingen schaltet sofort aus",
|
||||
"forceStopBody": "<strong>Stopp erzwingen</strong> umgeht das Herunterfahren wie ein Ziehen des Stromkabels. Nutzen Sie <strong>Herunterfahren</strong>, solange der Gast reagiert. Erzwingen Sie den Stopp nur bei hängendem Herunterfahren und akzeptiertem Datenverlustrisiko. Farbe und Beschriftung warnen vor versehentlichem Auslösen."
|
||||
},
|
||||
"dataCollected": {
|
||||
"heading": "Wie die Daten gesammelt werden",
|
||||
"headerSection": "Abschnitt des Reiters",
|
||||
"headerEndpoint": "Endpunkt",
|
||||
"headerSource": "Quelle",
|
||||
"rows": [
|
||||
{
|
||||
"section": "Bestandsverzeichnis",
|
||||
"endpoint": "/api/vms",
|
||||
"source": "<code>pvesh get /cluster/resources --type vm</code> für VM und CT."
|
||||
},
|
||||
{
|
||||
"section": "Detail-Panel (Konfiguration, Netzwerk, Festplatten)",
|
||||
"endpoint": "/api/vms/<vmid>",
|
||||
"source": "<code>qm config <id></code> für VMs / <code>pct config <id></code> für CTs."
|
||||
},
|
||||
{
|
||||
"section": "Kennzahlendiagramm pro Gast",
|
||||
"endpoint": "/api/vms/<vmid>/metrics",
|
||||
"source": "PVE RRD-Daten (<code>pvesh get /nodes/<node>/qemu/<id>/rrddata</code>) werden zu einer chartfreundlichen Form verdichtet."
|
||||
},
|
||||
{
|
||||
"section": "Aktuelle Proxmox-Protokollergebnisse",
|
||||
"endpoint": "/api/vms/<vmid>/logs",
|
||||
"source": "<code>pvesh get /nodes/<node>/<qemu|lxc>/<vmid>/log --start 0 --limit 1000</code>. Bei Befehlsfehlern wird eine leere Liste zurückgegeben; dies sind keine vollständigen Systemprotokolle aus dem Gast."
|
||||
},
|
||||
{
|
||||
"section": "Backups für Gäste verfügbar",
|
||||
"endpoint": "/api/vms/<vmid>/backups",
|
||||
"source": "<code>pvesm list <storage></code> durch VMID gefiltert."
|
||||
},
|
||||
{
|
||||
"section": "Pro-Gast-Firewall-Log (Firewall-Tab)",
|
||||
"endpoint": "/api/vms/<vmid>/firewall/log",
|
||||
"source": "<code>/var/log/pve-firewall.log</code> durch VMID gefiltert."
|
||||
},
|
||||
{
|
||||
"section": "Einschalttasten (Start / Stop / Reboot / Shutdown)",
|
||||
"endpoint": "/api/vms/<vmid>/control",
|
||||
"source": "<code>qm start|stop|reboot|shutdown</code> oder <code>pct</code>-Äquivalente."
|
||||
}
|
||||
],
|
||||
"codeComment1": "# Dashboard-Daten mit PVE abgleichen",
|
||||
"codeComment2": "# Gastkonfiguration genau wie im Detaildialog prüfen",
|
||||
"codeComment3": "# VM",
|
||||
"codeComment4": "# CT"
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Wohin als nächstes",
|
||||
"items": [
|
||||
{
|
||||
"label": "Gesundheitsmonitor",
|
||||
"href": "/docs/monitor/health-monitor",
|
||||
"tailRich": " — Kategorie VMs und Container: Startfehler, QMP-Zeitüberschreitungen und CT-Herunterfahrfehler."
|
||||
},
|
||||
{
|
||||
"label": "Benachrichtigungen",
|
||||
"href": "/docs/monitor/notifications",
|
||||
"tailRich": "— was die <code>vm_*</code>, <code>ct_*</code>, <code>migration_*</code> und <code>backup_*</code> Ereignisse nachgeschaltet auslösen."
|
||||
},
|
||||
{
|
||||
"label": "API-Referenz",
|
||||
"href": "/docs/monitor/api",
|
||||
"tailRich": " — die Endpunkte für VMs und Sicherungen."
|
||||
},
|
||||
{
|
||||
"label": "Dashboard-Index",
|
||||
"href": "/docs/monitor/dashboard",
|
||||
"tailRich": " — die anderen Reiter."
|
||||
},
|
||||
{
|
||||
"label": "ProxMenux: VM erstellen",
|
||||
"href": "/docs/create-vm",
|
||||
"tailRich": " — Bereitstellung: NAS-Systemvorlagen (Synology und andere), Linux-/Windows-VMs und für Proxmox angepasste Standardwerte."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user