-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfeatures.html
534 lines (531 loc) · 18.3 KB
/
features.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Network UPS Tools - Features</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.9" />
<meta name="description" content="Power Devices support" />
<meta name="keywords" content="NUT, Network UPS Tools, Eaton, APC, Free Software, UPS, Uninterruptible Power Supplies, PDU, Power Distributions Units, Solar Controllers, power, power devices, control, monitor, Linux, Unix, Windows, Mac OS X" />
<meta name="format-detection" content="telephone=no" />
<link rel="stylesheet" href="css/xhtml11.css" type="text/css" />
<link rel="stylesheet" href="css/xhtml11-quirks.css" type="text/css" />
<link rel="stylesheet" href="css/web-layout.css" type="text/css" />
<link rel="shortcut icon" href="faviconut.ico" />
<link rel="icon" type="image/png" href="faviconut.png" />
<script type="text/javascript" src="./scripts/asciidoc.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
asciidoc.install();
/*]]>*/
</script>
<!--[if lte IE 7]>
<link rel="stylesheet" href="css/ie-overrides.css" type="text/css" />
<![endif]-->
<!--[if lte IE 6]>
<script type="text/javascript" src="./scripts/filter_png.js"></script>
<![endif]-->
</head>
<body>
<div id="layout-banner-box">
<div id="layout-banner">
<div id="layout-logo"><img src="images/nut-logo.png" alt="NUT logo" /></div>
<div id="layout-title">Network UPS Tools</div>
<div id="layout-description">Power Devices support</div>
</div>
</div>
<div id="layout-menu-box">
<ul id="layout-menu">
<li><a href="index.html">Home</a></li>
<li><a href="download.html">Download</a></li>
<li><a href="projects.html">Related projects</a></li>
<li><a href="stable-hcl.html">Compatibility</a></li>
<li><a href="features.html">Features</a></li>
<li><a href="documentation.html">Documentation</a></li>
<li><a href="support.html">Support</a></li>
<li><a href="https://github.com/networkupstools/nut/">GitHub</a></li>
<li><a href="https://alioth.debian.org/projects/nut/">Alioth (old)</a></li>
</ul>
<!-- div id="sponsor"><span>Hosted by<br/></span>
<a href="http://sponsor.com"><img src="images/sponsor-logo.png" alt="Sponsor" /></a>
</div -->
</div>
<div id="layout-content-box">
<div id="layout-content">
<div id="header">
<h1>Features</h1>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph"><p>NUT provides many features, and is always improving.
Thus this list may lag behind the current code.</p></div>
<div class="paragraph"><p>Features frequently appear during the development cycles, so be sure to look at
the <a href="http://www.networkupstools.org/download.html">release notes and change logs</a>
to see the latest additions.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_multiple_manufacturer_and_device_support">Multiple manufacturer and device support</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
Monitors many UPS, PDU, ATS, PSU and SCD models from more than 140
manufacturers with a unified interface
(<a href="stable-hcl.html">Hardware Compatibility List</a>).
</p>
</li>
<li>
<p>
Various communication types and many protocols are supported with the same
common interface:
</p>
<div class="ulist"><ul>
<li>
<p>
serial,
</p>
</li>
<li>
<p>
USB,
</p>
</li>
<li>
<p>
network (SNMP, Eaton / MGE XML/HTTP).
</p>
</li>
</ul></div>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_multiple_architecture_support">Multiple architecture support</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
Cross-platform — different flavors of Unix can be managed together with a
common set of tools, even crossing architectures.
</p>
</li>
<li>
<p>
This software has been reported to run on Linux distributions, the BSDs,
Apple’s OS X, commercial Solaris and open-source illumos distros, IRIX,
HP/UX, Tru64 Unix, and AIX.
</p>
</li>
<li>
<p>
Windows users may be able to build it directly with Cygwin.
There is also a port of the client-side monitoring to Windows called WinNUT.
</p>
</li>
<li>
<p>
Your system will probably run it too. You just need a good C compiler and
possibly some more packages to gain access to the serial ports.
Other features, such as USB / SNMP / whatever, will also need extra software
installed.
</p>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_layered_and_modular_design_with_multiple_processes">Layered and modular design with multiple processes</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
Three layers: drivers, server, clients.
</p>
</li>
<li>
<p>
Drivers run on the same host as the server, and clients communicate with the
server over the network.
</p>
</li>
<li>
<p>
This means clients can monitor any UPS anywhere as long as there is a network
path between them.
</p>
</li>
</ul></div>
<div class="admonitionblock">
<table><tr>
<td class="icon">
<img src="./images/warning.png" alt="Warning" />
</td>
<td class="content">Be sure to plug your network’s physical hardware (switches, hubs,
routers, bridges, …) into the UPS!</td>
</tr></table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_redundancy_support_8201_8212_8201_hot_swap_high_availability_power_supplies">Redundancy support — Hot swap/high availability power supplies</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
upsmon can handle high-end servers which receive power from multiple UPSes
simultaneously.
</p>
</li>
<li>
<p>
upsmon won’t initiate a shutdown until the total power situation across all
source UPSes becomes critical (on battery and low battery).
</p>
</li>
<li>
<p>
You can lose a UPS completely as long as you still have at least the minimum
number of sources available. The minimum value is configurable.
</p>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_security_and_access_control">Security and access control</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
Manager functions are granted with per-user granularity. The admin can have
full powers, while the admin’s helper can only do specific non-destructive
tasks such as a battery test (beware that with a worn-out battery whose
replacement is a few years overdue, a "capacity/remaining runtime" test can
still be destructive by powering off the load abruptly — and also such a
test can cause hosts to hide into graceful shutdowns when the battery state
does get critical as part of the test).
</p>
</li>
<li>
<p>
The drivers, server, and monitoring client (upsmon) can all run as separate
user IDs if this is desired for privilege separation.
</p>
</li>
<li>
<p>
Only one tiny part of one program has root powers.
upsmon starts as root and forks an unprivileged process which does the actual
monitoring over the network.
They remain connected over a pipe. When a shutdown is necessary, a single
character is sent to the privileged process. It then calls the predefined
shutdown command. In any other case, the privileged process exits.
This was inspired by the auth mechanism in Solar Designer’s excellent popa3d.
</p>
</li>
<li>
<p>
The drivers and network server may be run in a chroot jail for further
security benefits. This is supported directly since version 1.4 and beyond
with the <em>chroot=</em> configuration directive.
</p>
</li>
<li>
<p>
IP-based access control relies on the local firewall and
<a href="http://en.wikipedia.org/wiki/TCP_Wrapper">TCP Wrapper</a>.
</p>
</li>
<li>
<p>
SSL is available as a build option ("--with-ssl").
It encrypts sessions with upsd and can also be used to authenticate servers.
</p>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_web_based_monitoring">Web-based monitoring</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
Comes stock with CGI-based web interface tools for UPS monitoring and
management, including graphical status displays.
</p>
</li>
<li>
<p>
Custom status web pages may be generated with the CGI programs, since they
use templates to create the pages. This allows you to have status pages which
fit the look and feel of the rest of your site.
</p>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_free_software">Free software</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
That’s free beer and free speech. Licensed under the GNU General Public
License version 2 or later.
</p>
</li>
<li>
<p>
Know your systems — all source code is available for inspection, so there are
no mysteries or secrets in your critical monitoring tools.
</p>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_ups_management_and_control">UPS management and control</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
Writable variables may be edited on higher end equipment for local
customization
</p>
</li>
<li>
<p>
Status monitoring can generate notifications (email/pager/SMS/…) on alert
conditions
</p>
</li>
<li>
<p>
Alert notices may be dampened to only trigger after a condition persists.
This avoids the usual pager meltdown when something happens and no delay
is used.
</p>
</li>
<li>
<p>
Maintenance actions such as battery runtime calibration are available where
supported by the UPS hardware.
</p>
</li>
<li>
<p>
Power statistics can be logged in custom formats for later retrieval and
analysis
</p>
</li>
<li>
<p>
All drivers are started and stopped with one common program. Starting one
is as easy as starting ten: <code>upsdrvctl start</code>.
</p>
</li>
<li>
<p>
For operating systems with a supported service management framework, you can
manage the NUT drivers wrapped into independent service instances using the
<em>upsdrvsvcctl</em> instead, and gain the benefits of automated restart as well as
possibility to define further dependencies between your OS components.
</p>
</li>
<li>
<p>
Shutdowns and other procedures may be tested without stressing actual UPS
hardware by simulating status values with the dummy-ups pseudo-driver.
Anything that can happen in a driver can be replicated with dummy-ups.
</p>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_monitoring_diagrams">Monitoring diagrams</h2>
<div class="sectionbody">
<div class="paragraph"><p>These are the most common situations for monitoring UPS hardware. Other ways
are possible, but they are mostly variations of these four.</p></div>
<div class="admonitionblock">
<table><tr>
<td class="icon">
<img src="./images/note.png" alt="Note" />
</td>
<td class="content">these examples show serial communications for simplicity, but USB or
SNMP or any other monitoring is also possible.</td>
</tr></table>
</div>
<div class="sect2">
<h3 id="_simple_configuration">"Simple" configuration</h3><div style="clear:left"></div>
<div class="paragraph"><p><span class="image">
<img src="images/simple.png" alt="images/simple.png" />
</span></p></div>
<div class="paragraph"><p>One UPS, one computer. This is also known as "Standalone" configuration.</p></div>
<div class="paragraph"><p>This is the configuration that most users will use. You need at least a
driver, <code>upsd</code>, and <code>upsmon</code> running.</p></div>
</div>
<div class="sect2">
<h3 id="_advanced_configuration">"Advanced" configuration</h3><div style="clear:left"></div>
<div class="paragraph"><p><span class="image">
<img src="images/advanced.png" alt="images/advanced.png" />
</span></p></div>
<div class="paragraph"><p>One UPS, multiple computers. Only one of them can actually talk to the UPS
directly. That’s where the network comes in:</p></div>
<div class="ulist"><ul>
<li>
<p>
The Primary system runs the relevant driver, <code>upsd</code>, and <code>upsmon</code> in
"primary" mode.
</p>
</li>
<li>
<p>
The Secondary systems only run <code>upsmon</code> in "secondary" mode which all
connect to <code>upsd</code> on Primary.
</p>
</li>
</ul></div>
<div class="paragraph"><p>This is useful when you have a very large UPS that’s capable of running
multiple systems simultaneously. There is no longer the need to buy a bunch
of individual UPSes or "sharing" hardware, since this software will handle
the sharing for you.</p></div>
</div>
<div class="sect2">
<h3 id="_big_box_configuration">"Big Box" configuration</h3><div style="clear:left"></div>
<div class="paragraph"><p><span class="image">
<img src="images/bigbox.png" alt="images/bigbox.png" />
</span></p></div>
<div class="paragraph"><p>Some systems have multiple power supplies and cords. You typically find
this on high-end servers that allow hot-swap and other fun features.
In this case, you run multiple drivers (one per UPS), a single <code>upsd</code>,
and a single <code>upsmon</code> (as a primary for both UPS 1 and UPS 2)</p></div>
<div class="paragraph"><p>This software understands that some of these servers can also run with
some of the supplies gone. For this reason, every UPS is assigned a
"power value" — the quantity of power supplies that it feeds on this
system.</p></div>
<div class="paragraph"><p>The total available "power value" is compared to the minimum that is
required for that hardware. For example, if you have 3 power supplies
and 3 UPSes, but only 2 supplies must be running at any given moment,
the minimum would be 2.</p></div>
<div class="paragraph"><p>This means that you can safely lose any one UPS and the software will
handle it properly by remaining online and not causing a shut down.</p></div>
</div>
<div class="sect2">
<h3 id="_bizarre_configuration">"Bizarre" configuration</h3><div style="clear:left"></div>
<div class="paragraph"><p><span class="image">
<img src="images/bizarre.png" alt="images/bizarre.png" />
</span></p></div>
<div class="paragraph"><p>You can even have a UPS that has the serial port connected to a system that
it’s not feeding. Sometimes a PC will be close to a UPS that needs to be
monitored, so it’s drafted to supply a serial port for the purpose.
This PC may in fact be getting its own power from some other UPS. This is
not a problem for the set-up.</p></div>
<div class="paragraph"><p>The first system ("mixed") is a Primary for UPS 1, but is only monitoring
UPS 2. The other systems are Secondaries of UPS 2.</p></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_image_credits">Image credits</h2>
<div class="sectionbody">
<div class="paragraph"><p>Thanks to Eaton for providing shiny modern graphics.</p></div>
</div>
</div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Version 2.7.4<br />
Last updated 2021-09-26 10:03:27
</div>
<div id="footer-badges">
<a href="https://github.com/networkupstools/nut">
<img style="border:0;height:20"
src="https://img.shields.io/github/checks-status/networkupstools/nut/master"
alt="Latest GitHub checks status: master branch"/>
</a>
<!--
<a href="https://travis-ci.org/github/networkupstools/nut">
<img style="border:0;height:20"
src="https://api.travis-ci.org/networkupstools/nut.svg?branch=master"
alt="Latest Travis CI build status: master branch"/>
</a>
-->
<a href="https://ci.networkupstools.org/job/nut/job/nut/job/master/">
<img style="border:0;height:20"
src="https://ci.networkupstools.org/buildStatus/icon?job=nut%2Fnut%2Fmaster"
alt="Latest NUT CI build status: master branch"/>
</a>
<a href="https://ci.networkupstools.org/job/nut/job/nut/job/fightwarn/">
<img style="border:0;height:20"
src="https://ci.networkupstools.org/buildStatus/icon?job=nut%2Fnut%2Ffightwarn&subject=Fightwarn%20Branch"
alt="Latest NUT CI build status: fightwarn branch"/>
</a>
<!--
<a href="https://github.com/networkupstools/nut/releases">
<img style="border:0;height:20"
src="https://img.shields.io/github/v/release/networkupstools/nut"
alt="Latest GitHub drafted NUT source release"/>
</a>
-->
<a href="https://github.com/networkupstools/nut/releases">
<img style="border:0;height:20"
src="https://img.shields.io/github/v/tag/networkupstools/nut?sort=semver"
alt="Latest Git-tagged NUT source release"/>
</a>
<!-- Maintainer note: for the counter below to work, a git tag
is not sufficient -- a release must be drafted and published
at https://github.com/networkupstools/nut/releases
Counter URL may also be .../latest/BRANCHNAME -->
<a href="https://github.com/networkupstools/nut">
<img style="border:0;height:20"
src="https://img.shields.io/github/commits-since/networkupstools/nut/latest.svg"
alt="Commits on master branch since latest release on GitHub"/>
</a>
<a href="http://www.methods.co.nz/asciidoc/">
<img style="border:0;width:88px;height:31px"
src="images/asciidoc.png"
alt="Powered by AsciiDoc"/>
</a>
<a href="https://validator.w3.org/check?uri=referer">
<img style="border:0;width:88px;height:31px"
src="https://www.w3.org/Icons/valid-xhtml11-blue"
alt="Valid XHTML 1.1"/>
</a>
<a href="https://jigsaw.w3.org/css-validator/check?uri=referer">
<img style="border:0;width:88px;height:31px"
src="https://jigsaw.w3.org/css-validator/images/vcss-blue"
alt="Valid CSS!"/>
</a>
<a href="https://www.gandi.net/">
<img style="border:0;height:38px;"
src="images/gandi-ar21.svg"
alt="DNS, redirection and related services Hoster"/>
</a>
<a href="https://fosshost.org/">
<img style="border:0;width:112px;height:38px;"
src="images/ci/fosshost.org_Host_Light_38px.png"
alt="Dedicated Hosting for NUT CI"/>
</a>
</div>
</div>
</div>
</div>
<!-- Google Analytics integration -->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-9664272-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>