RackMon
Guide

How to monitor server rack temperature over SNMP

Overheating is the quiet killer of server rooms: it shortens hardware life, throttles performance, and the first sign is often a failure, not a warning. This guide covers what to measure, where to put sensors, what thresholds are safe, and how polling and alerting should actually behave — so you know a rack is heating up long before anything trips.

1. What to actually measure

“Room temperature” from one wall sensor is nearly useless — air stratifies and a single hot rack can cook while the room reads fine. Measure at the equipment, per rack:

2. Safe thresholds (a sane starting point)

ASHRAE’s widely-used “recommended” envelope for data-center intake air is roughly 18–27 °C (64–80 °F), with an “allowable” range that goes higher for short periods. For a mixed SMB/edge room, sensible alert bands are:

Intake temperatureStatusAction
≤ 27 °C / 80 °FNominalNone
27–32 °C / 80–90 °FWarningInvestigate airflow / cooling
≥ 32 °C / 90 °FCriticalAct now — cooling likely failing

Treat these as a starting point, not gospel — check your hardware vendors’ own inlet limits and your local ASHRAE class. The point is to alert on intake, at the rack, with a margin before hardware limits.

3. Why SNMP

SNMP (Simple Network Management Protocol) is the lingua franca of infrastructure telemetry. Almost everything in a rack — servers’ BMC/iDRAC/iLO, managed switches, UPSs, PDUs and dedicated temperature/humidity probes — can expose readings over SNMP. Two versions matter:

You read a device’s temperature by polling its OID (object identifier). Vendors publish these in MIBs; a sensor probe might expose intake temperature at an OID you poll every 15–60 seconds.

The OIDs you actually need

Most guides stop at “poll the vendor’s OID” without telling you which one. Here are the real ones.

Start with the standard, not the vendor. RFC 3433 defines a vendor-neutral sensor table, and a surprising amount of modern gear implements it. If it answers, you can use one OID across your whole estate instead of a different one per brand:

# every sensor value the device exposes snmpwalk -v2c -c public 10.0.0.10 1.3.6.1.2.1.99.1.1.1.4 # the human-readable names, so you know which index is the inlet snmpwalk -v2c -c public 10.0.0.10 1.3.6.1.2.1.47.1.1.1.1.2

On SNMP v3 the same walk becomes: snmpwalk -v3 -l authPriv -u monitor -a SHA -A '<auth-pass>' -x AES -X '<priv-pass>' 10.0.0.10 1.3.6.1.2.1.99.1.1.1.4

Match the index from the second walk (something like “Inlet Temp” or “Ambient Zone”) to the index in the first, and you have your inlet reading.

Common vendor OIDs

DeviceOIDNotes
Any device implementing the standard1.3.6.1.2.1.99.1.1.1.4
ENTITY-SENSOR-MIB · entPhySensorValue
The one to try first. Read entPhySensorType (…99.1.1.1.1) to confirm the unit is celsius(8), and entPhySensorScale / entPhySensorPrecision to scale the raw integer correctly.
Cisco switches & routers1.3.6.1.4.1.9.9.13.1.3.1.3
CISCO-ENVMON-MIB · ciscoEnvMonTemperatureStatusValue
Whole degrees celsius. Newer IOS-XE also answers on the ENTITY-SENSOR-MIB above — prefer that if it responds.
Juniper1.3.6.1.4.1.2636.3.1.13.1.7
JUNIPER-MIB · jnxOperatingTemp
Celsius, indexed per operating component (routing engine, FPC, chassis).
Dell servers (iDRAC)1.3.6.1.4.1.674.10892.5.4.700.20.1.6
IDRAC-MIB · temperatureProbeReading
Returns tenths of a degree — divide by 10. Index 1 is normally the inlet probe, which is the one you want.
HPE servers (iLO)1.3.6.1.4.1.232.6.2.6.8.1.4
CPQHLTH-MIB · cpqHeTemperatureCelsius
Celsius. Pair with cpqHeTemperatureLocale to find which entry is the ambient/inlet sensor.
APC / Schneider NMC probes1.3.6.1.4.1.318.1.1.10.2.3.2.1.4
PowerNet-MIB · iemStatusProbeCurrentTemp
Integer, and the unit follows the card’s configured scale — check whether the NMC is set to °C or °F before you trust it.

Verify before you trust any of these. OIDs shift between models and firmware revisions, and the two things that most often go wrong are scaling (a value of 275 meaning 27.5 °C) and units (a card quietly reporting °F). Walk the OID on your own hardware, compare it against what the device’s own web UI shows, and only then wire it into alerting. A threshold built on a mis-scaled reading is worse than no monitoring at all, because you will trust it.

If you would rather not maintain this mapping by hand, that is precisely what RackMon ships: per-vendor OID profiles, inlet and device temperature tracked separately, and a per-U heatmap so the hot node is obvious without reading a chart. There is a live read-only demo with real data. If you are weighing it against the usual suspects, the comparison with Zabbix, PRTG, LibreNMS and Checkmk is the honest version, and the FAQ covers licensing and what the free Community edition includes.

4. Setting up monitoring

  1. Put your management interfaces on a dedicated VLAN and allow your monitor to reach them on UDP/161.
  2. Enable SNMP on each device (v3 with authPriv where you can) and note the temperature OIDs.
  3. Add a few temperature/humidity probes per rack (intake + exhaust) if your gear doesn’t already expose good inlet sensors.
  4. Poll on a sensible interval — 15–60s is plenty for thermals; you’re watching a slow-moving physical quantity.
  5. Store history so you can see trends, not just the current number — the week-long climb matters as much as the spike.

5. Alerting that you’ll actually trust

Bad alerting trains people to ignore alerts. Good rack-thermal alerting should:

6. Reporting

If you host for clients (colocation, MSP), turn the data into something they’ll accept: availability and SLA-compliance figures, per-device downtime, and a read-only public status page so tenants can self-serve instead of emailing you.

The fast path

You can build all of the above with a general-purpose monitoring stack — or you can run a tool that’s already shaped around this exact job. RackMon is a self-hosted monitor that does rack thermals + SNMP v2c/v3 out of the box: a live per-U heatmap of every rack, honest alerting (hold windows, dedup, no fake “recovered”), SLA/uptime PDF reports and a public status page — in a single container, in about ten minutes. The Community edition is free forever.

See it with your own eyes: the live read-only demo shows real rack heatmaps and telemetry. Or read the comparison with Zabbix, PRTG and LibreNMS.

Download free   See pricing   ← Back to RackMon