4NK_node/docs/MONITORING_MODULES.md
Nicolas Cantu ef4f769f89 feat: Réécriture complète de dnsmasq.conf et décentralisation des configurations .env
- Réécriture complète de dnsmasq.conf avec résolution DNS pour tous les services .4nk-local
- Décentralisation des configurations .env vers chaque service (modules/projects)
- Création de fichiers .env et .env.exemple pour chaque service concerné
- Suppression du fichier .env global
- Mise à jour de la structure 4nk-local avec configurations décentralisées
- Amélioration de la sécurité et de l isolation des configurations par service
2025-09-12 13:20:35 +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.grafanalocal
    

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.grafanalocal
    

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.grafanalocal

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