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.
SNMP reports how the machine is doing. It says nothing about the hops in front of it — and on a public service, most of what a visitor calls an outage happens out there.
A server can return a healthy hrProcessorLoad while nobody can load the site, because the request never arrives: DNS hands back a stale address, a TLS certificate expired overnight, or a reverse proxy is still serving a cached copy of a page the origin stopped producing hours ago. Those live in a different failure domain from the one SNMP reads, which is why an HTTP check belongs beside the SNMP one. ostr.io Monitoring polls both from outside your infrastructure, so a healthy agent and a broken edge never get mistaken for each other.
That delivery layer is a subject of its own — caching, authoritative DNS, certificate issuance, and the DDoS filtering that belongs at the edge rather than on your host. Bridge CDN, a sister project from the same operator, is being built around exactly that layer; it is in development and has not launched, so read it as background on how an edge behaves rather than as a recommendation. The habit worth taking from it either way: when you test availability, make sure the probe reaches your origin instead of an edge cache.
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.