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.
- Repository : EpitechAfrik/pedago-tools-monitoring
- Déploiement : automatique via GitHub Actions sur push
main - Chemin VPS :
/root/projects/pedago-tools-monitoring
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 :
- Copie du
docker-compose.ymlsur le VPS via SCP - Reconstruction du fichier
.envdepuis le secretDOTENV_FILE - Pull des images et redémarrage des services
- 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