4NK_node/docs/MONITORING.md
Nicolas Cantu f7e110446b feat: Ajout du système de monitoring centralisé
- Nouveau module Grafana central partagé
- Installation de Loki pour la collecte de logs
- Installation de Prometheus pour les métriques
- Installation de Promtail pour la collecte de logs
- Configuration DNS pour tous les services de monitoring
- Documentation complète du monitoring dans docs/MONITORING.md
- Correction de la résolution DNS pour Bitcoin
- Suppression de log-monitoring.yml obsolète
- Mise à jour du CHANGELOG et VERSION

Services ajoutés:
- grafana-central.local:3000 (tableau de bord)
- loki.local:3100 (logs)
- prometheus.local:9091 (métriques)
- promtail.local (collecte de logs)
2025-09-11 12:08:34 +02:00

196 lines
5.0 KiB
Markdown

# Monitoring et Observabilité 4NK
## Vue d'ensemble
Le système de monitoring 4NK utilise une stack complète d'observabilité basée sur Grafana, Loki et Prometheus pour surveiller l'ensemble des services du projet.
## Architecture
### Services de monitoring
- **Grafana Central** (`grafana-central.local:3000`)
- Tableau de bord central pour visualisation des métriques et logs
- Accès : http://grafana-central.local:3000 (admin/admin)
- **Loki** (`loki.local:3100`)
- Système de collecte et d'indexation des logs
- Stockage des logs de tous les services 4NK
- **Prometheus** (`prometheus.local:9091`)
- Collecte et stockage des métriques de performance
- Surveillance des services et alertes
- **Promtail** (`promtail.local`)
- Agent de collecte des logs
- Envoi des logs vers Loki
## Configuration
### Datasources Grafana
- **Loki-4NK** : Logs des services 4NK
- **Prometheus-4NK** : Métriques des services 4NK
- **Loki-Infra** : Logs d'infrastructure (si disponible)
- **Prometheus-Infra** : Métriques d'infrastructure (si disponible)
### Collecte de logs
Promtail collecte automatiquement les logs de :
#### Services 4NK
- `4nk-bitcoin` : Logs Bitcoin
- `4nk-blindbit-oracle` : Logs BlindBit Oracle
- `4nk-sdk-storage` : Logs SDK Storage
- `4nk-sdk-relay1/2/3` : Logs des relais SDK
- `4nk-sdk-signer` : Logs SDK Signer
- `4nk-ihm-client` : Logs IHM Client
- `4nk-coffre-front/back` : Logs LeCoffre
#### Logs système
- Logs Docker containers
- Logs système
- Logs Grafana Central
### Collecte de métriques
Prometheus surveille les métriques de :
- Bitcoin Core (port 38332)
- BlindBit Oracle (port 8000)
- SDK Storage (port 8080)
- SDK Relay 1/2/3 (port 8090)
- SDK Signer (port 9090)
- IHM Client (port 80)
- Conteneurs Docker
- Node Exporter (si installé)
## Dashboards
### Dashboards 4NK
- **4NK Overview** : Vue d'ensemble des services
- **Bitcoin Monitoring** : Surveillance du nœud Bitcoin
- **SDK Services** : Métriques des services SDK
### Dashboards Infrastructure
- **System Overview** : Vue d'ensemble du système
- **Docker Containers** : Surveillance des conteneurs
### Dashboards System
- **Node Metrics** : Métriques du serveur
- **Network Monitoring** : Surveillance réseau
## Utilisation
### Accès aux services
```bash
# Grafana (tableau de bord principal)
http://grafana-central.local:3000
# Prometheus (métriques brutes)
http://prometheus.local:9091
# Loki (logs bruts)
http://loki.local:3100
```
### Requêtes de logs dans Grafana
```logql
# Tous les logs Bitcoin
{job="4nk-bitcoin"}
# Logs d'erreur de tous les services
{job=~"4nk-.*"} |= "error"
# Logs des dernières 5 minutes
{job="4nk-bitcoin"} |= "error" | json
```
### Requêtes de métriques dans Grafana
```promql
# Services en ligne
up{job=~"4nk-.*"}
# Utilisation CPU
rate(process_cpu_seconds_total[5m])
# Utilisation mémoire
process_resident_memory_bytes
```
## Maintenance
### Redémarrage des services
```bash
# Redémarrage complet du monitoring
docker-compose restart loki.local prometheus.local promtail.local grafana-central.local
# Redémarrage d'un service spécifique
docker-compose restart loki.local
```
### Sauvegarde des données
```bash
# Sauvegarde des volumes de monitoring
docker run --rm -v 4nk_node_loki_data:/data -v $(pwd):/backup alpine tar czf /backup/loki-backup.tar.gz /data
docker run --rm -v 4nk_node_prometheus_data:/data -v $(pwd):/backup alpine tar czf /backup/prometheus-backup.tar.gz /data
docker run --rm -v 4nk_node_grafana_central_data:/data -v $(pwd):/backup alpine tar czf /backup/grafana-backup.tar.gz /data
```
### Restauration des données
```bash
# Restauration Loki
docker run --rm -v 4nk_node_loki_data:/data -v $(pwd):/backup alpine tar xzf /backup/loki-backup.tar.gz -C /
# Restauration Prometheus
docker run --rm -v 4nk_node_prometheus_data:/data -v $(pwd):/backup alpine tar xzf /backup/prometheus-backup.tar.gz -C /
# Restauration Grafana
docker run --rm -v 4nk_node_grafana_central_data:/data -v $(pwd):/backup alpine tar xzf /backup/grafana-backup.tar.gz -C /
```
## Dépannage
### Problèmes courants
1. **Promtail ne collecte pas les logs**
- Vérifier les chemins de logs dans `promtail-config.yml`
- Vérifier les permissions sur les fichiers de logs
2. **Prometheus ne collecte pas les métriques**
- Vérifier la configuration dans `prometheus.yml`
- Vérifier que les services exposent des métriques sur `/metrics`
3. **Grafana ne peut pas se connecter aux datasources**
- Vérifier la configuration dans `datasources.yml`
- Vérifier que Loki et Prometheus sont accessibles
### Logs de diagnostic
```bash
# Logs Promtail
docker logs promtail.local
# Logs Loki
docker logs loki.local
# Logs Prometheus
docker logs prometheus.local
# Logs Grafana
docker logs grafana-central.local
```
## Évolutions futures
- Ajout d'AlertManager pour les alertes
- Intégration avec des services externes (Slack, email)
- Dashboards personnalisés pour chaque service
- Métriques personnalisées pour les services 4NK
- Intégration avec des outils de tracing distribués