4NK_node/docs/MONITORING_MODULES.md
Nicolas Cantu 84f1e838b7 feat: Organisation du monitoring par module
- Création de la structure grafana/ par module et projet
- Dashboards spécifiques pour Bitcoin, SDK Storage, SDK Signer, LeCoffre
- Configuration des providers Grafana par module
- Documentation complète du monitoring par module
- Ajout de la surveillance 4NK IA Back API dans Prometheus
- Organisation des dashboards en dossiers spécialisés
- Mise à jour de la documentation monitoring principale

Structure ajoutée:
- modules/*/grafana/dashboards/ (dashboards par module)
- modules/*/grafana/conf/ (configuration spécifique)
- projects/*/grafana/dashboards/ (dashboards par projet)
- docs/MONITORING_MODULES.md (guide détaillé)

Dashboards créés:
- Bitcoin Node Monitoring
- SDK Storage Monitoring
- SDK Signer Monitoring
- LeCoffre Frontend Monitoring
2025-09-11 12:36:08 +02:00

6.5 KiB

Monitoring par Module - 4NK Node

Vue d'ensemble

Chaque module et projet dispose maintenant de sa propre structure de monitoring avec des dashboards spécifiques organisés dans Grafana Central.

Structure des dossiers

Modules avec monitoring dédié

modules/
├── bitcoin/
│   └── grafana/
│       ├── dashboards/
│       │   └── bitcoin-monitoring.json
│       └── conf/
│           └── (configuration spécifique si nécessaire)
├── sdk_storage/
│   └── grafana/
│       ├── dashboards/
│       │   └── sdk-storage-monitoring.json
│       └── conf/
├── sdk_signer/
│   └── grafana/
│       ├── dashboards/
│       │   └── sdk-signer-monitoring.json
│       └── conf/
├── sdk_relay1/
│   └── grafana/
│       ├── dashboards/
│       └── conf/
├── sdk_relay2/
│   └── grafana/
│       ├── dashboards/
│       └── conf/
├── sdk_relay3/
│   └── grafana/
│       ├── dashboards/
│       └── conf/
├── ihm_client/
│   └── grafana/
│       ├── dashboards/
│       └── conf/
├── tor/
│   └── grafana/
│       ├── dashboards/
│       └── conf/
└── blindbit-oracle/
    └── grafana/
        ├── dashboards/
        └── conf/

Projets avec monitoring dédié

projects/
└── lecoffre/
    ├── lecoffre-front/
    │   └── grafana/
    │       ├── dashboards/
    │       │   └── lecoffre-front-monitoring.json
    │       └── conf/
    └── lecoffre-back/
        └── grafana/
            ├── dashboards/
            └── conf/

Organisation dans Grafana Central

Dossiers de dashboards

  • 4NK Global : Dashboards généraux du système
  • Bitcoin Module : Monitoring spécifique au nœud Bitcoin
  • SDK Storage Module : Monitoring du service de stockage SDK
  • SDK Signer Module : Monitoring du service de signature SDK
  • LeCoffre Frontend : Monitoring de l'interface LeCoffre
  • Infrastructure : Dashboards d'infrastructure
  • System : Dashboards système

Dashboards disponibles

Bitcoin Module

  • Bitcoin Node Monitoring : Statut et logs du nœud Bitcoin
    • Statut du service (up/down)
    • Logs en temps réel
    • Métriques de performance

SDK Storage Module

  • SDK Storage Monitoring : Surveillance du service de stockage
    • Statut du service
    • Logs d'opérations
    • Métriques de stockage

SDK Signer Module

  • SDK Signer Monitoring : Surveillance du service de signature
    • Statut du service
    • Logs de signatures
    • Métriques de performance

LeCoffre Frontend

  • LeCoffre Frontend Monitoring : Surveillance de l'interface
    • Statut du service
    • Logs d'interface
    • Métriques utilisateur

Configuration

Ajout d'un nouveau dashboard pour un module

  1. Créer le dashboard :

    # Créer le dossier si nécessaire
    mkdir -p modules/[module-name]/grafana/dashboards/
    
    # Créer le fichier JSON du dashboard
    touch modules/[module-name]/grafana/dashboards/[module-name]-monitoring.json
    
  2. Ajouter la configuration dans Grafana Central :

    • Modifier modules/grafana-central/conf/dashboards.yml
    • Ajouter un nouveau provider pour le module
  3. Copier le dashboard vers Grafana Central :

    # Créer le dossier de destination
    mkdir -p modules/grafana-central/dashboards/[module-name]/
    
    # Copier le dashboard
    cp modules/[module-name]/grafana/dashboards/[module-name]-monitoring.json \
       modules/grafana-central/dashboards/[module-name]/
    
  4. Redémarrer Grafana Central :

    docker-compose restart grafana-central.local
    

Structure d'un dashboard JSON

{
  "dashboard": {
    "id": null,
    "title": "Module Name Monitoring",
    "tags": ["4nk", "module-type", "specific-tag"],
    "style": "dark",
    "timezone": "browser",
    "panels": [
      {
        "id": 1,
        "title": "Service Status",
        "type": "stat",
        "targets": [
          {
            "expr": "up{job=\"4nk-module-name\"}",
            "legendFormat": "Module Name"
          }
        ],
        "fieldConfig": {
          "defaults": {
            "color": {
              "mode": "thresholds"
            },
            "thresholds": {
              "steps": [
                {
                  "color": "red",
                  "value": 0
                },
                {
                  "color": "green",
                  "value": 1
                }
              ]
            }
          }
        }
      }
    ],
    "time": {
      "from": "now-1h",
      "to": "now"
    },
    "refresh": "30s"
  }
}

Maintenance

Mise à jour des dashboards

  1. Modifier le dashboard local dans modules/[module]/grafana/dashboards/
  2. Copier vers Grafana Central :
    cp modules/[module]/grafana/dashboards/[dashboard].json \
       modules/grafana-central/dashboards/[module]/
    
  3. Redémarrer Grafana Central :
    docker-compose restart grafana-central.local
    

Sauvegarde des dashboards

# Sauvegarde de tous les dashboards
tar -czf dashboards-backup-$(date +%Y%m%d).tar.gz \
    modules/*/grafana/dashboards/ \
    projects/*/grafana/dashboards/ \
    modules/grafana-central/dashboards/

Restauration des dashboards

# Restauration
tar -xzf dashboards-backup-YYYYMMDD.tar.gz
docker-compose restart grafana-central.local

Bonnes pratiques

Naming convention

  • Dashboards : [module-name]-monitoring.json
  • Tags : Toujours inclure 4nk comme premier tag
  • Titres : Format "Module Name Monitoring"

Organisation des panels

  • Panel 1 : Statut du service (stat)
  • Panel 2 : Logs du service (logs)
  • Panel 3+ : Métriques spécifiques selon le module

Configuration des seuils

  • Vert : Service opérationnel (value: 1)
  • Rouge : Service arrêté (value: 0)

Refresh rate

  • Dashboards critiques : 10s
  • Dashboards standards : 30s
  • Dashboards de debug : 60s

Évolutions futures

  • Dashboards automatiques : Génération automatique depuis les métriques
  • Alertes par module : Configuration d'alertes spécifiques
  • Templates : Templates de dashboards réutilisables
  • Intégration CI/CD : Déploiement automatique des dashboards
  • Multi-tenant : Séparation des dashboards par environnement