# 📊 Monitoring LeCoffre Node ## Vue d'ensemble Le systĂšme de monitoring LeCoffre Node utilise **Grafana**, **Loki** et **Promtail** pour centraliser, analyser et visualiser les logs de tous les services. ## đŸ—ïž Architecture du Monitoring ``` Services → Logs CentralisĂ©s → Promtail → Loki → Grafana ↓ ↓ ↓ ↓ ↓ Docker logs/ Collecte Stockage Dashboard ``` ### Composants | Composant | Port | Description | |-----------|------|-------------| | **Grafana** | 3000 | Interface de visualisation et dashboards | | **Loki** | 3100 | Base de donnĂ©es de logs | | **Promtail** | - | Agent de collecte des logs | | **Nginx** | 80 | Proxy pour accĂšs externe | ## 🚀 DĂ©ploiement ### DĂ©marrage Rapide ```bash # 1. Synchroniser la configuration ./scripts/sync-monitoring-config.sh # 2. DĂ©marrer le monitoring ./scripts/deploy-grafana.sh start # 3. Tester la connectivitĂ© ./scripts/test-monitoring.sh ``` ### Commandes de Gestion ```bash # DĂ©marrer ./scripts/deploy-grafana.sh start # ArrĂȘter ./scripts/deploy-grafana.sh stop # RedĂ©marrer ./scripts/deploy-grafana.sh restart # VĂ©rifier le statut ./scripts/deploy-grafana.sh status # Voir les logs ./scripts/deploy-grafana.sh logs grafana ./scripts/deploy-grafana.sh logs loki ./scripts/deploy-grafana.sh logs promtail ``` ## 🔗 AccĂšs ### URLs Principales | Service | URL | Description | |---------|-----|-------------| | **Grafana** | [https://dev4.4nkweb.com/grafana/](https://dev4.4nkweb.com/grafana/) | Interface principale | | **Loki API** | [https://dev4.4nkweb.com/loki/](https://dev4.4nkweb.com/loki/) | API de logs | | **Grafana Local** | [http://localhost:3000](http://localhost:3000) | AccĂšs local | ### Identifiants - **Utilisateur** : `admin` - **Mot de passe** : `admin123` ## 📊 Dashboards Disponibles ### 1. Vue d'ensemble LeCoffre - **ID** : `lecoffre-overview` - **Description** : Dashboard principal avec vue d'ensemble de tous les services - **MĂ©triques** : Erreurs par service, volume de logs, logs d'erreur en temps rĂ©el ### 2. Bitcoin & Miner - **ID** : `bitcoin-miner` - **Description** : Monitoring spĂ©cialisĂ© pour Bitcoin et le mineur - **MĂ©triques** : Nouveaux blocs, blocs minĂ©s, erreurs blockchain ### 3. Services Applications - **ID** : `services-overview` - **Description** : Monitoring des services applicatifs - **MĂ©triques** : Volume de logs par service, erreurs applications ## 📝 Collecte des Logs ### Structure des Logs ``` logs/ ├── bitcoin/ # Logs Bitcoin Signet ├── blindbit/ # Logs Oracle Blindbit ├── sdk_relay/ # Logs Relay WebSocket ├── sdk_signer/ # Logs Service de signature ├── sdk_storage/ # Logs Stockage temporaire ├── lecoffre-back/ # Logs Backend API ├── lecoffre-front/ # Logs Frontend ├── ihm_client/ # Logs Interface de gestion ├── tor/ # Logs Proxy Tor ├── miner/ # Logs Mineur Bitcoin └── nginx/ # Logs Proxy Nginx ``` ### Scripts de Gestion ```bash # Collecter les logs de tous les services ./scripts/collect-logs.sh # Collecter les logs d'un service spĂ©cifique ./scripts/collect-logs.sh bitcoin-signet ./scripts/collect-logs.sh sdk_relay # Configurer la centralisation des logs ./scripts/setup-logs.sh ``` ## 🔧 Configuration ### Fichiers de Configuration | Fichier | Description | |---------|-------------| | `conf/grafana/grafana.ini` | Configuration Grafana | | `conf/grafana/provisioning/datasources/loki.yml` | Source de donnĂ©es Loki | | `conf/grafana/provisioning/dashboards/dashboards.yml` | Configuration des dashboards | | `conf/promtail/promtail.yml` | Configuration Promtail | | `conf/nginx/grafana.conf` | Configuration Nginx pour Grafana | | `conf/monitoring.conf` | Configuration centralisĂ©e | ### Variables d'Environnement ```bash # Mot de passe admin Grafana GRAFANA_ADMIN_PASSWORD=admin123 # Ports des services GRAFANA_PORT=3000 LOKI_PORT=3100 ``` ## 🔍 RequĂȘtes Logs Utiles ### Recherche d'Erreurs ```logql # Erreurs de tous les services {job=~".*"} |= "error" # Erreurs Bitcoin spĂ©cifiques {job="bitcoin"} |= "error" # Erreurs des services applicatifs {job=~"lecoffre-back|lecoffre-front|ihm_client"} |= "error" ``` ### MĂ©triques de Performance ```logql # Volume de logs par service sum by (service) (count_over_time({job=~".*"} [5m])) # Erreurs par minute sum by (service) (rate({job=~".*"} |= "error" [1m])) ``` ### Monitoring Bitcoin ```logql # Nouveaux blocs {job="bitcoin"} |= "block" # Transactions {job="bitcoin"} |= "tx" # Blocs minĂ©s {job="miner"} |= "mined" ``` ## 🚹 Alertes ### Configuration des Alertes Les alertes sont configurĂ©es dans Grafana pour : - **Erreurs critiques** : > 10 erreurs en 5 minutes - **Services arrĂȘtĂ©s** : Service non accessible - **ProblĂšmes Bitcoin** : Blocs non minĂ©s - **ProblĂšmes de connectivitĂ©** : Connexions WebSocket Ă©chouĂ©es ### Canaux de Notification - **Email** : Configuration dans Grafana - **Webhook** : IntĂ©gration avec systĂšmes externes - **Slack** : Notifications en temps rĂ©el ## đŸ› ïž Maintenance ### Rotation des Logs ```bash # Configuration automatique avec logrotate conf/logrotate/*.conf # Rotation quotidienne, rĂ©tention 7 jours # Compression automatique ``` ### Sauvegarde ```bash # Sauvegarder les dashboards Grafana docker exec grafana grafana-cli admin export-dashboard > dashboards-backup.json # Sauvegarder la configuration tar -czf monitoring-config-backup.tar.gz conf/grafana/ conf/promtail/ ``` ### Mise Ă  Jour ```bash # Mise Ă  jour des images Docker docker compose pull grafana loki promtail # RedĂ©marrage avec nouvelles images docker compose up -d grafana loki promtail ``` ## 🔐 SĂ©curitĂ© ### Authentification - **Utilisateur unique** : `admin` - **Mot de passe fort** : ConfigurĂ© via variable d'environnement - **AccĂšs anonyme** : DĂ©sactivĂ© - **HTTPS** : ForcĂ© via Nginx ### RĂ©seau - **Isolation Docker** : Services dans le rĂ©seau `btcnet` - **Ports exposĂ©s** : Uniquement en localhost - **Proxy Nginx** : AccĂšs externe sĂ©curisĂ© ### DonnĂ©es Sensibles - **Aucun secret** dans les logs - **Rotation automatique** des logs - **Chiffrement** des donnĂ©es au repos (optionnel) ## 📈 MĂ©triques et KPIs ### DisponibilitĂ© des Services - **Uptime** : Pourcentage de temps de fonctionnement - **Healthchecks** : Statut des services - **Restarts** : Nombre de redĂ©marrages ### Performance - **Temps de rĂ©ponse** : Latence des API - **Throughput** : RequĂȘtes par seconde - **Erreurs** : Taux d'erreur par service ### Bitcoin - **Blocs minĂ©s** : Nombre de blocs par heure - **Transactions** : Volume de transactions - **Fees** : Frais de transaction moyens ## 🆘 DĂ©pannage ### ProblĂšmes Courants 1. **Grafana non accessible** ```bash # VĂ©rifier le statut docker compose ps grafana # VĂ©rifier les logs docker compose logs grafana ``` 2. **Logs non collectĂ©s** ```bash # VĂ©rifier Promtail docker compose logs promtail # VĂ©rifier Loki docker compose logs loki ``` 3. **Dashboards vides** ```bash # VĂ©rifier la source de donnĂ©es # Aller dans Configuration > Data Sources > Loki ``` ### Commandes de Diagnostic ```bash # Test de connectivitĂ© complet ./scripts/test-monitoring.sh # VĂ©rification des services ./scripts/deploy-grafana.sh status # Logs en temps rĂ©el ./scripts/deploy-grafana.sh logs grafana ``` ## 📚 Documentation AssociĂ©e - **[`../IA_agents/flux.md`](../IA_agents/flux.md)** - Architecture gĂ©nĂ©rale - **[`ARCHITECTURE.md`](ARCHITECTURE.md)** - Architecture dĂ©taillĂ©e - **[`CONFIGURATION_SERVICES.md`](CONFIGURATION_SERVICES.md)** - Configuration des services --- **💡 Conseil** : Commencez par le dashboard "Vue d'ensemble LeCoffre" pour avoir une vision globale du systĂšme !