4NK_node/log/README.md

204 lines
6.5 KiB
Markdown

# 📊 Monitoring des Logs 4NK_node
Ce répertoire contient la configuration complète pour surveiller et analyser les logs de tous les services 4NK_node en temps réel.
## 🚀 Démarrage Rapide
### 1. Démarrer le monitoring
```bash
cd 4NK_node
./log/start-monitoring.sh
```
### 2. Accéder à Grafana
- **URL**: http://localhost:3000
- **Utilisateur**: `admin`
- **Mot de passe**: `admin`
### 3. Dashboard principal
Le dashboard principal est automatiquement configuré et accessible à :
http://localhost:3000/d/4nk-node-logs/4nk-node-vue-d-ensemble-des-logs
## 🏗️ Architecture
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Services │ │ Promtail │ │ Loki │
│ 4NK_node │───▶│ (Collecteur) │───▶│ (Stockage) │
│ │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ Grafana │ │ Dashboards │
│ (Visualisation) │◄───│ (Analyses) │
└─────────────────┘ └─────────────────┘
```
## 📁 Structure des Fichiers
```
log/
├── README.md # Ce fichier
├── start-monitoring.sh # Script de démarrage
├── log-monitoring.yml # Docker Compose pour le monitoring
├── loki-config.yaml # Configuration Loki
├── promtail-config.yml # Configuration Promtail
├── grafana-datasources.yml # Sources de données Grafana
├── grafana-dashboards.yml # Configuration des dashboards
└── dashboards/
└── 4nk-node-overview.json # Dashboard principal
```
## 🔧 Services de Monitoring
### Loki (Port 3100)
- **Rôle**: Stockage et indexation des logs
- **Fonctionnalités**: Requêtes LogQL, rétention configurable
- **Stockage**: Fichiers locaux avec compression
### Promtail (Port 9080)
- **Rôle**: Collecte des logs Docker
- **Fonctionnalités**: Parsing JSON, étiquetage automatique
- **Collecte**: Logs de tous les conteneurs 4NK_node
### Grafana (Port 3000)
- **Rôle**: Interface de visualisation
- **Fonctionnalités**: Dashboards, alertes, requêtes temps réel
- **Accès**: Interface web avec authentification
## 📊 Dashboards Disponibles
### Dashboard Principal : "4NK Node - Vue d'ensemble des Logs"
- **Log Rate par Service**: Graphique temporel des logs par service
- **Total Logs (5m)**: Statistique du nombre total de logs
- **Logs en Temps Réel**: Affichage en direct des logs de tous les services
- **Répartition par Service**: Graphique circulaire des logs par service
- **Répartition par Niveau**: Graphique circulaire des logs par niveau (info, error, debug)
## 🔍 Requêtes LogQL Utiles
### Logs d'un service spécifique
```logql
{job="4nk_node", service="bitcoin"}
```
### Logs d'erreur
```logql
{job="4nk_node"} |= "error"
```
### Logs des dernières 5 minutes
```logql
{job="4nk_node"} [5m]
```
### Recherche de texte
```logql
{job="4nk_node"} |~ "connection.*failed"
```
## 🛠️ Commandes Utiles
### Démarrer le monitoring
```bash
docker compose -f log-monitoring.yml up -d
```
### Voir les logs des services de monitoring
```bash
docker compose -f log-monitoring.yml logs -f
```
### Arrêter le monitoring
```bash
docker compose -f log-monitoring.yml down
```
### Redémarrer un service spécifique
```bash
docker compose -f log-monitoring.yml restart grafana
```
### Vérifier le statut
```bash
docker compose -f log-monitoring.yml ps
```
## 📈 Métriques Surveillées
### Services 4NK_node
- **bitcoin**: Logs de synchronisation, connexions RPC
- **blindbit**: Logs de traitement des blocs, erreurs
- **sdk_relay1/2/3**: Logs de connexion Bitcoin, erreurs RPC
- **sdk_signer**: Logs de connexion aux relays, erreurs WebSocket
- **sdk_storage**: Logs de base de données, erreurs de stockage
- **ihm_client**: Logs de l'interface utilisateur
- **tor**: Logs de connexion, erreurs de proxy
### Niveaux de Log
- **INFO**: Informations générales, statut des services
- **ERROR**: Erreurs critiques, échecs de connexion
- **DEBUG**: Informations détaillées pour le débogage
- **WARN**: Avertissements, problèmes non critiques
## 🔒 Sécurité
- **Grafana**: Authentification requise (admin/admin)
- **Loki**: Pas d'authentification (accès local uniquement)
- **Promtail**: Pas d'authentification (collecte locale uniquement)
- **Ports exposés**: 3000 (Grafana), 3100 (Loki), 9080 (Promtail)
## 🚨 Dépannage
### Grafana ne démarre pas
```bash
docker compose -f log-monitoring.yml logs grafana
```
### Promtail ne collecte pas de logs
```bash
docker compose -f log-monitoring.yml logs promtail
```
### Loki ne stocke pas de logs
```bash
docker compose -f log-monitoring.yml logs loki
```
### Vérifier les permissions
```bash
ls -la log/
chmod +x log/start-monitoring.sh
```
## 📝 Personnalisation
### Ajouter un nouveau service
1. Modifier `promtail-config.yml`
2. Ajouter une nouvelle section `static_configs`
3. Redémarrer Promtail
### Créer un nouveau dashboard
1. Créer un fichier JSON dans `dashboards/`
2. Modifier `grafana-dashboards.yml` si nécessaire
3. Redémarrer Grafana
### Modifier la rétention des logs
1. Modifier `loki-config.yaml`
2. Ajuster `retention_period` et `chunk_retain_period`
3. Redémarrer Loki
## 🌟 Fonctionnalités Avancées
- **Alertes**: Configuration d'alertes sur des patterns de logs
- **Rétention**: Gestion automatique de la rétention des logs
- **Compression**: Compression automatique des anciens logs
- **Recherche**: Recherche full-text dans tous les logs
- **Filtrage**: Filtrage par service, niveau, timestamp
- **Export**: Export des logs en différents formats
---
**Note**: Ce système de monitoring est conçu pour un environnement de développement. Pour la production, considérez l'ajout d'authentification et de chiffrement.