204 lines
6.5 KiB
Markdown
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.
|