[Risolto] Gestione UPS con NUT

Utilizzo di applicazioni in ambito professionale.

[Risolto] Gestione UPS con NUT

Messaggioda maucladeb » martedì 26 settembre 2017, 23:16

Una buona serata a tutti
sono giorni che sto tentando di configurare NUT con un UPS APC, ma i risultati sono scarsi.
NUT vede il gruppo, usando NUT MONITOR riesco a monitore l'UPS, se tolgo l'alimentazione lo segnala a video, ma non procede ne con lo shutdown ne con il lancio dell'applicazione di invio mail.
Ho seguito le varie guide che ho trovato on line, ma niente.
Il tutto dovrebbe funzionare su Lubuntu 14.04.
Chiedo un aiuto
Grazie
Ultima modifica di maucladeb il mercoledì 27 settembre 2017, 23:03, modificato 1 volta in totale.
Maucladeb
Avatar utente
maucladeb
Prode Principiante
 
Messaggi: 219
Iscrizione: giugno 2007
Desktop: Unity
Distribuzione: Ubuntu 16.04.3 LTS
Sesso: Maschile

Re: Gestione UPS con NUT

Messaggioda axilot » mercoledì 27 settembre 2017, 0:27

Non conosco Nut io uso Apcupsd per controllare un vecchio apc smart-ups.
Ma sarà più o meno simile, dovresti avere uno o più file di configurazione che vanno editati in base alle tue esigenze.
Dovresti postare il contenuto.

Per l' invio delle mail devi ovviamente installare e configurare anche un demone di posta come postfix o exim4.

Edit:
Per lo spegnimento controlla che nel file
/etc/nut/upsmon.conf

Siano presenti le seguenti righe

# define the shutdown comand
SHUTDOWNCMD "/sbin/shutdown -P now"
"Experience, the name men give to their mistakes" (O.Wilde)
Pc principale: Ubuntu 14.04 64Bit - Pc secondario: Xubuntu 16.04 32 Bit
Avatar utente
axilot
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 2180
Iscrizione: luglio 2008
Distribuzione: Ubuntu 14.04 64bit

Re: Gestione UPS con NUT

Messaggioda maucladeb » mercoledì 27 settembre 2017, 8:41

grazie axilot
postfix è installato
ecco upsmon.conf
Codice: Seleziona tutto
# Network UPS Tools: example upsmon configuration
#
# This file contains passwords, so keep it secure.

# --------------------------------------------------------------------------
#RUN_AS_USER <userid>
#
# By default, upsmon splits into two processes.  One stays as root and
# waits to run the SHUTDOWNCMD.  The other one switches to another userid
# and does everything else.
#
# The default nonprivileged user is set at compile-time with
#    'configure --with-user=...'. 
#
# You can override it with '-u <user>' when starting upsmon, or just
# define it here for convenience.
#
# Note: if you plan to use the reload feature, this file (upsmon.conf)
# must be readable by this user!  Since it contains passwords, DO NOT
# make it world-readable.  Also, do not make it writable by the upsmon
# user, since it creates an opportunity for an attack by changing the
# SHUTDOWNCMD to something malicious.
#
# For best results, you should create a new normal user like "nutmon",
# and make it a member of a "nut" group or similar.  Then specify it
# here and grant read access to the upsmon.conf for that group.
#
# This user should not have write access to upsmon.conf.
#
RUN_AS_USER nut

# --------------------------------------------------------------------------
# MONITOR <system> <powervalue> <username> <password> ("master"|"slave")
#
# List systems you want to monitor.  Not all of these may supply power
# to the system running upsmon, but if you want to watch it, it has to
# be in this section.
#
# You must have at least one of these declared.
#
# <system> is a UPS identifier in the form <upsname>@<hostname>[:<port>]
# like ups@localhost, su700@mybox, etc.
#
# Examples:
#
#  - "su700@mybox" means a UPS called "su700" on a system called "mybox"
#
#  - "fenton@bigbox:5678" is a UPS called "fenton" on a system called
#    "bigbox" which runs upsd on port "5678".
#
# The UPS names like "su700" and "fenton" are set in your ups.conf
# in [brackets] which identify a section for a particular driver.
#
# If the ups.conf on host "doghouse" has a section called "snoopy", the
# identifier for it would be "snoopy@doghouse".
#
# <powervalue> is an integer - the number of power supplies that this UPS
# feeds on this system.  Most computers only have one power supply, so this
# is normally set to 1.  You need a pretty big or special box to have any
# other value here.
#
# You can also set this to 0 for a system that doesn't supply any power,
# but you still want to monitor.  Use this when you want to hear about
# changes for a given UPS without shutting down when it goes critical,
# unless <powervalue> is 0.
#
# <username> and <password> must match an entry in that system's
# upsd.users.  If your username is "monmaster" and your password is
# "blah", the upsd.users would look like this:
#
#   [monmaster]
#      password  = blah
#      upsmon master    (or slave)
#
# "master" means this system will shutdown last, allowing the slaves
# time to shutdown first.
#
# "slave" means this system shuts down immediately when power goes critical.
#
# Examples:
#
# MONITOR myups@bigserver 1 monmaster blah master
# MONITOR su700@server.example.com 1 upsmon secretpass slave
# MONITOR myups@localhost 1 upsmon pass master   (or slave)
 MONITOR apc@localhost 1 upsmon plastica1 master   


# --------------------------------------------------------------------------
# MINSUPPLIES <num>
#
# Give the number of power supplies that must be receiving power to keep
# this system running.  Most systems have one power supply, so you would
# put "1" in this field.
#
# Large/expensive server type systems usually have more, and can run with
# a few missing.  The HP NetServer LH4 can run with 2 out of 4, for example,
# so you'd set that to 2.  The idea is to keep the box running as long
# as possible, right?
#
# Obviously you have to put the redundant supplies on different UPS circuits
# for this to make sense!  See big-servers.txt in the docs subdirectory
# for more information and ideas on how to use this feature.

MINSUPPLIES 1

# --------------------------------------------------------------------------
# SHUTDOWNCMD "<command>"
#
# upsmon runs this command when the system needs to be brought down.
#
# This should work just about everywhere ... if it doesn't, well, change it.

#SHUTDOWNCMD "/sbin/shutdown -h +0"
#SHUTDOWNCMD "shutdown -h +20"
#SHUTDOWNCMD "python /etc/nut/mail.py"
SHUTDOWNCMD "/sbin/shutdown -P now "


# --------------------------------------------------------------------------
# NOTIFYCMD <command>
#
# upsmon calls this to send messages when things happen
#
# This command is called with the full text of the message as one argument.
# The environment string NOTIFYTYPE will contain the type string of
# whatever caused this event to happen.
#
# Note that this is only called for NOTIFY events that have EXEC set with
# NOTIFYFLAG.  See NOTIFYFLAG below for more details.
#
# Making this some sort of shell script might not be a bad idea.  For more
# information and ideas, see docs/scheduling.txt
#
# Example:
# NOTIFYCMD /bin/notifyme
NOTIFYCMD /etc/nut/UPS-Notify.sh

# --------------------------------------------------------------------------
# POLLFREQ <n>
#
# Polling frequency for normal activities, measured in seconds.
#
# Adjust this to keep upsmon from flooding your network, but don't make
# it too high or it may miss certain short-lived power events.

POLLFREQ 5

# --------------------------------------------------------------------------
# POLLFREQALERT <n>
#
# Polling frequency in seconds while UPS on battery.
#
# You can make this number lower than POLLFREQ, which will make updates
# faster when any UPS is running on battery.  This is a good way to tune
# network load if you have a lot of these things running. 
#
# The default is 5 seconds for both this and POLLFREQ.

POLLFREQALERT 5

# --------------------------------------------------------------------------
# HOSTSYNC - How long upsmon will wait before giving up on another upsmon
#
# The master upsmon process uses this number when waiting for slaves to
# disconnect once it has set the forced shutdown (FSD) flag.  If they
# don't disconnect after this many seconds, it goes on without them.
#
# Similarly, upsmon slave processes wait up to this interval for the
# master upsmon to set FSD when a UPS they are monitoring goes critical -
# that is, on battery and low battery.  If the master doesn't do its job,
# the slaves will shut down anyway to avoid damage to the file systems.
#
# This "wait for FSD" is done to avoid races where the status changes
# to critical and back between polls by the master.

HOSTSYNC 15

# --------------------------------------------------------------------------
# DEADTIME - Interval to wait before declaring a stale ups "dead"
#
# upsmon requires a UPS to provide status information every few seconds
# (see POLLFREQ and POLLFREQALERT) to keep things updated.  If the status
# fetch fails, the UPS is marked stale.  If it stays stale for more than
# DEADTIME seconds, the UPS is marked dead.
#
# A dead UPS that was last known to be on battery is assumed to have gone
# to a low battery condition.  This may force a shutdown if it is providing
# a critical amount of power to your system.
#
# Note: DEADTIME should be a multiple of POLLFREQ and POLLFREQALERT.
# Otherwise you'll have "dead" UPSes simply because upsmon isn't polling
# them quickly enough.  Rule of thumb: take the larger of the two
# POLLFREQ values, and multiply by 3.

DEADTIME 15

# --------------------------------------------------------------------------
# POWERDOWNFLAG - Flag file for forcing UPS shutdown on the master system
#
# upsmon will create a file with this name in master mode when it's time
# to shut down the load.  You should check for this file's existence in
# your shutdown scripts and run 'upsdrvctl shutdown' if it exists.
#
# See the shutdown.txt file in the docs subdirectory for more information.

POWERDOWNFLAG /etc/killpower

# --------------------------------------------------------------------------
# NOTIFYMSG - change messages sent by upsmon when certain events occur
#
# You can change the default messages to something else if you like.
#
# NOTIFYMSG <notify type> "message"
#
NOTIFYMSG ONLINE   "UPS %s on line power"
# NOTIFYMSG ONBATT   "UPS %s on battery"
# NOTIFYMSG LOWBATT   "UPS %s battery is low"
# NOTIFYMSG FSD      "UPS %s: forced shutdown in progress"
# NOTIFYMSG COMMOK   "Communications with UPS %s established"
# NOTIFYMSG COMMBAD   "Communications with UPS %s lost"
 NOTIFYMSG SHUTDOWN   "Auto logout and shutdown proceeding"
# NOTIFYMSG REPLBATT   "UPS %s battery needs to be replaced"
# NOTIFYMSG NOCOMM   "UPS %s is unavailable"
NOTIFYMSG NOPARENT   "upsmon parent process died - shutdown impossible"
#
# Note that %s is replaced with the identifier of the UPS in question.
#
# Possible values for <notify type>:
#
# ONLINE   : UPS is back online
# ONBATT   : UPS is on battery
# LOWBATT  : UPS has a low battery (if also on battery, it's "critical")
# FSD      : UPS is being shutdown by the master (FSD = "Forced Shutdown")
# COMMOK   : Communications established with the UPS
# COMMBAD  : Communications lost to the UPS
# SHUTDOWN : The system is being shutdown
# REPLBATT : The UPS battery is bad and needs to be replaced
# NOCOMM   : A UPS is unavailable (can't be contacted for monitoring)
# NOPARENT : The process that shuts down the system has died (shutdown impossible)

# --------------------------------------------------------------------------
# NOTIFYFLAG - change behavior of upsmon when NOTIFY events occur
#
# By default, upsmon sends walls (global messages to all logged in users)
# and writes to the syslog when things happen.  You can change this.
#
# NOTIFYFLAG <notify type> <flag>[+<flag>][+<flag>] ...
#
NOTIFYFLAG ONLINE   SYSLOG+WALL
NOTIFYFLAG ONBATT   SYSLOG+WALL
NOTIFYFLAG LOWBATT   SYSLOG+WALL
# NOTIFYFLAG FSD   SYSLOG+WALL
# NOTIFYFLAG COMMOK   SYSLOG+WALL
# NOTIFYFLAG COMMBAD   SYSLOG+WALL
NOTIFYFLAG SHUTDOWN   SYSLOG+WALL
# NOTIFYFLAG REPLBATT   SYSLOG+WALL
# NOTIFYFLAG NOCOMM   SYSLOG+WALL
# NOTIFYFLAG NOPARENT   SYSLOG+WALL
#
# Possible values for the flags:
#
#SYSLOG - Write the message in the syslog
#WALL   - Write the message to all users on the system
# EXEC   - Execute NOTIFYCMD (see above) with the message
# IGNORE - Don't do anything
#
# If you use IGNORE, don't use any other flags on the same line.

# --------------------------------------------------------------------------
# RBWARNTIME - replace battery warning time in seconds
#
# upsmon will normally warn you about a battery that needs to be replaced
# every 43200 seconds, which is 12 hours.  It does this by triggering a
# NOTIFY_REPLBATT which is then handled by the usual notify structure
# you've defined above.
#
# If this number is not to your liking, override it here.

RBWARNTIME 43200

# --------------------------------------------------------------------------
# NOCOMMWARNTIME - no communications warning time in seconds
#
# upsmon will let you know through the usual notify system if it can't
# talk to any of the UPS entries that are defined in this file.  It will
# trigger a NOTIFY_NOCOMM by default every 300 seconds unless you
# change the interval with this directive.

NOCOMMWARNTIME 300

# --------------------------------------------------------------------------
# FINALDELAY - last sleep interval before shutting down the system
#
# On a master, upsmon will wait this long after sending the NOTIFY_SHUTDOWN
# before executing your SHUTDOWNCMD.  If you need to do something in between
# those events, increase this number.  Remember, at this point your UPS is
# almost depleted, so don't make this too high.
#
# Alternatively, you can set this very low so you don't wait around when
# it's time to shut down.  Some UPSes don't give much warning for low
# battery and will require a value of 0 here for a safe shutdown.
#
# Note: If FINALDELAY on the slave is greater than HOSTSYNC on the master,
# the master will give up waiting for the slave to disconnect.

FINALDELAY 5

# --------------------------------------------------------------------------
# CERTPATH - path to certificates (database directory or directory with CA's)
#
# When compiled with SSL support, you can enter the certificate path here.
#
# With NSS:
# Certificates are stored in a dedicated database (splitted in 3 files).
# Specify the path of the database directory.
#
# CERTPATH /etc/nut/cert/upsmon
#
# With OpenSSL:
# Directory containing CA certificates in PEM format, used to verify
# the server certificate presented by the upsd server. The files each
# contain one CA certificate. The files are looked up by the CA subject
# name hash value, which must hence be available.
#
# CERTPATH /usr/ssl/certs
#
# See 'docs/security.txt' or the Security chapter of NUT user manual
# for more information on the SSL support in NUT.

# --------------------------------------------------------------------------
# CERTIDENT - self certificate name and database password
# CERTIDENT <certificate name> <database password>
#
# When compiled with SSL support with NSS, you can specify the certificate
# name to retrieve from database to authenticate itself and the password
# required to access certificate related private key.
#
# CERTIDENT "my nut monitor" "MyPasSw0rD"
#
# See 'docs/security.txt' or the Security chapter of NUT user manual
# for more information on the SSL support in NUT.

# --------------------------------------------------------------------------
# CERTHOST - security properties for an host
# CERTHOST <hostname> <certificate name> <certverify> <forcessl>
#
# When compiled with SSL support with NSS, you can specify security directive
# for each server you can contact.
# Each entry maps server name with the expected certificate name and flags
# indicating if the server certificate is verified and if the connection
# must be secure.
#
# CERTHOST localhost "My nut server" 1 1
#
# See 'docs/security.txt' or the Security chapter of NUT user manual
# for more information on the SSL support in NUT.

# --------------------------------------------------------------------------
# CERTVERIFY - make upsmon verify all connections with certificates
# CERTVERIFY 1
#
# When compiled with SSL support, make upsmon verify all connections with
# certificates.
# Without this, there is no guarantee that the upsd is the right host.
# Enabling this greatly reduces the risk of man in the middle attacks.
# This effectively forces the use of SSL, so don't use this unless
# all of your upsd hosts are ready for SSL and have their certificates
# in order.
# When compiled with NSS support of SSL, can be overriden for host
# specified with a CERTHOST directive.


# --------------------------------------------------------------------------
# FORCESSL - force upsmon to use SSL
# FORCESSL 1
#
# When compiled with SSL, specify that a secured connection must be used
# to communicate with upsd.
# If you don't use 'CERTVERIFY 1', then this will at least make sure
# that nobody can sniff your sessions without a large effort.  Setting
# this will make upsmon drop connections if the remote upsd doesn't
# support SSL, so don't use it unless all of them have it running.
# When compiled with NSS support of SSL, can be overriden for host
# specified with a CERTHOST directive.


#===================================================
MONITOR apc@localhost alpp plastica1 1 master
POWERDOWNFLAG /etc/killpower




creato anche lo script UPS-Notify.sh, che se provato funziona, ma come già detto non viene lanciato da NUT.
Per fare la configurazione ho seguito, adattando all' UPS APC, la guida di "bingel" del forum
Maucladeb
Avatar utente
maucladeb
Prode Principiante
 
Messaggi: 219
Iscrizione: giugno 2007
Desktop: Unity
Distribuzione: Ubuntu 16.04.3 LTS
Sesso: Maschile

Re: Gestione UPS con NUT

Messaggioda axilot » mercoledì 27 settembre 2017, 9:51

se dai il comando

Codice: Seleziona tutto
sudo upsmon -c fsd


il pc và in shutdown?
"Experience, the name men give to their mistakes" (O.Wilde)
Pc principale: Ubuntu 14.04 64Bit - Pc secondario: Xubuntu 16.04 32 Bit
Avatar utente
axilot
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 2180
Iscrizione: luglio 2008
Distribuzione: Ubuntu 14.04 64bit

Re: Gestione UPS con NUT

Messaggioda maucladeb » mercoledì 27 settembre 2017, 13:06

Appena rientro in ufficio provo
Maucladeb
Avatar utente
maucladeb
Prode Principiante
 
Messaggi: 219
Iscrizione: giugno 2007
Desktop: Unity
Distribuzione: Ubuntu 16.04.3 LTS
Sesso: Maschile

Re: Gestione UPS con NUT

Messaggioda maucladeb » mercoledì 27 settembre 2017, 23:02

Risolto,
lanciato il comando che mi hai suggerito non funzionava, ma dal messaggio di errore ho capito che il sistema non lanciava nut-client.
Il problema si è risolto lanciandolo una volta da terminale
Codice: Seleziona tutto
sudo /etc/init.d/nut-client start
, dopo di che il sistema al reboot lo lancia da solo.
A questo punto lanciando da terminale
Codice: Seleziona tutto
sudo upsmon -c fsd
il sistema si è spento.
Purtroppo però nut non riusciva a dare lo shutdown e ad inviare la mail di notifica.
Ho risolto mettendo nel file upsmon.conf
Codice: Seleziona tutto
 SHUTDOWNCMD "sudo /sbin/shutdown -P now "

Codice: Seleziona tutto
 NOTIFYCMD sudo /etc/nut/UPS-Notify.sh

UPS-Notify.sh è lo script creato per inviare la mail.
Non so il motivo per cui si debba lanciare il comando con sudo, o meglio non ho indagato su quali permessi si debbano dare per evitare ciò, e se qualcuno me lo sapesse spiegare ne sarei contento.
Spero di essere stato chiaro e che possa servire anche ad altri.
Maucladeb
Avatar utente
maucladeb
Prode Principiante
 
Messaggi: 219
Iscrizione: giugno 2007
Desktop: Unity
Distribuzione: Ubuntu 16.04.3 LTS
Sesso: Maschile

Re: Risolto :Gestione UPS con NUT

Messaggioda axilot » giovedì 28 settembre 2017, 14:03

ho trovato questa discussione a riguardo (vedi il post del 5 marzo 2016 )
https://blog.shadypixel.com/monitoring- ... ntu-linux/
ma effettivamente non dà spiegazione del perchè vada dato il comando
Codice: Seleziona tutto
sudo /etc/init.d/nut-client start
"Experience, the name men give to their mistakes" (O.Wilde)
Pc principale: Ubuntu 14.04 64Bit - Pc secondario: Xubuntu 16.04 32 Bit
Avatar utente
axilot
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 2180
Iscrizione: luglio 2008
Distribuzione: Ubuntu 14.04 64bit


Torna a Applicazioni professionali

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 1 ospite