Aller au contenu

Pedago Watch — Vue d'ensemble

Description

Pedago Watch est la stack de monitoring centralisée pour tous les projets pédagogiques d'EPITECH Bénin. Elle surveille automatiquement tous les conteneurs Docker du VPS et agrège leurs logs.

La stack est indépendante des applications : un redémarrage d'Alert-Parent ne touche pas le monitoring, et inversement.

Services

Service Rôle Port hôte Port interne URL publique
Uptime Kuma Monitoring de disponibilité (HTTP, TCP) 127.0.0.1:6001 3001 uptime.epitools.bj
Grafana Dashboards, exploration de logs, alertes 127.0.0.1:6050 3000 grafana.epitools.bj
Loki Stockage et indexation des logs 127.0.0.1:6100 3100 interne uniquement
Promtail Collecte des logs Docker et envoi vers Loki aucun interne uniquement

Architecture

graph TB
    subgraph VPS["VPS Hostinger"]
        subgraph Apps["Applications"]
            Backend["Alert-Parent Backend"]
            Frontend["Alert-Parent Frontend"]
            Autres["Autres projets..."]
        end

        subgraph Watch["Pedago Watch"]
            Promtail["Promtail"]
            Loki["Loki :6100"]
            Grafana["Grafana :6050"]
            Uptime["Uptime Kuma :6001"]
        end

        Docker["Docker Socket"]
    end

    Backend -->|logs stdout| Docker
    Frontend -->|logs stdout| Docker
    Autres -->|logs stdout| Docker
    Docker -->|collecte| Promtail
    Promtail -->|push| Loki
    Grafana -->|query| Loki
    Uptime -->|HTTP check| Backend
    Uptime -->|HTTP check| Frontend

CI/CD

Le pipeline GitHub Actions se déclenche automatiquement sur push vers main :

  1. Copie du docker-compose.yml sur le VPS via SCP
  2. Reconstruction du fichier .env depuis le secret DOTENV_FILE
  3. Pull des images et redémarrage des services
  4. Vérification que les services répondent

Gestion des services

Démarrer / arrêter

cd /root/projects/pedago-tools-monitoring

# Démarrer tous les services
docker compose up -d

# Arrêter tous les services
docker compose down

# Redémarrer un service spécifique
docker compose restart grafana
docker compose restart uptime-kuma
docker compose restart loki

Vérifier l'état

# Tous les conteneurs
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

# Logs d'un service
docker compose logs grafana --tail 20
docker compose logs loki --tail 20

Rétention des logs

Les logs sont conservés 30 jours dans Loki, puis supprimés automatiquement.

Volumes Docker

Les données persistantes sont stockées dans des volumes Docker :

Volume Contenu
uptime-kuma-data Configuration et historique Uptime Kuma
grafana-data Dashboards et configuration Grafana
loki-data Logs indexés par Loki

Sauvegarde des volumes

# Sauvegarder les données Uptime Kuma
docker run --rm -v monitoring_uptime-kuma-data:/data -v $(pwd):/backup alpine tar czf /backup/uptime-kuma-backup.tar.gz /data

# Sauvegarder les données Grafana
docker run --rm -v monitoring_grafana-data:/data -v $(pwd):/backup alpine tar czf /backup/grafana-backup.tar.gz /data