hotloop
GitHub

Integrations SNMP

SNMP

Verified live

Switches, UPSs, PDUs, power meters, and any Linux box running snmpd, read-only. HotLoop never sends a SET.

Verified live against a software agent. Not read off a physical switch, UPS, or PDU.

SNMP has not been read off a physical switch, UPS, or PDU. The agent it was proven against is net-snmp's, which is what a Linux box runs and what many appliances are built on, and it is not any vendor's firmware. Vendors differ about which MIBs they serve, how they number interfaces, and how they answer a bulk request, so treat the first read of a real device as commissioning: compare the sampled values on the integration's probe with the device's own display.

Verified against net-snmp's snmpd 5.9.4 (Debian's 5.9.4+dfsg-2 package) in a container in the lab, read over v1, v2c, and v3 at every security level, over UDP and TCP. The driver is gosnmp, a different implementation.

Read-only, always. HotLoop never sends an SNMP SET, because a SET can change a switch's configuration, and the point of this driver is to see the plant network, not to run it.

There is no default community. `public` is how a plant's switches get read by whoever asks, so a v1 or v2c device has to be given one. The community and the v3 passphrases are stored encrypted like every other device secret.

Counters are raw. A Counter32 or Counter64 only goes up and wraps, so the tag holds what the agent sent and a rate is for whatever reads the tag. TimeTicks are hundredths of a second: the integration scales sysUpTime to seconds for you.

An object the agent does not have is a bad reading with the reason, and the others in the same request still read. Browse walks the system, interface, host resources, and load tables and names each object from the MIB that defines it. You point HotLoop at a device through the integrations flow: it asks what it needs, looks at the real device, and keeps the points you choose, with nothing armed.

Addressing

AddressMeans
1.3.6.1.2.1.1.5.0sysName. A scalar ends in .0.
1.3.6.1.2.1.2.2.1.8.2ifOperStatus of the interface with ifIndex 2. A table cell ends in its row's index.
The trap

A wrong community answers with nothing. An SNMPv1 or v2c agent drops a request carrying a community it does not know, so a wrong community, a wrong port, a firewall, and an agent that is down all look like a timeout. HotLoop's message says all four. SNMPv3 does tell them apart: a wrong passphrase or an unknown user is refused as such.

Configuration

versioncommunityusernamesecurityLevelauthProtocolauthPasswordprivProtocolprivPasswordcontextNametransportretriesmaxRepetitionsbrowseRootsbrowseMaxNodes