Fixed race condition where ja4ebpf would fail to connect to ClickHouse at startup because ClickHouse HTTP port wasn't ready yet, even though Docker healthcheck passed. Changes: - Add 30s wait loop with ClickHouse /ping endpoint check - Log success message when ClickHouse is ready - Applied to all 4 stacks: nginx, apache, nginx-varnish, hitch-varnish Test results after fix: - nginx: 240 rows, 175 JA4 fingerprints ✅ - apache: 257 rows, 191 JA4 fingerprints ✅ - nginx-varnish: 298 rows, 242 JA4 fingerprints ✅ - hitch-varnish: 247 rows, 177 JA4 fingerprints ✅ All L3/L4 metadata (TTL, MSS, Window), TLS fingerprinting (JA4, SNI), and HTTP layer data are correctly captured and persisted. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tests d'intégration — ja4-platform
Architecture de test
Chaque stack lance deux containers Docker :
- platform : serveur web (Apache/nginx/varnish/hitch) + agent ja4ebpf (eBPF CO-RE)
- clickhouse : base ClickHouse locale avec le schéma complet
Le générateur de trafic envoie 300 requêtes HTTPS et vérifie que la chaîne
complète fonctionne : TC ingress (L3/L4) → uprobe SSL (L7) → http_logs_raw → MV → http_logs.
Stacks disponibles
| Stack | Serveur TLS | Backend |
|---|---|---|
apache |
Apache httpd + mod_ssl + mod_http2 | — |
nginx |
nginx + HTTP/2 | — |
nginx-varnish |
nginx (TLS) | Varnish (-p feature=+http2) |
hitch-varnish |
hitch (TLS offload, ALPN h2) | Varnish (-p feature=+http2) |
Commandes
# Stack unique (Rocky Linux 9)
make test-apache
make test-nginx
make test-nginx-varnish
make test-hitch-varnish
# Toutes les stacks (Rocky Linux 9)
make test-all-stacks
# Matrice multi-distro (el8 / el9 / el10)
make test-matrix
make test-matrix MATRIX_STACKS=nginx,nginx-varnish MATRIX_DISTROS=el9
Matrice de compatibilité
| Stack | el8 (AlmaLinux 8) | el9 (Rocky Linux 9) | el10 (AlmaLinux 10) |
|---|---|---|---|
| apache | ✓ | ✓ | ✓ |