LLM-Server: Container-Protokollierung geklärt und in GNAI-010 dokumentiert (v0.7)

conmon schreibt mit dem Journald-Treiber ins System-Journal (Syslog-Identifier
= Container-Name, _COMM=conmon); lesbar als root, podman logs bleibt für das
Workload-Konto leer (Journal-Dateirechte, bewusst keine systemd-journal-
Gruppe). Lesewege in GNAI-010 Abschnitt 8.1; 64k-Bring-up-Startlogs sind
protokollfähig (n_slots=1, n_ctx_slot=65536, Listening, MTP-Tensoren nicht
geladen). Zusätzlich dokumentiert: LLAMA_ARG_HOST-Default des Images und die
bewusst akzeptierte API-Key-Lücke des internen Testing-Netzes.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-11-01 17:32:17 +01:00
parent 026c840029
commit 060901d104
2 changed files with 45 additions and 0 deletions
@@ -23,6 +23,7 @@
| 2026-09-21 | 0.1 | spektr / Codex | erstes technisches Profil für Swift Q6_K, 128k, Q8-KV, rootless Quadlet und gestufte MTP-Abnahme erstellt |
| 2026-10-31 | 0.5 | spektr / Mistral Vibe | Swift-Repository-Revision aktualisiert: `eb0e3a7…` wurde vom Herausgeber aus dem Repository entfernt (resolve liefert 404); Repin auf den aktuellen `main`-Commit `98a6100…`. Die Q6_K-Datei ist laut Herausgeber-SHA256SUMS unverändert (`7f4de8…`), der Vision-Projektor ebenfalls (`daa111…`); beide Prüfsummen bleiben unverändert und werden beim Download verifiziert. |
| 2026-10-31 | 0.6 | spektr / Mistral Vibe | Implementierungsbefund vom ersten Live-Start: Das gepinnte AMD-Image definiert `ENTRYPOINT /app/llama-server`; `Exec=` im Quadlet trägt deshalb nur die Argumente ohne Binärnamen. Das Image enthält weder `curl` noch `wget` – die Health-Prüfung darf nicht von einem im Image vorhandenen HTTP-Werkzeug ausgehen (Abschnitt 8 bestätigt). |
| 2026-10-31 | 0.7 | spektr / Mistral Vibe | Protokollierungsbefund vom ersten Live-Betrieb: conmon schreibt die Container-Ausgabe mit dem Journald-Treiber ins System-Journal (`_COMM=conmon`, Syslog-Identifier = Container-Name, zum Beispiel `gnai-testing-llama-swift`); lesbar als root, `podman logs` bleibt für das Workload-Konto wegen der Journal-Dateirechte leer. Abschnitt 8.1 dokumentiert die Lesewege; die 64k-Bring-up-Startlogs sind damit protokollfähig. |
---
@@ -463,6 +464,37 @@ bleiben ausschließlich im internen Container-Netz. Vor der Health-Quadlet-
Konfiguration wird geprüft, welches HTTP-Werkzeug das gepinnte Image enthält;
die Abnahme darf nicht von einem im Image fehlenden `curl` abhängen.
Zwei Befunde vom ersten Live-Betrieb am 31.10.2026: Das gepinnte Image setzt
eine `LLAMA_ARG_HOST`-Umgebungsvorbelegung, die vom Kommandozeilen-Argument
`--host` überschrieben wird (unerheblich, aber in den Startlogs sichtbar).
Und der Server meldet beim Start die Warnung „no API key is set and CORS
allows all origins": für die interne Testing-Umgebung (Netz `Internal=true`,
kein Host-Port, keine NPM-Route) ist das eine bewusst akzeptierte
Übergangszustand; spätestens mit der API-Policy-Schicht (Meilenstein 6) wird
ein API-Key Pflicht.
### 8.1 Protokollierung (Befund 31.10.2026)
conmon protokolliert die Container-Ausgabe mit dem Journald-Treiber ins
System-Journal. Der Syslog-Identifier ist der Container-Name; Start-, Health-
und Inferenzmeldungen sind damit vollständig nachvollziehbar:
```bash
# als root auf dem Host:
journalctl _COMM=conmon -t gnai-testing-llama-swift --no-pager
journalctl _COMM=conmon --since 18:26 --until 18:32 --no-pager -q # Startfenster
```
`podman logs` liefert für das Workload-Konto eine leere Ausgabe, weil die
Journal-Dateien für `gnai-testing` nicht lesbar sind; eine Mitgliedschaft im
`systemd-journal`-Gruppe würde das Leserecht auf das gesamte Journal erweitern
und ist bewusst nicht eingerichtet. Abnahmeprotokolle werden deshalb als root
oder über das Betreiberkonto erhoben. Die llama-server-Startsequenz bestätigt
damit die Abnahmepunkte aus Abschnitt 10.2: Modell- und Kontextkonfiguration
(`n_slots = 1`, `n_ctx_slot = 65536`), Listening-Endpunkt sowie die Warnungen
zu unbenutzten MTP-Tensoren (`blk.64.*` — der Next-Token-Kopf wird bei
deaktiviertem MTP korrekt nicht geladen).
## 9. Ansible-Rollenentwurf
Die spätere Rolle `llama_cpp` soll folgende Zuständigkeiten besitzen: