SNMP-UPS(8)
===========

NAME
----

snmp-ups - Multi-MIB Driver for SNMP UPS equipment

SYNOPSIS
--------

*snmp-ups* -h

*snmp-ups* -a 'UPS_NAME' ['OPTIONS']

NOTE: This man page only documents the hardware-specific features of the
snmp-ups driver.  For information about the core driver, see
linkman:nutupsdrv[8].

SUPPORTED HARDWARE
------------------

The snmp-ups driver automatically detects and supports a wide range of
devices by loading various MIBS, such as:

*ietf*::
UPS that is RFC 1628 (UPS MIB) compliant, e.g. MGE UPS SYSTEMS, Liebert,
perhaps others (default)

*mge*::
MGE UPS SYSTEMS and MGE Office Protection Systems devices with SNMP cards
(ref 66062, 66045, 66074 and 66244)

*apcc*::
APC AP9605, AP9606, AP9617, and AP9618 APC network management cards,
as well as any others supporting the APC POWERNET MIB

*netvision*::
Socomec Sicon UPS with Netvision Web/SNMP management card/external box

*eaton_pw_nm2*::
Powerware devices with ConnectUPS SNMP cards, as well as UPSes with
Eaton Gigabit Network Cards (Network-M2) (renamed from pw)

*eaton_pxg_ups*::
Eaton devices with Power Xpert Gateway UPS Card (renamed from pxgx_ups)

*aphel_genesisII*::
Eaton Powerware ePDU Monitored

*aphel_revelation*::
Eaton Powerware ePDU Managed

*raritan*::
Various Raritan PDUs (Dominion PX, PM, RPC)

*raritan-px2*::
Various Raritan PDUs (Dominion PX2)

*baytech*::
Various BayTech PDUs

*cpqpower*::
HP/Compaq AF401A management card, perhaps others

*cyberpower*::
Cyberpower RMCARD201. Should also support RMCARD100 (net version),
RMCARD202 and RMCARD301

*huawei*::
Huawei UPS5000-E, perhaps others

*tripplite*::
TrippLite UPSes; at this time this is the IETF MIB mapping with just
the Tripplite entry point OID to verify the device vendor, and a real
hardware-specific configuration will be added in the future development.

For a complete and up-to-date listing, you can query the driver by passing
the *mibs=--list* argument (see below).

EXTRA ARGUMENTS
---------------

This driver supports the following optional settings in the
linkman:ups.conf[5]:

*port*='hostname[:port]'::
Set SNMP hostname, or IP address, and port number of the peer SNMP agent.
There is no default for the hostname, but the default port is 161.

*mibs*='--list'::
A special option which allows to list the currently known MIB-to-NUT mappings
and exit the driver binary, intended for command-line usage like this:
+
----
:; snmp-ups -a snmp-test -x mibs=--list
----

*mibs*='name'::
Set MIB compliance (default='auto', allowed entries: refer to SUPPORTED
HARDWARE above).
+
With "auto", the driver will try a select set of SNMP objects until it finds
one that the device responds to.
+
Note that since NUT 2.6.2, snmp-ups has a new method that uses `sysObjectID`
(which is a pointer to the preferred MIB of the device) to detect supported
devices.  This renders void the *requirement* to use the "mibs" option.

*community*='name'::
Set community name (default is 'public') for SNMPv1 and SNMPv2c connections.
Note that an RW capable community name is required to change UPS settings and
send commands (such as for a power-down).

*snmp_version*='version'::
Set SNMP version (default = v1, allowed: v2c, v3)

*snmp_retries*='retries'::
Specifies the number of Net-SNMP retries to be used in the requests (default=5)

*snmp_timeout*='timeout'::
Specifies the Net-SNMP timeout in seconds between retries (default=1)

*symmetrathreephase*::
Enable APCC three phase Symmetra quirks (use on APCC three phase Symmetras):
Convert from three phase line-to-line voltage to line-to-neutral voltage
(default: not enabled)

*pollfreq*='num'::
Set polling interval for full updates, in seconds, to reduce SNMP network
traffic relative to the quick updates performed every "pollinterval" (the
latter option is described in linkman:ups.conf[5]).
The default value is 30 (in seconds).

*notransferoids*::
Disable the monitoring of the low and high voltage transfer OIDs in
the hardware.  This will remove input.transfer.low and input.transfer.high
from the list of variables.  This should only be used on APCC Symmetra
equipment which has strangeness in the three-phase power reporting.

*secLevel*='value'::
Set the securityLevel used for SNMPv3 messages (default=noAuthNoPriv,
allowed: authNoPriv,authPriv)
This parameter is mandatory if you use non-trivial authentication.

*secName*='value'::
Set the securityName used for authenticated SNMPv3 messages (no default)

*authPassword*='value'::
Set the authentication pass phrase used for authenticated SNMPv3 messages
(no default)

*privPassword*='value'::
Set the privacy pass phrase used for encrypted SNMPv3 messages (no default)

*authProtocol*='value'::
Set the authentication protocol (MD5, SHA, SHA256, SHA384 or SHA512) used for
authenticated SNMPv3 messages (default=MD5). Note that the exact protocol list
depends on Net-SNMP library capabilities; check help of the `snmp-ups` binary
program for the run-time supported list.

*privProtocol*='value'::
Set the privacy protocol (DES, AES, AES192 or AES256) used for encrypted SNMPv3
messages (default=DES). Note that the exact protocol list depends on Net-SNMP
library capabilities; check help of the `snmp-ups` binary program for the
run-time supported list.

REQUIREMENTS
------------

You will need to install the Net-SNMP package from
http://www.net-snmp.org/ before building this driver.

SNMP v3 also requires OpenSSL support from http://www.openssl.org.

///////////////////////
Before the DMF effort, there was a partially implemented provision for
additional MIB Configuration files with lines of mapping information:

------
<info type> <info flags> <info len> <OID name> <default value> <value lookup>
------

...which could be stored under common NUT configuration location, with
this naming pattern: `${NUT_CONFPATH}/snmp/${MIB}.conf`.
///////////////////////

LIMITATIONS
-----------

Shutdown
~~~~~~~~

The shutdown sequence should be tested before relying on NUT to send a
shutdown command to the UPS. The problem is that the host network stack may
have been torn down by the time the driver is invoked to send the shutdown
command. The driver attempts to send +shutdown.return+, +shutdown.reboot+,
and +load.off.delay+ commands to the UPS in sequence, stopping after the first
supported command.

include::networked_hostnames.txt[]

INSTALLATION
------------

This driver is only built if the Net-SNMP development files are present at
configuration time.  You can also force it to be built by using
+configure --with-snmp=yes+ before calling make.

EXAMPLES
--------

The hostname of the UPS is specified with the "port" value in
`ups.conf`, and may include a non-standard (161) remote peer port:

------
	[snmpv1]
		driver = snmp-ups
		port = snmp-ups.example.com
		community = public
		snmp_version = v1
		pollfreq = 15
		desc = "Example SNMP v1 device"

	[snmpv3]
		driver = snmp-ups
		port = 166.99.224.132:170
		snmp_version = v3
		secLevel = authPriv
		secName = mysecurityname
		authPassword = myauthenticationpassphrase
		privPassword = myprivatepassphrase
		desc = "Example SNMP v3 device, with the highest security level"
------

AUTHORS
-------

* Arnaud Quette
* Dmitry Frolov
* Jim Klimov

SEE ALSO
--------

The core driver:
~~~~~~~~~~~~~~~~

linkman:nutupsdrv[8]

NUT SNMP Protocols Library
~~~~~~~~~~~~~~~~~~~~~~~~~~

Available at: https://www.networkupstools.org/ups-protocols.html#_snmp

Internet resources:
~~~~~~~~~~~~~~~~~~~

The NUT (Network UPS Tools) home page: https://www.networkupstools.org/
