Outils pour utilisateurs

Outils du site


all:bibles:linux:applications:nut

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
all:bibles:linux:applications:nut [2025/04/01 20:04] – [démon upsd] omeylhocall:bibles:linux:applications:nut [2025/04/02 19:21] (Version actuelle) omeylhoc
Ligne 1: Ligne 1:
 +====== Network UPS Tools ======
  
 +----
 +
 +===== Installation =====
 +
 +==== Installation paquet ====
 +
 +<code bash>
 +sudo apt install nut
 +</code>
 +
 +==== Prise en compte ====
 +
 +  * Raccorder l'onduleur en USB
 +  * Rechercher l'onduleur dans la liste des périphériques USB
 +
 +<code bash>
 +lsusb
 +</code>
 +<file>
 +Bus 001 Device 004: ID 0781:5567 SanDisk Corp. Cruzer Blade
 +Bus 001 Device 006: ID 0463:ffff MGE UPS Systems UPS
 +Bus 001 Device 005: ID 0424:7800 Microchip Technology, Inc. (formerly SMSC) 
 +Bus 001 Device 003: ID 0424:2514 Microchip Technology, Inc. (formerly SMSC) USB 2.0 Hub
 +Bus 001 Device 002: ID 0424:2514 Microchip Technology, Inc. (formerly SMSC) USB 2.0 Hub
 +Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 +</file>
 +
 +Dans ce cas de figure l'onduleur est le périphérique n°6 su le bus n°1.
 +
 +> Bus **001** Device **006**: ID 0463:ffff MGE UPS Systems UPS
 +
 +
 +  * Vérifier que le périphérique est bien associé au groupe **nut**
 +
 +<code bash>
 +ls -l /dev/bus/usb/001
 +</code>
 +<file>
 +total 0
 +crw-rw-r-- 1 root root 189, 0 Apr  1 19:29 001
 +crw-rw-r-- 1 root root 189, 1 Apr  1 19:29 002
 +crw-rw-r-- 1 root root 189, 2 Apr  1 19:29 003
 +crw-rw-r-- 1 root root 189, 3 Apr  1 19:29 004
 +crw-rw-r-- 1 root root 189, 4 Apr  1 19:29 005
 +crw-rw-r-- 1 root nut  189, 5 Apr  1 19:32 006
 +</file>
 +
 +> crw-rw-r-- 1 root **nut**  189, 5 Apr  1 19:32 006
 +
 +===== Configuration =====
 +
 +==== Mode ====
 +
 +Editer le fichier <color #99d9ea>/etc/nut/nut.conf</color> pour indiquer le mode désiré :
 +
 +
 +
 +  * none : C'est la valeur par défaut après l'installation du paquet, elle indique que NUT n'a pas été configuré.
 +  * standalone :
 +     * Dans ce mode, l'onduleur est relié à la machine actuelle.
 +     * Le monitorage de l'onduleur est effectué depuis cette même machine.
 +     * Le démon nut doit lancer upsd et upsmon (en mode "master").
 +  * netserver :
 +     * Dans ce mode, l'onduleur est relié à la machine actuelle.
 +     * La gestion de l'onduleur est effectuée depuis un poste client sur le réseau.
 +     * Le démon nut doit lancer upsd et upsmon (en mode serveur, c'est à dire en tant que "master").
 +  * netclient :
 +     * Dans ce mode, l'onduleur n'est pas relié à la machine actuelle.
 +     * La gestion de l'onduleur est réalisée depuis la machine actuelle vers la machine à laquelle est connectée l'onduleur via le réseau.
 +     * Le démon nut doit lancer uniquement upsmon (en mode client, c'est à dire en tant que "slave").
 +
 +==== démon upsd ====
 +
 +upsd est le démon responsable de la communication avec l'onduleur. Il est lancé lorsque NUT est configuré dans le mode standalone ou netserver.
 +
 +=== /etc/nut/ups.conf ===
 +
 +Ce fichier permet de déclarer les différents onduleurs. Exemple avec un onduleur Eaton avec driver USB :
 +
 +<code bash>
 +[eaton]
 +    driver = usbhid-ups
 +    port = auto
 +    desc = "Eaton 3S 550"
 +</code>
 +
 +Supprimer la ligne max_retry (paramètre inconnu au démarrage du service)
 +
 +=== /etc/nut/upsd.conf ===
 +
 +<code bash>
 +MAXAGE 15
 +LISTEN 127.0.0.1 3493
 +MAXCONN 1024
 +</code>
 +
 +  * MAXAGE : permet de définir l'intervalle maximum au-delà duquel l'état de l'onduleur sera considéré comme périmée
 +  * LISTEN : permet de déclarer les PC qui pourront commander les onduleurs via upsd
 +  * MAXCONN : permet de définir le nombre de clients, d'onduleurs et d'adresses maximum supportés.
 +
 +=== /etc/nut/upsd.users ===
 +
 +Ce fichier permet de configurer les accès au démon upsd. Seul les utilisateurs présents dans upsd.users seront habilités à connaître l'état de l'onduleur. Renseigner les paramètres pour l'administrateur et au moins un utilisateur de type "master"
 +
 +<code bash>
 +[admin]
 +    password = adminpass
 +    actions = SET
 +    instcmds = ALL
 +
 +[upsmonitor]
 +    password  = userpass
 +    upsmon master
 +</code>
 +
 +==== démon upsmon ====
 +
 +Ajouter la ligne suivante dans le fichier <color #00a2e8>/etc/nut/upsmon.conf</color>
 +
 +<code bash>
 +MONITOR eaton@localhost 1 ptl userpass "master"
 +</code>
 +
 +Modifier la ligne suivante :
 +
 +<code bash>
 +SHUTDOWNCMD "sudo /sbin/shutdown -h +0"
 +</code>
 +
 +===== Mise en service =====
 +
 +==== Démarrage services ====
 +
 +<code bash>
 +sudo systemctl start nut-server
 +sudo systemctl start nut-monitor
 +sudo systemctl start nut-driver
 +</code>
 +
 +==== Vérification ====
 +
 +=== Interrogation services ===
 +
 +<code bash>
 +systemctl status nut-server
 +systemctl status nut-monitor
 +systemctl status nut-driver
 +</code>
 +
 +=== Interrogation onduleur ===
 +
 +<code bash>
 +upsc eaton@localhost
 +</code>
 +<file>
 +Init SSL without certificate database
 +battery.charge: 100
 +battery.charge.low: 20
 +battery.runtime: 3033
 +battery.type: PbAc
 +device.mfr: EATON
 +device.model: Eaton 3S 550 
 +device.serial: Blank
 +device.type: ups
 +driver.name: usbhid-ups
 +driver.parameter.pollfreq: 30
 +driver.parameter.pollinterval: 2
 +driver.parameter.port: auto
 +driver.parameter.synchronous: no
 +driver.version: 2.7.4
 +driver.version.data: MGE HID 1.40
 +driver.version.internal: 0.41
 +input.transfer.high: 264
 +input.transfer.low: 184
 +outlet.1.desc: PowerShare Outlet 1
 +outlet.1.id: 1
 +outlet.1.status: on
 +outlet.1.switchable: no
 +outlet.desc: Main Outlet
 +outlet.id: 0
 +outlet.switchable: yes
 +output.frequency.nominal: 50
 +output.voltage: 230.0
 +output.voltage.nominal: 230
 +ups.beeper.status: enabled
 +ups.delay.shutdown: 20
 +ups.delay.start: 30
 +ups.firmware: 02.08.0010
 +ups.load: 7
 +ups.mfr: EATON
 +ups.model: Eaton 3S 550 
 +ups.power.nominal: 550
 +ups.productid: ffff
 +ups.serial: Blank
 +ups.status: OL
 +ups.timer.shutdown: 0
 +ups.timer.start: 0
 +ups.type: offline / line interactive
 +ups.vendorid: 0463
 +</file>
 +
 +==== Activation services ====
 +
 +<code bash>
 +sudo systemctl enable nut-server
 +sudo systemctl enable nut-monitor
 +sudo systemctl enable nut-driver
 +</code>
 +
 +----
 +
 +===== Scripts =====
 +
 +<note tip>Penser à rendre accessible et exécutable les scripts.</note>
 +
 +==== passage sur batterie ====
 +
 +Ajouter les paramètres suivants au fichier <color #00a2e8>/etc/nut/upsmon.conf</color>
 +
 +<code bash>
 +NOTIFYCMD "/usr/local/bin/notify-on-battery.sh"
 +NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
 +</code>
 +
 +Le premier paramètre donne le script à exécuter, le deuxième indique d'envoyer une notification via SYSLOG, d'afficher un message à tous les utilisateurs connectés (WALL) et d'exécuter le script (EXEC)
 +
 +----
 +
 +===== Sources =====
 +
 +[[https://doc.ubuntu-fr.org/nut|Doc Ubuntu]]