Uptime Kuma - Configuration des moniteurs¶
Uptime Kuma surveille la disponibilité de tous les services du serveur IA ProbatioVault.
Vue d'ensemble¶
| Service | URL | Statut attendu | Interval |
|---|---|---|---|
| Ollama API | http://192.168.1.82:11434/api/tags | 200 OK | 60s |
| Open WebUI | http://192.168.1.82:3000 | 200 OK | 60s |
| ComfyUI | http://192.168.1.82:8188 | 200 OK | 60s |
| JupyterLab | http://192.168.1.82:8889 | 200 OK | 60s |
| Nerfstudio Viewer | http://192.168.1.82:7007 | 200 OK | 120s |
| Homer Dashboard | http://192.168.1.82:8080 | 200 OK | 60s |
| Netdata | http://192.168.1.82:19999 | 200 OK | 60s |
| Plex Media Server | http://192.168.1.82:32400/web | 200 OK | 120s |
Total : 8 services surveillés
Accès¶
- URL : http://192.168.1.82:3001
- Première utilisation : Créer un compte admin (première inscription)
Configuration manuelle¶
1. Première connexion¶
- Ouvrir http://192.168.1.82:3001
- Créer un compte admin :
- Username :
admin - Password : (choisir un mot de passe fort)
- Email : (optionnel)
- Cliquer sur "Create"
2. Créer les moniteurs¶
Monitor 1 : Ollama API¶
Pourquoi : Service critique pour l'inférence LLM (Open WebUI dépend d'Ollama)
- Cliquer sur "Add New Monitor"
- Configuration :
- Monitor Type : HTTP(s)
- Friendly Name :
Ollama API - URL :
http://192.168.1.82:11434/api/tags - Heartbeat Interval :
60seconds - Retries :
3 - Heartbeat Retry Interval :
20seconds - Accepted Status Codes :
200-299 - Description :
LLM Inference Server - Critical - Tags :
ai,llm,critical - Cliquer sur "Save"
Monitor 2 : Open WebUI¶
Pourquoi : Interface utilisateur principale pour les LLMs
- Cliquer sur "Add New Monitor"
- Configuration :
- Monitor Type : HTTP(s)
- Friendly Name :
Open WebUI - URL :
http://192.168.1.82:3000 - Heartbeat Interval :
60seconds - Retries :
3 - Accepted Status Codes :
200-299 - Description :
ChatGPT-like interface for Ollama - Tags :
ai,llm,interface - Cliquer sur "Save"
Monitor 3 : ComfyUI¶
Pourquoi : Interface de workflow Stable Diffusion (génération d'images)
- Cliquer sur "Add New Monitor"
- Configuration :
- Monitor Type : HTTP(s)
- Friendly Name :
ComfyUI - URL :
http://192.168.1.82:8188 - Heartbeat Interval :
60seconds - Retries :
3 - Accepted Status Codes :
200-299 - Description :
Stable Diffusion workflow interface - Tags :
ai,image-generation - Cliquer sur "Save"
Monitor 4 : JupyterLab¶
Pourquoi : Interface interactive pour Nerfstudio (reconstruction 3D)
- Cliquer sur "Add New Monitor"
- Configuration :
- Monitor Type : HTTP(s)
- Friendly Name :
JupyterLab - URL :
http://192.168.1.82:8889 - Heartbeat Interval :
60seconds - Retries :
3 - Accepted Status Codes :
200-299 - Description :
Nerfstudio interactive notebooks - Tags :
ai,3d-reconstruction,notebook - Cliquer sur "Save"
Monitor 5 : Nerfstudio Viewer¶
Pourquoi : Viewer pour les trainings 3D (lancé à la demande)
- Cliquer sur "Add New Monitor"
- Configuration :
- Monitor Type : HTTP(s)
- Friendly Name :
Nerfstudio Viewer - URL :
http://192.168.1.82:7007 - Heartbeat Interval :
120seconds (service on-demand, moins fréquent) - Retries :
2 - Accepted Status Codes :
200-299 - Description :
3D reconstruction training viewer (on-demand) - Tags :
ai,3d-reconstruction,on-demand - Cliquer sur "Save"
Monitor 6 : Homer Dashboard¶
Pourquoi : Dashboard principal pour accéder à tous les services
- Cliquer sur "Add New Monitor"
- Configuration :
- Monitor Type : HTTP(s)
- Friendly Name :
Homer Dashboard - URL :
http://192.168.1.82:8080 - Heartbeat Interval :
60seconds - Retries :
3 - Accepted Status Codes :
200-299 - Description :
Services dashboard - Tags :
dashboard,monitoring - Cliquer sur "Save"
Monitor 7 : Netdata¶
Pourquoi : Monitoring temps réel des ressources système (CPU, RAM, GPU)
- Cliquer sur "Add New Monitor"
- Configuration :
- Monitor Type : HTTP(s)
- Friendly Name :
Netdata - URL :
http://192.168.1.82:19999 - Heartbeat Interval :
60seconds - Retries :
3 - Accepted Status Codes :
200-299 - Description :
Real-time system monitoring (CPU, RAM, GPU) - Tags :
monitoring,system - Cliquer sur "Save"
Monitor 8 : Plex Media Server¶
Pourquoi : Serveur de streaming média
- Cliquer sur "Add New Monitor"
- Configuration :
- Monitor Type : HTTP(s)
- Friendly Name :
Plex Media Server - URL :
http://192.168.1.82:32400/web - Heartbeat Interval :
120seconds (moins critique) - Retries :
2 - Accepted Status Codes :
200-299 - Description :
Media streaming server - Tags :
media,streaming - Cliquer sur "Save"
3. Organiser par tags¶
Les tags permettent de filtrer les moniteurs par catégorie :
ai: Services IA (Ollama, ComfyUI, JupyterLab, Nerfstudio)llm: Services LLM (Ollama, Open WebUI)monitoring: Services de monitoring (Netdata, Homer)media: Services média (Plex)critical: Services critiques (Ollama)on-demand: Services à la demande (Nerfstudio Viewer)
Notifications (optionnel)¶
Discord¶
- Aller dans Settings → Notifications
- Cliquer sur "Setup Notification"
- Type : Discord
- Friendly Name :
Discord Alerts - Discord Webhook URL : (créer un webhook Discord)
- Cliquer sur "Test" puis "Save"
Email (SMTP)¶
- Aller dans Settings → Notifications
- Cliquer sur "Setup Notification"
- Type : Email (SMTP)
- Configuration :
- Friendly Name :
Email Alerts - SMTP Host :
smtp.gmail.com - SMTP Port :
587 - Security :
TLS - From Email :
votre-email@gmail.com - To Email :
alerts@probatiovault.com - Username :
votre-email@gmail.com - Password : (mot de passe d'application Gmail)
- Cliquer sur "Test" puis "Save"
Slack¶
- Aller dans Settings → Notifications
- Cliquer sur "Setup Notification"
- Type : Slack
- Slack Webhook URL : (créer un webhook Slack)
- Cliquer sur "Test" puis "Save"
Configuration des alertes¶
Pour chaque monitor, vous pouvez configurer :
- Cliquer sur le monitor → "Edit"
- Onglet "Notifications"
- Sélectionner les notifications à activer :
- ✅ Discord (pour tous les monitors critiques)
- ✅ Email (pour les monitors critiques uniquement)
- ⚠️ Slack (optionnel)
- Configurer le comportement :
- Send on Down : ✅ (envoyer quand le service est DOWN)
- Send on Up : ✅ (envoyer quand le service revient UP)
- Cliquer sur "Save"
Dashboard public (optionnel)¶
Pour créer un dashboard public accessible sans authentification :
- Settings → General → Status Page
- Cliquer sur "Add New Status Page"
- Configuration :
- Slug :
probatiovault-ia - Title :
ProbatioVault IA Server Status - Description :
Real-time status of AI services - Sélectionner les monitors à afficher
- Cliquer sur "Save"
- URL publique :
http://192.168.1.82:3001/status/probatiovault-ia
Automation via API (future)¶
Uptime Kuma utilise Socket.IO pour son API, pas REST classique. Pour automatiser :
1. Créer un API token¶
- Settings → Security → Access Tokens
- Cliquer sur "Add"
- Name :
ansible-automation - Expiration :
Never - Permissions :
Read & Write - Cliquer sur "Generate"
- Copier le token (il ne sera plus visible)
2. Stocker le token dans Vault¶
curl -X POST \
-H "X-Vault-Token: hvs.uMrUpCheNfLQKBgiEBAO4Suc" \
-d '{"data":{"token":"uptime-kuma-api-token-here"}}' \
https://vault.dev.probatiovault.com/v1/kv/data/ci/uptime-kuma
3. Script Python avec Socket.IO¶
import socketio
sio = socketio.Client()
sio.connect('http://192.168.1.82:3001')
# Authentification
sio.emit('login', {
'username': 'admin',
'password': 'your-password',
'token': ''
})
# Créer un monitor
sio.emit('add', {
'type': 'http',
'name': 'Ollama API',
'url': 'http://192.168.1.82:11434/api/tags',
'interval': 60
})
4. API REST alternative¶
Uptime Kuma expose aussi une API REST limitée :
# Liste des moniteurs
curl -H "Authorization: Bearer $TOKEN" \
http://192.168.1.82:3001/api/monitors
# Statut d'un monitor
curl -H "Authorization: Bearer $TOKEN" \
http://192.168.1.82:3001/api/monitor/1
Export/Import de configuration¶
Export¶
- Settings → Backup
- Cliquer sur "Export"
- Format : JSON
- Télécharger
uptime-kuma-backup.json
Import¶
- Settings → Backup
- Cliquer sur "Import"
- Sélectionner le fichier JSON
- Cliquer sur "Import"
Cela permet de restaurer tous les moniteurs en une seule fois.
Maintenance¶
Mise à jour Uptime Kuma¶
# Redéployer avec la dernière version
cd /opt/probatiovault-ia-server/ansible
ansible-playbook -i inventory/hosts playbooks/install-uptime-kuma.yml
Le playbook est idempotent, il met à jour le container sans perdre les données.
Sauvegarde des données¶
# Backup manuel
tar czf /tmp/uptime-kuma-backup-$(date +%Y%m%d).tar.gz /data/uptime-kuma/
# Restauration
tar xzf /tmp/uptime-kuma-backup-*.tar.gz -C /
Logs¶
# Voir les logs du container
sudo docker logs uptime-kuma
# Suivre les logs en temps réel
sudo docker logs -f uptime-kuma
Troubleshooting¶
Container ne démarre pas¶
# Vérifier le statut
sudo docker ps -a | grep uptime-kuma
# Redémarrer
sudo docker restart uptime-kuma
# Vérifier les logs
sudo docker logs uptime-kuma
Monitors toujours DOWN¶
- Vérifier que le service cible est accessible :
- Vérifier les codes HTTP acceptés dans le monitor (200-299)
- Augmenter le timeout (Settings → Monitor → Advanced)
Notifications ne partent pas¶
- Tester la notification : Settings → Notifications → Test
- Vérifier les logs :
sudo docker logs uptime-kuma - Vérifier les credentials (SMTP, webhooks)
Intégration Homer¶
Uptime Kuma est référencé dans Homer :
- name: "Monitoring & Logs"
items:
- name: "Uptime Kuma"
logo: "assets/tools/uptime-kuma.png"
subtitle: "Service uptime monitoring"
url: "http://192.168.1.82:3001"
Accès depuis Homer : http://192.168.1.82:8080
Résumé des ports¶
| Service | Port | Protocole |
|---|---|---|
| Uptime Kuma | 3001 | HTTP |
| Uptime Kuma API | 3001 | Socket.IO |
Ressources¶
- Documentation : https://github.com/louislam/uptime-kuma/wiki
- API : https://github.com/louislam/uptime-kuma/wiki/API
- Backup/Restore : https://github.com/louislam/uptime-kuma/wiki/Backup