# 📊 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.