7.8 KiB
7.8 KiB
📊 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
# 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
# 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/ | Interface principale |
Loki API | https://dev4.4nkweb.com/loki/ | API de logs |
Grafana Local | 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
# 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
# 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
# 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
# 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
# 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
# Configuration automatique avec logrotate
conf/logrotate/*.conf
# Rotation quotidienne, rétention 7 jours
# Compression automatique
Sauvegarde
# 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
# 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
-
Grafana non accessible
# Vérifier le statut docker compose ps grafana # Vérifier les logs docker compose logs grafana
-
Logs non collectés
# Vérifier Promtail docker compose logs promtail # Vérifier Loki docker compose logs loki
-
Dashboards vides
# Vérifier la source de données # Aller dans Configuration > Data Sources > Loki
Commandes de Diagnostic
# 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
- Architecture généraleARCHITECTURE.md
- Architecture détailléeCONFIGURATION_SERVICES.md
- Configuration des services
💡 Conseil : Commencez par le dashboard "Vue d'ensemble LeCoffre" pour avoir une vision globale du système !