SNMP Architecture

What is Architecture — definition

SNMP architecture is the client–server design that the Simple Network Management Protocol is built on: a small number of SNMP components — managers, agents, managed devices, and the shared MIB data model — arranged so that one system can read health data from many others. Put plainly, the SNMP manager agent relationship is the whole show. A manager asks; an agent answers; the managed device is whatever the agent runs on. Everything else is plumbing around that exchange.

What makes the architecture durable is that it's asymmetric and loosely coupled. The agent doesn't need to know how many managers exist or what they'll do with the data. The manager doesn't need code specific to each device — it just needs the OID it wants and permission to read it. That separation is why one monitoring server can poll a fleet of wildly different hardware with the same handful of commands. This page maps the pieces and how they talk; for the protocol's history and definition, see what is SNMP.

There's a nice consequence of that loose coupling worth stating up front. Because the agent is stateless from the manager's point of view — it holds no session, remembers no caller — you can point as many managers at it as you like, and none of them interferes with the others. Your in-house monitoring server, a colleague's ad-hoc snmpwalk, and an independent external checker can all poll the same agent at the same time. The agent just answers each request on its merits. That property is what makes redundant, layered monitoring practical instead of a coordination nightmare.

Diagram of SNMP architecture showing a manager polling multiple agents on managed devices over UDP ports 161 and 162

How it works

The managed-device model has three tiers, and traffic flows between the top two. At the bottom sits the managed device — a server, switch, router, UPS, printer. Running on it is the agent, a daemon (on Linux, typically snmpd) that holds a local view of the device's manageable objects and answers requests about them. Somewhere on the network is the manager, the network management station that initiates polls and collects results.

A normal exchange is short, and it runs in a fixed order:

  1. The manager sends a request PDU naming an OID to the agent's UDP port 161.
  2. The agent resolves that OID against its MIB view and checks access rules.
  3. The agent reads the current value from the underlying system.
  4. The agent returns a response PDU carrying that value.

Done. Repeat on whatever cadence you've set. Because it's pull-based, the manager owns the timing entirely — poll uptime once a minute and interface counters every ten seconds if you like.

There's a second, opposite path. An agent can be configured to send a trap — an unsolicited notification — to a manager on UDP 162 when something noteworthy happens, so you're not waiting for the next poll to hear about a crossed threshold. Most server monitoring leans on polling because it's predictable and stateless; traps shine for rare, urgent events. The trade-off gets a full treatment in traps vs polling.

Where does the agent get its numbers, though? It doesn't store them — it reads them live from the operating system or hardware at the moment of the request. Ask for hrProcessorLoad and the agent queries the kernel's own accounting; ask for storage used and it checks the filesystem. The agent is really a thin, standardized translator sitting between your OID request and the platform's native counters. That's why the same MIB object returns a Linux figure on one box and a switch's ASIC figure on another: the object is defined once, but each agent maps it to whatever its host actually measures. One architectural constraint to keep in mind: the agent answers based on its configured access rules, so an OID that isn't in the agent's view simply won't be returned, no matter how correct your request is.

Key components / concepts

Four roles, one model. Here's how they line up:

ComponentWhat it doesTypical example
Managed deviceHosts the data being monitoredLinux server, switch, printer
SNMP agentAnswers queries, may emit trapssnmpd daemon
SNMP managerPolls agents, stores and alertsMonitoring station / external checker
MIBDefines which objects exist and their OIDsHost Resources MIB (RFC 2790)

The agent is the linchpin. It exposes a tree of objects — CPU, memory, interfaces — each addressable by OID, and it enforces who may read what. The manager is the active party; nothing happens until it polls. The MIB is the contract both sides share: without an agreed definition of, say, 1.3.6.1.2.1.25.3.3.1.2 meaning processor load, the number would be meaningless. That addressing scheme — the OID tree and the MIBs that define it — is its own topic, covered in MIB and OID explained. And the credential that lets a manager through the agent's door, in v1 and v2c, is the community string.

Practical example

Let's make the manager–agent exchange concrete. Acting as the manager, you query the agent on a device for its list of running processes' status — an object in the Host Resources MIB:

snmpwalk -v2c -c public 10.0.0.5 1.3.6.1.2.1.25.4.2.1.7
HOST-RESOURCES-MIB::hrSWRunStatus.1 = INTEGER: running(1)
HOST-RESOURCES-MIB::hrSWRunStatus.2 = INTEGER: running(1)
HOST-RESOURCES-MIB::hrSWRunStatus.412 = INTEGER: runnable(2)

Each line is the agent reporting one row from its process table back to you, the manager. Notice you never logged into the box or ran ps — the agent did the local work and handed you the result. Now confirm which SNMP components are even reachable by asking the agent to identify itself with a system-level OID:

snmpget -v2c -c public 10.0.0.5 1.3.6.1.2.1.25.1.1.0
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (12345678) 1 day, 10:17:36.78

That round trip — request out, value back — is the atom the entire architecture is built from. Scale it to thousands of devices and you have a monitoring system.

Common pitfalls / notes

  • The manager is the only active side. If you're not getting data, check the poller and its schedule before you blame the agent — a healthy agent stays quiet until asked.
  • View scope beats reachability. A device can be pingable and its agent running, yet a walk returns nothing because the OID isn't in the agent's configured view.
  • Traps need a listener. Configuring an agent to send traps to UDP 162 does nothing if no manager is listening there. Polling has no such dependency.
  • One agent, many managers. Multiple managers can poll the same agent independently — which is exactly what makes external monitoring possible.
  • v2c is fine for read-only polling. ostr.io's SNMP health monitoring runs on SNMPv2c with a random community string as the password; move to v3 when traffic crosses untrusted networks.

Layered view of SNMP components: managed device, agent daemon, MIB tree, and network management station

Frequently asked questions

What are the main components of SNMP architecture?

Four: the managed device, the SNMP agent running on it, the SNMP manager that polls it, and the MIB that defines the objects both sides exchange. The manager–agent request/response is the core interaction.

What's the difference between an SNMP manager and an agent?

The agent lives on the monitored device and answers queries about its state. The manager is the client that sends those queries, collects the responses, and raises alerts. The manager initiates; the agent responds.

Can more than one manager poll the same agent?

Yes. An agent will answer any manager that presents valid credentials and is allowed by its access rules. This is precisely why you can add an independent external checker without disturbing your existing monitoring.

Does SNMP architecture require an agent on every device?

For a device to be polled directly, yes — it needs an agent. Some setups use a proxy agent to represent devices that can't run one themselves, but the manager still talks to an agent either way.

Conclusion

SNMP architecture is a small idea done well: managers poll, agents answer, MIBs define the vocabulary, and managed devices just get on with their jobs. Once you see the manager–agent exchange as the single repeating unit, scaling to a whole estate stops being mysterious. Next, dig into how those objects are addressed in MIB and OID explained. And because one agent can serve many managers, you can add an independent watcher like ostr.io Monitoring that polls from outside your network — the double durability safeguard against a monitor that fails alongside the thing it watches.

Monitor it from outside the network

SNMP only tells you a box is healthy while something is still asking. ostr.io polls your endpoints externally and fires email + SMS alerts the moment a reading crosses your line — or the agent goes silent.