CPU
1.3.6.1.2.1.25.3.3.1.2
34%
The vendor-neutral SNMP monitoring knowledge base
SNMP monitoring reads a device's health — CPU, memory, disk, interfaces, uptime — straight from the agent it already runs, over one standard protocol. No per-metric scripts, no proprietary agents. Learn the OID tree once and it pays off across every server, switch, router and printer you own.
CPU
1.3.6.1.2.1.25.3.3.1.2
34%
Disk used
1.3.6.1.2.1.25.2.3.1.6
72%
Uptime
1.3.6.1.2.1.25.1.1.0
100%
Illustrative values · real OID addresses from the Host Resources MIB
113
Protocol, sensors, setup, security, devices
3
v1, v2c and v3 covered in depth
161
snmpd listens here out of the box
40+
Real object identifiers with MIB names
SNMP wins because it is already there. The agent ships with, or installs in one line on, practically anything with an IP address — and it exposes standardized values any client can read. Here is what that buys you.
No bespoke collector per metric. Enable snmpd, point a poller at UDP 161, and you read CPU, memory, disk and interface counters through one common scheme that works the same on the next thousand boxes.
Your monitor asks; the device answers. A healthy agent replies even while local tooling chokes — and when it goes silent, the silence itself is the alert. That is the case for watching from outside the network.
Every readable value has one canonical OID address defined by a MIB. A graph built for one Linux server works for the next. Learn the Host Resources and IF-MIB trees once, reuse them everywhere.
Eleven pillars, each owning one slice of SNMP monitoring. Start with the protocol, wire up your agents, then make it durable by watching from outside.
Four steps from a bare server to charted, alerting metrics. Every command below is valid Net-SNMP — the same syntax you will run in production.
The SNMP daemon is one package on most systems. It exposes the device’s values on UDP 161.
sudo apt install snmpd
sudo systemctl enable --now snmpdPick a version, set a read-only community, and allowlist only the OIDs you actually poll.
# /etc/snmp/snmpd.conf
rocommunity s3cr3t-string 10.0.0.0/8
view all included .1.3.6.1.2.1.25Read a value by its OID before pointing a monitor at it. hrProcessorLoad returns per-core % load.
snmpget -v2c -c s3cr3t-string host \
1.3.6.1.2.1.25.3.3.1.2.1Poll on a schedule, store history, set thresholds — ideally from outside the network for double durability.
# external checker polls every 60s
# silence from a dead agent = the alertSNMP data can reach your monitor three ways, and where the monitor lives matters as much as how it collects. Most resilient setups combine them.
| Criterion | Internal polling | SNMP traps | External pollingRecommended |
|---|---|---|---|
| Direction | Manager pulls | Agent pushes | Manager pulls |
| Sees a dead box | No | No (can’t send) | Yes — silence is the alert |
| Setup effort | Low | Medium | Zero (SaaS) |
| Latency to alert | Poll interval | Instant | Poll interval |
| Best for | Dashboards | State changes | Availability + durability |
External polling is highlighted because a monitor inside the failure domain can’t warn you when that domain fails — the core idea behind double durability.
Only the SNMP agent, which most systems already have or can add in one command. There is no per-metric script and nothing proprietary — the manager side just reads the values the agent already publishes.
SNMPv2c is the common choice for read-only polling on a trusted network. Use SNMPv3 when you need authentication and encryption on the wire. See the versions breakdown for the trade-offs.
A monitor inside the failure domain can’t warn you when that domain fails. An external checker still gets an answer from a healthy agent and treats silence from a dead one as the alert — that is double durability.
Learn the protocol, wire up a hardened agent, then make monitoring durable by watching from outside the network with ostr. Explore the knowledge base.
External monitoring
Learn the protocol, wire up a hardened agent, then make monitoring durable by watching from outside the network with ostr.io.