Aller au contenu

Runbook: Configuration Bull Board (Monitoring)

PD-3 CA-05 | Temps max: 15 min | Prérequis: Docker installé


Prérequis

  • Docker et Docker Compose installés
  • Accès au serveur où tourne le backend
  • Credentials Redis (Vault: kv/infra/redis)

Diagnostic

1. Vérifier si Bull Board est déjà déployé

docker ps | grep bull-board

2. Vérifier la connectivité Redis

redis-cli -a $REDIS_PASSWORD ping

Résultat attendu: PONG


Résolution

Étape 1: Créer le fichier docker-compose

cat > /opt/bull-board/docker-compose.yml << 'EOF'
version: '3.8'

services:
  bull-board:
    image: deadly0/bull-board:latest
    container_name: bull-board
    restart: unless-stopped
    ports:
      - "3001:3000"
    environment:
      REDIS_HOST: ${REDIS_HOST:-localhost}
      REDIS_PORT: ${REDIS_PORT:-6379}
      REDIS_PASSWORD: ${REDIS_PASSWORD}
      REDIS_USE_TLS: ${REDIS_TLS:-false}
      BULL_PREFIX: bull
    networks:
      - probatiovault

networks:
  probatiovault:
    external: true
EOF

Étape 2: Créer le fichier .env

cat > /opt/bull-board/.env << EOF
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=your-redis-password
REDIS_TLS=false
EOF

Étape 3: Démarrer Bull Board

cd /opt/bull-board
docker-compose up -d

Étape 4: Vérifier le démarrage

docker logs bull-board --tail 20

Résultat attendu: Server is running on port 3000


Vérification

1. Accéder à l'interface web

curl -s http://localhost:3001/ | head -20

Résultat attendu: Page HTML de Bull Board

2. Vérifier les queues visibles

Ouvrir dans le navigateur: http://SERVER_IP:3001

Résultat attendu: - Queue default visible - Queue backup visible - Queue export visible - Queue blockchain visible

3. Vérifier les jobs

Dans l'interface Bull Board: - Onglet "Waiting": jobs en attente - Onglet "Active": jobs en cours - Onglet "Completed": jobs terminés - Onglet "Failed": jobs en échec


Rollback

Arrêter Bull Board

cd /opt/bull-board
docker-compose down

Supprimer complètement

cd /opt/bull-board
docker-compose down -v
rm -rf /opt/bull-board

Configuration avancée

Ajouter authentification (recommandé en prod)

# Dans docker-compose.yml, ajouter:
services:
  bull-board:
    environment:
      # ... autres vars
      BULL_BOARD_USERNAME: admin
      BULL_BOARD_PASSWORD: secure-password

Configurer Nginx reverse proxy

server {
    listen 443 ssl;
    server_name bull-board.probatiovault.com;

    location / {
        proxy_pass http://localhost:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Alternative: API native

Si Bull Board n'est pas souhaité, utiliser les endpoints API natifs:

# Statut d'un job
curl http://localhost:3000/jobs/{queue}/{jobId}/status

# Statistiques
curl http://localhost:3000/jobs/stats

# Liste des jobs failed
curl http://localhost:3000/jobs/failed

# Intégrité des données (PD-3)
curl http://localhost:3000/health/jobs/integrity

Critère de succès

  • Container Bull Board running
  • Interface web accessible
  • Toutes les queues visibles (default, backup, export, blockchain)
  • Jobs visibles dans les différents onglets

Références

  • PD-3-specification.md: CA-02 (observabilité), INV-02
  • PD-3-plan.md: Section 11 Phase 3
  • TC-INV-02: État consultable à tout moment