Profile bearbeiten¶
/profiles ist die zentrale Seite, um Profile und ihre Profile-Checks zu verwalten.
Seit v0.19.1
16 UX-Verbesserungen mit Capability-Filtern, Inline-Threshold-Edit, Clone, Export/Import, Sort-Pfeile, Keyboard-Shortcuts.
Übersicht¶
┌──────────────────────────────────────────────────────────────────┐
│ Profile [+ Neu] [Import] [Export] │
│ │
│ Suche: [/] │
│ Filter: [Agent] [SNMP] [Custom] [Modifiziert] [Leer] │
├──────────────────────────────────────────────────────────────────┤
│ Server │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ Generic │ │ Linux Web │ │ Windows │ │
│ │ Linux │ │ Server │ │ Server │ │
│ │ • 12 Hosts │ │ • 4 Hosts │ │ • 8 Hosts │ │
│ │ Agent SNMP │ │ Agent │ │ Agent │ │
│ └────────────┘ └────────────┘ └────────────┘ │
│ Network Devices │
│ ... │
└──────────────────────────────────────────────────────────────────┘
Karten-Pattern¶
Jede Karte zeigt:
- Profil-Name + Icon
- Anzahl Hosts (oder gelber Border + „kein Host" wenn ungenutzt)
- Capability-Pills (Agent, SNMP, Custom, Modifiziert)
- Bei Klick: Profil-Modal mit allen Profile-Checks
Filter & Suche¶
| Pill | Zeigt |
|---|---|
| Agent | Profile mit agent_capable = true |
| SNMP | Profile mit snmp_enabled = true |
| Custom | Profile mit is_builtin = false |
| Modifiziert | Builtins mit is_modified = true |
| Leer | Profile ohne Hosts (Aufräum-Kandidaten) |
Tastatur-Shortcuts:
- ++slash++ — Fokus auf Suchfeld
- ++n++ — Neues Profil
- ++esc++ — Modal schließen
Profil-Modal¶
┌─ Profil 'Generic Linux Server' ────────────── [Klonen] [Export] ─┐
│ │
│ Basis │
│ Name: Generic Linux Server │
│ Kategorie: Server │
│ Vendor: Generic │
│ Icon: [server-icon] │
│ │
│ Erweitert ▼ │
│ sysOID-Patterns: [.1.3.6.1.4.1.8072.3.2.10] [+] │
│ sysDescr-Patterns: [Linux] [+] │
│ Capabilities: [✓] Agent [✓] SNMP [_] IP Pflicht │
│ OS-Familie: linux │
│ Visual-Type: (keiner) │
│ │
│ Profile-Checks (8) [+ Check] │
│ ↑↓ CPU Load agent_cpu 60s W>80 C>95 [Edit] │
│ ↑↓ RAM Usage agent_memory 60s W>85 C>95 [Edit] │
│ ↑↓ Disk Usage / agent_disk 300s W>80 C>95 [Edit] │
│ ... │
└──────────────────────────────────────────────────────────────────┘
Sektionen¶
- Basis — Name, Kategorie, Vendor, Icon (Lucide-Picker)
- Erweitert (collapsible) — Patterns, Capabilities, Visual-Type, OS
Profile-Check-Liste¶
Pro Check zeigt die Tabelle:
- Sort-Pfeile (
↑↓) zum Umordnen - Name + Check-Type
- Intervall in Sekunden
- Threshold-Warn / Threshold-Crit in Notation
W>80 · C>95 - Edit-Button
Inline-Threshold-Edit¶
Statt das Edit-Modal zu öffnen, kannst du Schwellwerte direkt in der Tabelle anpassen:
- Klick auf den Threshold-Wert
- Mini-Inputs erscheinen
- Enter speichert, Escape verwirft
Sinnvoll wenn du nur Schwellen tunen willst, nicht die ganze Config.
Profile-Check editieren (Modal)¶
Im Edit-Modal:
| Feld | Hinweis |
|---|---|
| Name | Anzeigename |
| Check-Type | Nur bei neuen Checks änderbar — bei bestehenden gesperrt mit Warning |
| Check-Mode | Active / Passive / Agent |
| Check-Config | JSONB-Editor mit Schema-Validation pro Check-Type |
| Threshold-Warn / -Crit | Floats |
| Interval / Retry / Max-Attempts | Zahlen |
| Script-ID | Dropdown mit Builtin- und Custom-Scripts |
auto_add |
Wird beim Profil-Apply automatisch erzeugt? |
Check-Type-Wechsel
Wenn du den Check-Type änderst, werden die Config-Felder anders interpretiert. Eine Datenverlust-Warning erscheint vor dem Speichern.
Clone¶
Klont ein Profil + alle Profile-Checks als neues Custom-Profile mit Auto-Rename:
"Generic Linux Server" → "Generic Linux Server (Kopie)"
"Generic Linux Server" → "Generic Linux Server (Kopie 2)" (zweites Mal)
Die Klone sind is_builtin = false, is_modified = false. Frei editierbar.
Export¶
JSON-Bundle mit Schema-Version:
Datei wird browser-seitig heruntergeladen, kein Server-State.
Import¶
Akzeptiert JSON-Bundle oder ZIP mit mehreren Bundles.
- Magic-Bytes-Detection (
PKfür ZIP) - Pro Bundle ein SAVEPOINT — ein kaputtes Bundle kippt nicht den Rest
- Auto-Rename bei Namens-Kollision:
(Import),(Import 2), … - Schema-Version-Check via
PROFILE_BUNDLE_SCHEMA_VERSION
# CLI-Variante (multipart):
curl -X POST -H "Authorization: Bearer <JWT>" \
-F "file=@my-profiles.zip" \
https://deine-domain.tld/api/v1/profiles/import
Reset (Builtin)¶
Ein modifizierter Builtin (is_modified = true) hat einen Reset-Button. Der setzt das Profil und alle Profile-Checks auf den Original-Zustand des Seed-Scripts zurück.
Confirmation-Dialog vor Reset.
Usage-Vorschau¶
Bei Profil löschen zeigt ein Vorab-Modal:
Profil 'Generic Linux Server' wird verwendet von:
- 12 Hosts
- 86 Services
Beispielhosts:
- web01.acme.local
- db01.acme.local
- jump01.acme.local
- mail01.acme.local
- backup01.acme.local
Wenn du fortfährst, werden diese Hosts ohne Profil zurückgelassen.
Möchtest du wirklich löschen?
[Abbrechen] [Löschen]
Hinter den Kulissen: GET /profiles/{id}/usage → {host_count, service_count, examples[5]}.
Sort & Reihenfolge¶
Profile-Checks haben einen display_order-Index. Sort-Pfeile pro Check ändern die Reihenfolge — wichtig für die Anzeige in der Service-Liste auf der Host-Detail-Seite.
API¶
| Endpoint | Zweck |
|---|---|
GET /api/v1/profiles/ |
Liste mit host_count |
GET /api/v1/profiles/{id} |
Detail |
POST /api/v1/profiles/ |
Neu |
PATCH /api/v1/profiles/{id} |
Update |
DELETE /api/v1/profiles/{id} |
Löschen |
GET /api/v1/profiles/{id}/usage |
Impact-Vorschau |
POST /api/v1/profiles/{id}/clone |
Klonen |
GET /api/v1/profiles/{id}/export |
JSON-Bundle |
POST /api/v1/profiles/import |
Bundle/ZIP einspielen |
POST /api/v1/profiles/{id}/apply |
Auf Host anwenden |
GET /api/v1/profiles/{id}/checks |
Profile-Checks |
POST /api/v1/profiles/{id}/checks/{check_id}/reset |
Builtin-Check zurücksetzen |
Anschluss¶
- Discovery — neues Gerät ins Netz, welches Profil passt?
- SNMP-Sensor-Picker — wenn das Profil-Default nicht alle Sensoren abdeckt
- MIB-Snippets — Vendor-spezifisches Wissen