Penguin
Annotated edit history of NutNotes version 8, including all changes. View license author blame.
Rev Author # Line
4 JohnMcPherson 1 !! Very brief overview
5 JohnMcPherson 2
3 '''upsd''' is the server, '''upsmon''' is the client.
4 JohnMcPherson 4
5 * __ups.conf__ - this defines the UPSes that are connected to the server. You might see a process running like "''/lib/nut/newhidups -a YOUR_UPS_NAME''"
6 * __upsd.conf__ - the ''upsd'' daemon is the interface for other programs to connect and query the directly-connected UPSes. This config file controls some access restrictions.
7 * __upsmon.conf__ - ''upsmon'' is the program that periodically connects to upsd to get the status, and can run commands (eg to shutdown your server if the battery gets low)
8
5 JohnMcPherson 9 Other things like [Nagios] have their own clients that connect directly to ''upsd'' to query the status.
4 JohnMcPherson 10
3 DanielLawson 11 !! Sample Configuration
12 This is a simple way of setting up the NUT ups monitoring system to shut servers down well before you get to powerfail status. If you lose power for more than about 5 seconds, chances are pretty good you're going to have lost it for a while, so you may as well shut things down now
13
14
15 It will, on the first ONBATT signal from the UPS, start a 30 second timer. If the power does not return during this time it will schedule a 2 minute shutdown, after which the box is shutdown cleanly. If power returns at all during this time, the shutdown will be cancelled. -- DanielLawson
16
17
18 ''/etc/nut/ups.conf''
19 <verbatim>
20 [mge]
21 ## USB cable
22 #driver = newhidups
23 #port = auto
24 ## SNTMP
25 #driver = snmp-ups
26 #port = 1.2.3.4
27 #mibs = mge
28 desc = "MGE UPS"
29 </verbatim>
30
31 ''/etc/nut/upsd.conf''
32 <verbatim>
33 ACL all 0.0.0.0/0
34 ACL localhost 127.0.0.1/32
35
36 ACCEPT localhost
37 REJECT all
38 </verbatim>
39
40 ''/etc/nut/upsd.users''
41 <verbatim>
42 # Supervision user
43 [admin]
44 password = password
45 allowfrom = localhost
46 actions = SET
47 instcmds = ALL
48
49 # Protection user
50 [monuser]
51 password = monitor
52 allowfrom = localhost
53 upsmon master
54 </verbatim>
55
56 ''/etc/nut/upsmon.conf''
57 <verbatim>
58 MONITOR mge@localhost 1 monuser monitor master
59 MINSUPPLIES 1
60 SHUTDOWNCMD "/sbin/shutdown -h +0"
61 POLLFREQ 5
62 POLLFREQALERT 5
63 HOSTSYNC 15
64 DEADTIME 15
65 #POWERDOWNFLAG /etc/killpower
66 RBWARNTIME 43200
67 NOCOMMWARNTIME 300
68 FINALDELAY 5
69 NOTIFYCMD /sbin/upssched
70 NOTIFYFLAG ONBATT WALL+SYSLOG+EXEC
71 NOTIFYFLAG ONLINE WALL+SYSLOG+EXEC
72 NOTIFYFLAG LOWBATT WALL+SYSLOG+EXEC
73 NOTIFYFLAG FSD WALL+SYSLOG+EXEC
74 </verbatim>
75
76 ''/etc/nut/upssched.conf''
77 <verbatim>
78 CMDSCRIPT /usr/local/bin/upssched-cmd
79 PIPEFN /var/run/upssched/upssched.pipe
80 LOCKFN /var/run/upssched/upssched.lock
81
82 AT ONBATT * START-TIMER early-shutdown 30
83 AT LOWBATT * START-TIMER early-shutdown 30
84 AT ONLINE * CANCEL-TIMER resume
85 AT ONLINE * EXECUTE resume
86 AT FSD * EXECUTE forced-shutdown
87 </verbatim>
7 GlennRamsey 88
89 GlennRamsey - On Ubuntu 8.04 the above script doesn't work. According to the man page the line:
90 <verbatim>
91 AT ONLINE * CANCEL-TIMER resume
92 </verbatim>
93 should be:
94 <verbatim>
95 AT ONLINE * CANCEL-TIMER early-shutdown resume
96 </verbatim>
8 GlennRamsey 97 but that seemed to cause a problem with cancelling the shutdown, after 30s had elapsed
98 <verbatim>
99 AT ONLINE * CANCEL-TIMER early-shutdown
100 </verbatim>
101 seems to work properly. I suspect the issue was related to the 'resume' command being given by both 'AT ONLINE' events.
102
3 DanielLawson 103
104 ''/usr/local/bin/upssched-cmd''
105 <verbatim>
106 #!/bin/bash
107 # time in minutes
108 time=2
109 case "${1}" in
110 early-shutdown)
111 logger -t upssched-cmd "Early Shutdown"
112 shutdown -h +$time powerevent
113 ;;
114 resume)
115 logger -t upssched-cmd "Resume"
116 [ -f /var/run/shutdown.pid ] && shutdown -c || exit 0
117 ;;
118 forced-shutdown)
119 logger -t upssched-cmd "Forced Shutdown"
120 shutdown -h +$time powerevent-forced
121
122 ;;
123 *)
124 logger -t upssched-cmd "Unknown command: ${1}"
125 ;;
126 esac
127 </verbatim>
6 GlennRamsey 128
129 !! Notes
130
131 On Ubuntu 8.04 I had to add 'RUN_AS_USER root' to upsmon.conf in order for the early shutdown script to work. I guess one could achieve the same effect by giving the nut user permission to run shutdown command. -- GlennRamsey
132
133 The Socomec NETYS PE UPS available from Dick Smith works with nut using the megatec_usb driver. -- GlennRamsey
134
3 DanielLawson 135
136 ---
137
138 Part of CategorySystemAdministration