327 lines
7.8 KiB
Markdown
327 lines
7.8 KiB
Markdown
# 📊 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 !
|