- 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)
5.0 KiB
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
)- Tableau de bord central pour visualisation des métriques et logs
- Accès : http://grafana-central.local:3000 (admin/admin)
-
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 Bitcoin4nk-blindbit-oracle
: Logs BlindBit Oracle4nk-sdk-storage
: Logs SDK Storage4nk-sdk-relay1/2/3
: Logs des relais SDK4nk-sdk-signer
: Logs SDK Signer4nk-ihm-client
: Logs IHM Client4nk-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
-
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
- Vérifier les chemins de logs dans
-
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
- Vérifier la configuration dans
-
Grafana ne peut pas se connecter aux datasources
- Vérifier la configuration dans
datasources.yml
- Vérifier que Loki et Prometheus sont accessibles
- Vérifier la configuration dans
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