4NK_node/log/README.md

6.5 KiB

📊 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

cd 4NK_node
./log/start-monitoring.sh

2. Accéder à Grafana

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

{job="4nk_node", service="bitcoin"}

Logs d'erreur

{job="4nk_node"} |= "error"

Logs des dernières 5 minutes

{job="4nk_node"} [5m]

Recherche de texte

{job="4nk_node"} |~ "connection.*failed"

🛠️ Commandes Utiles

Démarrer le monitoring

docker compose -f log-monitoring.yml up -d

Voir les logs des services de monitoring

docker compose -f log-monitoring.yml logs -f

Arrêter le monitoring

docker compose -f log-monitoring.yml down

Redémarrer un service spécifique

docker compose -f log-monitoring.yml restart grafana

Vérifier le statut

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

docker compose -f log-monitoring.yml logs grafana

Promtail ne collecte pas de logs

docker compose -f log-monitoring.yml logs promtail

Loki ne stocke pas de logs

docker compose -f log-monitoring.yml logs loki

Vérifier les permissions

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.