## Consignes de production et de consultation des logs ### Centralisation des logs - Dossier central: `/home/debian/4NK_env/logs/` - Sous-dossiers standardisés par service: - `nginx/`, `lecoffre-front/`, `ihm_client/`, `sdk_relay/`, `sdk_storage/`, `bitcoin/`, `blindbit/`, `miner/`, `tor/` - Docker Compose monte chaque service avec un volume: `/home/debian/4NK_env/logs/:/var/log/` ### Instrumentation et propagation - Nginx JSON logging via `lecoffre_node/conf/nginx/logging.conf` avec `log_format lecoffre_json` incluant: `time`, `request_id`, `remote_addr`, `host`, `method`, `uri`, `args`, `status`, `bytes`, `referer`, `user_agent`, `request_time`, `upstream_*`, `x_forwarded_for`. - Propagation `X-Request-ID`: map `$http_x_request_id` → `$x_request_id` et `proxy_set_header X-Request-ID $x_request_id` dans `dev4.4nkweb.com-https.conf`. - Corrections Nginx: `listen 443 ssl;` + `http2 on;`, `listen 80 default_server; server_name _;`, Grafana sur `127.0.0.1:80`. - Front: en-têtes `Accept: application/json` et `X-Request-ID` ajoutés aux appels IdNot/state/auth. ### Production des logs (applications) - Les applications doivent écrire leurs fichiers dans `/var/log//` dans le conteneur. - Formats recommandés: `*.log` en texte (rotation gérée par infra si nécessaire). - Ajouter un identifiant de corrélation `X-Request-ID` côté front et proxy pour faciliter l’analyse. ### Nginx - Fichiers: `/home/debian/4NK_env/logs/nginx/lecoffre_front_access.log` (JSON) et `lecoffre_front_error.log` (texte). - Requête type (analyse IdNot): - `grep '"/api/v1/idnot/' /home/debian/4NK_env/logs/nginx/lecoffre_front_access.log | jq . | tail -n 50` ### Promtail → Loki → Grafana - Promtail scrute: `/home/debian/4NK_env/logs/**` (jobs par service). - Loki reçoit sur `http://loki:3100`. - Grafana (local): `https://dev4.4nkweb.com/grafana/` → Explore → Datasource Loki. - Requêtes utiles: `{job="lecoffre-front"}`, `{job="nginx"}`, `{job="sdk_relay"}`. ### À surveiller (IdNot et perf) - Corrélation par `X-Request-ID` entre Nginx et apps. - Erreurs `IDNOT_SERVICE_ERROR`, réponses non-JSON en amont, timeouts. - Métriques Nginx: `status`, `request_time`, `upstream_*` pour latences et erreurs. ### Backups des logs et métadonnées - Backups centralisés: `/home/debian/4NK_env/backups//` - `ports_open.txt`, `nginx_conf/`, `nginx_http_flows.txt` - Script: `/home/debian/4NK_env/scripts/backup_all.sh` ### Vérifications rapides - Front public: - `curl -siS 'https://dev4.4nkweb.com/lecoffre/?nocache='$(date +%s) | sed -n '1,20p'` - État IdNot (state): - `curl -siS -X POST 'https://dev3.4nkweb.com/api/v1/idnot/state' -H 'Origin: https://dev4.4nkweb.com' -H 'Content-Type: application/json' --data '{"next_url":"https://dev4.4nkweb.com/lecoffre/authorized-client"}' | sed -n '1,40p'` ### Bonnes pratiques - Ne jamais committer de secrets dans les logs. - Utiliser des niveaux de log adaptés (INFO/WARN/ERROR) et messages concis. - Masquer les en-têtes sensibles à l’affichage (Authorization).