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:
@@ -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:
|
||||
|
||||
@@ -46,6 +46,19 @@ Quadlets (GNAI-010 sections 5 and 6; first profile: llama.cpp). Runs after
|
||||
- `service` – everything in this role. Model provisioning belongs to the
|
||||
`models` tag of the `model_store` role.
|
||||
|
||||
## Logs
|
||||
|
||||
conmon writes the container output to the system journal (journald driver)
|
||||
with the syslog identifier set to the container name. Read as root:
|
||||
|
||||
```bash
|
||||
journalctl _COMM=conmon -t gnai-testing-llama-swift --no-pager
|
||||
```
|
||||
|
||||
`podman logs` returns empty for the workload account (journal file
|
||||
permissions); acceptance protocols are collected as root (GNAI-010 section
|
||||
8.1).
|
||||
|
||||
## Notes
|
||||
|
||||
- There is no `PublishPort=`; the engine is reachable only inside the
|
||||
|
||||
Reference in New Issue
Block a user