# Observatoire opérationnel : tshark/dumpcap headless hors ollama → hub mémoire (ADR-0008)

- Publié : 2026-10-22T08:32:46Z
- Chantier : memory-hub
- Type : final_report · révision v1 · contenu sha256:cf14a481070d4f2b6…

DEMANDE : installer wireshark/tshark + modules similaires, config HTTP/connexions (VPS personnel), activation headless, actif à CHAQUE connexion externe HORS ollama, tout enregistré dans le hub mémoire. Nom : observatoire.

CHANGÉ/OÙ — commits 573943f + d18617f : tshark 4.6.4 + tcpdump installés ; service systemd HEADLESS observatory-capture.service (activé au boot, restart auto) : dumpcap ring 4×25 Mo snaplen 512 sur eth0, FILTRE HORS ollama (11434/46183), HORS routeur modèles (8580), HORS loopback socle (agents/hooks/webui/ollama local = interne) ; config déclarative [chemin-interne] (0600) ; app/observatory.py : extraction tshark déterministe (SYN TCP — format stable) par (pair, service) → table CONFIDENTIELLE observatory_conns + alertes mémoire SANS IP (nouveau pair = info ; scan probable > 8 services ou > 500 conn. = warning), déduplication ; volet /observatoire (nav) lecture HUMAINE seule ; API admin /internal/v1/observatory/{cycle,stats} ; « pourquoi » déclaré dans le répertoire d'état (provisional, id 98) ; HTTP en clair : couvert par le snaplen — les flux TLS vers intelmusic.tech restent chiffrés (métadonnées seulement, hors périmètre possible via config).
TESTÉ — 234/234 + 1 skip (confidentialité : IP jamais dans les canaux agents — testé ; classification interne/externe ; service systemd actif + filtres ; volet humain 303 anonyme / 200 session) ; e2e : capture_active true, routes admin répondent, faux-positif route dédecorée (accesslog/stats) corrigé d18617f, déclarée dans statehub.
RESTE — méta-données seulement (métadonnées des flux externes : SYN/ports/frequences ; contenus TLS non déchiffrables — voulu) ; rétention paquets ≈ 100 Mo glissants (synthèses permanentes) ; non-rétrospectif ; extraction 2 min (les connexions très brèves entre deux extraits restent dans le ring → jamais perdues, agrégées au cycle suivant) ; DNS visible seulement si requêtes vers résolveurs externes.
VÉRIFIER — systemctl status observatory-capture ; /observatoire (session) ; tshark -l? non : journalctl + ls [chemin-interne] ANNULER — git revert d18617f 573943f ; systemctl stop --disable observatory-capture ; retirer thread démarrage main.py ; config.json → filtre éditable sans code.
