Skip to content

Monitor network equipment over SNMP (SNMP monitor)

View as Markdown

The SNMP monitor (API type snmp, shown in the app as SNMP check) asks a network device for one value by its OID - uptime, an interface counter, a UPS battery level, a temperature - and records it on every check. Use it for equipment that reports its health only through SNMP.

API type token snmp
Runs from HostTracker’s own internal check network - no location picker, no recheck
Intervals in the app 1 minute to 24 hours, or a cron schedule
Default interval 5 minutes in the app; 3 minutes if omitted in the API
Plan gates the SNMP type is a package feature (snmp)

The check sends one Get (or GetNext) request for the OID. It goes Down when the device does not answer (timeout, unreachable host), answers with an SNMP error status, or rejects the credentials. When the device answers, the check is Up and the value is stored.

The monitor collects the raw value - the editor’s Response Validation summary reads raw value (no threshold). Threshold rules for SNMP values (Assertion rules) are shown in the editor as coming soon and are not evaluated yet. A single result is final; there is no multi-location recheck.

The name, interval, cron, tags, Full Log, Open Stats and subscriptions work as described in Common monitor fields. Do not send url or locations: the display address is composed as host:port, oid, and locations.pools is refused.

Setting (app label) API field Type / allowed values Default Plan limits What it does for you
Host : Port (host) settings.host host name or IP, 1-255 characters required - The device to query.
Host : Port (port) settings.port 0-65535 161 - The SNMP port.
OID settings.oid dotted numbers, at least two parts, for example 1.3.6.1.2.1.1.3.0 required - What to read. Symbolic names (MIB names) are not accepted.
SNMP version (Connection) settings.version 1 (v1), 2 (v2c), 3 (v3) app: 2; API: 1 - The protocol version your device speaks.
Community settings.community up to 255 characters; secret app: public - The v1/v2c read community. Refused when version is 3.
SNMP command settings.verb Get, GetNext Get in the app - Get reads the OID; GetNext reads the next OID in the tree - useful when the exact index is unknown.
Security name (user) settings.securityName 1-255 characters required for v3 - The SNMPv3 user.
Security level settings.securityLevel noAuthNoPriv, authNoPriv, authPriv app: authPriv; required for v3 - Whether v3 authenticates and encrypts.
Authentication settings.authProtocol MD5, SHA (also SHA1, SHA-1, SHA256, SHA-256) app: SHA - Required for authNoPriv and authPriv.
Authentication key (min. 8 characters) settings.authKey 8-255 characters; secret - - Required with authentication.
Privacy (encryption) settings.privProtocol DES, AES (also AES128, AES192, AES256 and dashed forms) app: AES - Required for authPriv.
Privacy key (min. 8 characters) settings.privKey 8-255 characters; secret - - Required for authPriv.
  1. On the Sites dashboard, click Add Monitor and choose SNMP check in Monitoring Type.
  2. Enter Host : Port and the OID.
  3. In Connection, choose the SNMP version and enter the Community (v1/v2c) or the v3 security settings, and pick the SNMP command.
  4. Click Save.

The SNMP editor: host, port 161, OID, and the Connection group with community, SNMP version and command.

SNMP v2c:

Terminal window
curl -X POST https://api2.host-tracker.com/monitor \
-H "Authorization: Bearer $HT_TOKEN" -H "Content-Type: application/json" \
-d '{
"type": "snmp",
"name": "Core switch uptime",
"interval": 300,
"settings": {
"host": "switch.example.net",
"oid": "1.3.6.1.2.1.1.3.0",
"version": 2,
"community": "<community>",
"verb": "Get"
}
}'

SNMP v3 with authentication and encryption - the settings object:

{
"host": "ups.example.net",
"oid": "1.3.6.1.2.1.33.1.2.4.0",
"version": 3,
"securityName": "monitor",
"securityLevel": "authPriv",
"authProtocol": "SHA256",
"authKey": "<auth-key>",
"privProtocol": "AES",
"privKey": "<priv-key>"
}

Update - read a different OID:

Terminal window
curl -X PATCH https://api2.host-tracker.com/monitor/<monitor-id> \
-H "Authorization: Bearer $HT_TOKEN" -H "Content-Type: application/json" \
-d '{ "settings": { "oid": "1.3.6.1.2.1.2.2.1.8.1" } }'

MCP: create_monitor(type="snmp", name="Core switch uptime", interval=300, settingsJson="{...}") with no pools.

  • Is the device alive? - sysUpTime 1.3.6.1.2.1.1.3.0 with Get; the check goes Down when the device stops answering.
  • Interface status - ifOperStatus for the port, for example 1.3.6.1.2.1.2.2.1.8.<index>; watch the charted value.
  • Unknown index - use GetNext on the parent OID.

Every check stores the returned value, so the monitor’s statistics show it over time. A device that stops answering turns the monitor Down at once and alerts the subscribed contacts.

  • Your device must accept SNMP from HostTracker’s internal check network (the source IPs are listed in the Database monitor’s editor).
  • 422 invalid_settings - a symbolic OID, community with version 3, a v3 key shorter than 8 characters, or a v3 field missing for the chosen security level.
  • 422 validation_failed with reason: pool_not_supported_for_type - omit locations.
  • A value outside a range does not alert yet; only an unanswered or refused request does.