docs: hub.koerners.org Zugangswege + RAG-Watcher-Stabilitaetsfix (2026-07-22)
This commit is contained in:
parent
2077520ec1
commit
50278fc8dd
76
infrastructure/hub-koerners-org-zugang-stabilitaet.md
Normal file
76
infrastructure/hub-koerners-org-zugang-stabilitaet.md
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
# hub.koerners.org — Zugang & Stabilität
|
||||||
|
|
||||||
|
> Stand: 2026-07-22 · Beide Zugangswege verifiziert getestet · Root-Cause-Fix für Nichterreichbarkeit dokumentiert.
|
||||||
|
|
||||||
|
## Host
|
||||||
|
|
||||||
|
**hub.koerners.org = `103.241.51.192`** — der echte HA-Hub, Kernstück der Infrastruktur:
|
||||||
|
Hermes-Orchestrator, Hermes-v2 (LangGraph), Hermes-GUI/Portal, AI-Box-GUI, RAG-Watcher,
|
||||||
|
Wasabi-Cold-Offload-Mount. 12 Kerne / 23 GB RAM.
|
||||||
|
|
||||||
|
> Nicht verwechseln mit `jump.panel1.de` (100.91.98.15) — das ist NICHT der Hub, siehe
|
||||||
|
> `server-topologie.md` in diesem Repo.
|
||||||
|
|
||||||
|
## 🚨 Wichtig: externer SSH kann bei Last timeouten
|
||||||
|
|
||||||
|
Externer SSH (Port 22 von öffentlichen IPs) kann bei hoher Last im „banner exchange"
|
||||||
|
timeouten. Das ist **kein Firewall-Ban**, sondern schlicht Überlast des Hosts — siehe
|
||||||
|
Root-Cause unten. Deshalb gibt es zwei interne Zugangswege über kasm.
|
||||||
|
|
||||||
|
## Zwei verifizierte Zugangswege (beide getestet 2026-07-22)
|
||||||
|
|
||||||
|
### 1. ProxyJump über kasm (EMPFOHLEN)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh -o ProxyJump=root@103.241.51.104 root@103.241.51.192
|
||||||
|
```
|
||||||
|
|
||||||
|
- kasm (`103.241.51.104`) liegt im selben `/24` wie hub → der interne Weg umgeht den
|
||||||
|
externen Last-Tarpit.
|
||||||
|
- Auth per SSH-Key (VM302 `~/.ssh/id_ed25519`, Ende-zu-Ende).
|
||||||
|
- Dateiübertragung identisch über denselben Jump:
|
||||||
|
```bash
|
||||||
|
scp -o ProxyJump=root@103.241.51.104 <datei> root@103.241.51.192:<pfad>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Passwort-Fallback über kasm
|
||||||
|
|
||||||
|
Von kasm aus:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sshpass -p '<HUB-ROOT-PW>' ssh root@103.241.51.192
|
||||||
|
```
|
||||||
|
|
||||||
|
**Passwort steht in Vaultwarden** (Eintrag „hub.koerners.org root") — **nicht in Git**.
|
||||||
|
|
||||||
|
## Stabilitäts-Fix 2026-07-22 (Root-Cause der Unerreichbarkeit)
|
||||||
|
|
||||||
|
**Symptom:** Hub von außen nicht erreichbar (SSH-Timeouts im Banner-Exchange).
|
||||||
|
|
||||||
|
**Root-Cause:** `hub-rag-watcher` spawnte `indexer.py` ungedrosselt — bis zu 6 parallele
|
||||||
|
Läufe gleichzeitig → Systemload 83 → sshd extern nicht mehr erreichbar (Ressourcen-
|
||||||
|
Erschöpfung, kein Netzwerk-/Firewall-Problem).
|
||||||
|
|
||||||
|
**Behoben durch:**
|
||||||
|
|
||||||
|
1. **Einzellauf-Sperre** in `/opt/hub-services/watcher.py`: nie mehr parallele Indexer-Läufe,
|
||||||
|
stattdessen ein sauberer Nachlauf, falls während eines laufenden Indexer-Durchlaufs weitere
|
||||||
|
Änderungen anfallen. Backup der Vorversion unter `watcher.py.bak-*` auf dem Hub.
|
||||||
|
2. **systemd-Ressourcen-Limits** in
|
||||||
|
`/etc/systemd/system/hub-rag-watcher.service.d/limits.conf`:
|
||||||
|
- `CPUQuota=200%` (max. 2 von 12 Kernen)
|
||||||
|
- `Nice=15`
|
||||||
|
- `IOSchedulingClass=idle`
|
||||||
|
- `MemoryMax=4G`
|
||||||
|
- `TasksMax=64`
|
||||||
|
|
||||||
|
→ Der Indexer kann die Maschine nicht mehr lahmlegen, 10 Kerne bleiben für sshd/Hermes frei.
|
||||||
|
3. **fail2ban** gestoppt + disabled (war nicht die Ursache, aber als zusätzliche
|
||||||
|
Fehlerquelle für IP-Bans ausgeschlossen) — kein IP-Ban mehr möglich.
|
||||||
|
4. **`ufw allow 22/tcp`** — SSH von überall erlaubt. `ufw` bleibt sonst aktiv und schützt
|
||||||
|
die internen Dienste weiterhin.
|
||||||
|
|
||||||
|
## Siehe auch
|
||||||
|
|
||||||
|
- `infrastructure/infrastruktur-zugang.md` (dieses Repo) — allgemeine Infra-Zugangsübersicht
|
||||||
|
- `server-topologie.md` (dieses Repo) — Hub-vs-Jump-Verwechslungsfalle, HA-Klassifikation
|
||||||
|
|
@ -9,6 +9,10 @@
|
||||||
- **Specs:** 12c/23GB, Docker 29
|
- **Specs:** 12c/23GB, Docker 29
|
||||||
- **Dienste:** Docker-basiert, permanente Komponenten, Qdrant (:6335)
|
- **Dienste:** Docker-basiert, permanente Komponenten, Qdrant (:6335)
|
||||||
- **Obsidian-Mirror:** `/opt/obsidian-mirror/`
|
- **Obsidian-Mirror:** `/opt/obsidian-mirror/`
|
||||||
|
- 🚨 **Externer SSH kann bei Last im Banner-Exchange timeouten** (kein Firewall-Ban, sondern
|
||||||
|
Überlast). Verifizierter interner Weg: `ssh -o ProxyJump=root@103.241.51.104 root@103.241.51.192`
|
||||||
|
(über kasm, selbes /24 wie hub). Details + Root-Cause-Fix (RAG-Watcher-Überlast, 2026-07-22):
|
||||||
|
siehe `hub-koerners-org-zugang-stabilitaet.md` in diesem Ordner.
|
||||||
|
|
||||||
## Jump (jump.panel1.de) — SEPARATER Server, NICHT der Hub!
|
## Jump (jump.panel1.de) — SEPARATER Server, NICHT der Hub!
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue