51 lines
3.0 KiB
Markdown
51 lines
3.0 KiB
Markdown
## 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_signer/`, `sdk_storage/`, `bitcoin/`, `blindbit/`, `miner/`, `tor/`
|
||
- Docker Compose monte chaque service avec un volume: `/home/debian/4NK_env/logs/<service>:/var/log/<service>`
|
||
|
||
### 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/<service>/` 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/<timestamp>/`
|
||
- `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).
|