4NK_node/docs/MONITORING.md
Nicolas Cantu f7e110446b feat: Ajout du système de monitoring centralisé
- Nouveau module Grafana central partagé
- Installation de Loki pour la collecte de logs
- Installation de Prometheus pour les métriques
- Installation de Promtail pour la collecte de logs
- Configuration DNS pour tous les services de monitoring
- Documentation complète du monitoring dans docs/MONITORING.md
- Correction de la résolution DNS pour Bitcoin
- Suppression de log-monitoring.yml obsolète
- Mise à jour du CHANGELOG et VERSION

Services ajoutés:
- grafana-central.local:3000 (tableau de bord)
- loki.local:3100 (logs)
- prometheus.local:9091 (métriques)
- promtail.local (collecte de logs)
2025-09-11 12:08:34 +02:00

5.0 KiB

Monitoring et Observabilité 4NK

Vue d'ensemble

Le système de monitoring 4NK utilise une stack complète d'observabilité basée sur Grafana, Loki et Prometheus pour surveiller l'ensemble des services du projet.

Architecture

Services de monitoring

  • Grafana Central (grafana-central.local:3000)

  • Loki (loki.local:3100)

    • Système de collecte et d'indexation des logs
    • Stockage des logs de tous les services 4NK
  • Prometheus (prometheus.local:9091)

    • Collecte et stockage des métriques de performance
    • Surveillance des services et alertes
  • Promtail (promtail.local)

    • Agent de collecte des logs
    • Envoi des logs vers Loki

Configuration

Datasources Grafana

  • Loki-4NK : Logs des services 4NK
  • Prometheus-4NK : Métriques des services 4NK
  • Loki-Infra : Logs d'infrastructure (si disponible)
  • Prometheus-Infra : Métriques d'infrastructure (si disponible)

Collecte de logs

Promtail collecte automatiquement les logs de :

Services 4NK

  • 4nk-bitcoin : Logs Bitcoin
  • 4nk-blindbit-oracle : Logs BlindBit Oracle
  • 4nk-sdk-storage : Logs SDK Storage
  • 4nk-sdk-relay1/2/3 : Logs des relais SDK
  • 4nk-sdk-signer : Logs SDK Signer
  • 4nk-ihm-client : Logs IHM Client
  • 4nk-coffre-front/back : Logs LeCoffre

Logs système

  • Logs Docker containers
  • Logs système
  • Logs Grafana Central

Collecte de métriques

Prometheus surveille les métriques de :

  • Bitcoin Core (port 38332)
  • BlindBit Oracle (port 8000)
  • SDK Storage (port 8080)
  • SDK Relay 1/2/3 (port 8090)
  • SDK Signer (port 9090)
  • IHM Client (port 80)
  • Conteneurs Docker
  • Node Exporter (si installé)

Dashboards

Dashboards 4NK

  • 4NK Overview : Vue d'ensemble des services
  • Bitcoin Monitoring : Surveillance du nœud Bitcoin
  • SDK Services : Métriques des services SDK

Dashboards Infrastructure

  • System Overview : Vue d'ensemble du système
  • Docker Containers : Surveillance des conteneurs

Dashboards System

  • Node Metrics : Métriques du serveur
  • Network Monitoring : Surveillance réseau

Utilisation

Accès aux services

# Grafana (tableau de bord principal)
http://grafana-central.local:3000

# Prometheus (métriques brutes)
http://prometheus.local:9091

# Loki (logs bruts)
http://loki.local:3100

Requêtes de logs dans Grafana

# Tous les logs Bitcoin
{job="4nk-bitcoin"}

# Logs d'erreur de tous les services
{job=~"4nk-.*"} |= "error"

# Logs des dernières 5 minutes
{job="4nk-bitcoin"} |= "error" | json

Requêtes de métriques dans Grafana

# Services en ligne
up{job=~"4nk-.*"}

# Utilisation CPU
rate(process_cpu_seconds_total[5m])

# Utilisation mémoire
process_resident_memory_bytes

Maintenance

Redémarrage des services

# Redémarrage complet du monitoring
docker-compose restart loki.local prometheus.local promtail.local grafana-central.local

# Redémarrage d'un service spécifique
docker-compose restart loki.local

Sauvegarde des données

# Sauvegarde des volumes de monitoring
docker run --rm -v 4nk_node_loki_data:/data -v $(pwd):/backup alpine tar czf /backup/loki-backup.tar.gz /data
docker run --rm -v 4nk_node_prometheus_data:/data -v $(pwd):/backup alpine tar czf /backup/prometheus-backup.tar.gz /data
docker run --rm -v 4nk_node_grafana_central_data:/data -v $(pwd):/backup alpine tar czf /backup/grafana-backup.tar.gz /data

Restauration des données

# Restauration Loki
docker run --rm -v 4nk_node_loki_data:/data -v $(pwd):/backup alpine tar xzf /backup/loki-backup.tar.gz -C /

# Restauration Prometheus
docker run --rm -v 4nk_node_prometheus_data:/data -v $(pwd):/backup alpine tar xzf /backup/prometheus-backup.tar.gz -C /

# Restauration Grafana
docker run --rm -v 4nk_node_grafana_central_data:/data -v $(pwd):/backup alpine tar xzf /backup/grafana-backup.tar.gz -C /

Dépannage

Problèmes courants

  1. Promtail ne collecte pas les logs

    • Vérifier les chemins de logs dans promtail-config.yml
    • Vérifier les permissions sur les fichiers de logs
  2. Prometheus ne collecte pas les métriques

    • Vérifier la configuration dans prometheus.yml
    • Vérifier que les services exposent des métriques sur /metrics
  3. Grafana ne peut pas se connecter aux datasources

    • Vérifier la configuration dans datasources.yml
    • Vérifier que Loki et Prometheus sont accessibles

Logs de diagnostic

# Logs Promtail
docker logs promtail.local

# Logs Loki
docker logs loki.local

# Logs Prometheus
docker logs prometheus.local

# Logs Grafana
docker logs grafana-central.local

Évolutions futures

  • Ajout d'AlertManager pour les alertes
  • Intégration avec des services externes (Slack, email)
  • Dashboards personnalisés pour chaque service
  • Métriques personnalisées pour les services 4NK
  • Intégration avec des outils de tracing distribués