b2051813b6e28cbd0d098deb739daaee78676245
🔋 Protection Proxmox via Onduleur EATON Ellipse PRO avec NUT
✅ Objectif
Assurer un arrêt automatique propre de toutes les VMs puis du serveur Proxmox VE en cas de coupure de courant, en s'appuyant sur l'onduleur EATON Ellipse PRO USB et le logiciel NUT (Network UPS Tools).
⚡ Composants
- UPS : EATON Ellipse PRO 850 VA (USB)
- Hôte Proxmox VE (relié physiquement via USB)
- Logiciel :
nut,nut-client,jq - Notifications : Webhook Discord
- Scripts personnalisés :
/etc/nut/upssched-cmd.sh
📅 Fonctionnement
| Événement | Action |
|---|---|
Passage sur batterie (onbatt) |
Envoie un message Discord avec état complet de l'UPS |
Retour secteur (online) |
Message Discord "Retour secteur" |
Batterie faible (shutdown) |
Arrêt propre des VMs (via qm shutdown) puis du serveur PVE |
🔧 Installation & configuration
1. Installer les paquets
apt update -y && apt install -y nut jq
2. Détection de l'UPS (via USB)
nut-scanner -U
Confirmer que le modèle EATON est bien détecté.
3. Fichiers de configuration NUT
/etc/nut/ups.conf
[eaton]
driver = usbhid-ups
port = auto
vendorid = 0463
productid = FFFF
desc = "Onduleur EATON Ellipse PRO"
/etc/nut/nut.conf
MODE=standalone
/etc/nut/upsd.users
[monuser]
password = secret
upsmon master
/etc/nut/upsmon.conf
MONITOR eaton@localhost 1 monuser secret master
NOTIFYCMD /sbin/upssched
/etc/nut/upssched.conf
CMDSCRIPT /etc/nut/upssched-cmd.sh
PIPEFN /var/run/nut/upssched.pipe
LOCKFN /var/run/nut/upssched.lock
AT COMMBAD * EXECUTE onbatt
AT COMMOK * EXECUTE online
AT LOWBATT * EXECUTE shutdown
🔢 Script /etc/nut/upssched-cmd.sh
Fonctions incluses :
- Lecture de l'état de l'UPS via
upsc - Log local horodaté
/var/log/ups-shutdown.log - Notification Webhook Discord (format Markdown)
- Arrêt propre de toutes les VMs via
qm shutdown - Attente de l'extinction totale avant
shutdown -h now
Sécurité :
Le script contient une variable SIMULATION=false pour activer le mode production.
Si mise à true, aucun arrêt ne sera réellement effectué (mode test).
Autorisations
chmod +x /etc/nut/upssched-cmd.sh
🚀 Notifications Discord
Chaque événement envoie un message via Webhook (texte ou bloc markdown).
Exemple onbatt :
🔕 pve est passé sur batterie à 2025-07-29 09:10:22
🖥️ Modèle : Ellipse PRO 850
🔋 Charge batterie : 46 %
⏳ Autonomie estimée : 168 sec
⚡ Charge appliquée : 47 %
🔌 Entrée : 237.0 V → ⚡ Sortie : 234.0 V
🔋 Puissance : 261 VA
💡 Statut UPS : OL
🛡️ Test manuel sans danger
/etc/nut/upssched-cmd.sh onbatt
Permet de vérifier les logs + Discord sans exécuter d'arrêt.
🔺 Bascule en production
nano /etc/nut/upssched-cmd.sh
# Remplacer : SIMULATION=true --> SIMULATION=false
Puis redémarrer NUT :
systemctl restart nut-server
systemctl restart nut-client
📄 Log
Fichier log local : /var/log/ups-shutdown.log
Contient tous les événements UPS avec horodatage.
💼 Auteur : Ssyleric — 2025-07-29
Description
Languages
Shell
100%