Skip to content

SNMP Monitoring

ReadyStackGo ships with a built-in SNMP agent. That lets you query the state of every deployment using the same monitoring tooling you already use for switches, servers, and UPSs — for example PRTG, Zabbix, LibreNMS, Nagios, Checkmk, or a plain snmpwalk on the command line.

FeatureWhat it does
Polling via SNMPv2c and SNMPv3Reads system-, environment-, product-, stack-, and service-level values via classic SNMP GET / WALK operations
MIB fileHand-curated READYSTACKGO-MIB.txt, downloadable directly from the settings page
OID reference browserInteractive in-app tree that lists every concrete OID for the current environment (with a copy button)
SNMPv3 with USMUser-based authentication and encryption — MD5/SHA1/SHA-2 plus DES/AES-128/192/256
TrapsThree notification types are delivered to the configured trap receivers: failed deployments, auto-finalize, maintenance-mode changes
Hot reloadConfiguration changes take effect without restarting the container

What you will have at the end of this guide

Section titled “What you will have at the end of this guide”
  1. The SNMP agent is enabled and listening on a UDP port you chose.
  2. You have an SNMPv2c community string or an SNMPv3 user (or both).
  3. You can snmpwalk a value out of ReadyStackGo.
  4. You know how to import the MIB into PRTG (or another tool).
  5. You understand the three trap types and what they look like.

Sign in as an admin and open Settings in the sidebar. The settings index has an SNMP Monitoring tile.

Settings index with the SNMP tile

Click it — you land on /settings/snmp.


Step 2: Understand the agent configuration

Section titled “Step 2: Understand the agent configuration”

The top of the page shows the configuration block. These are the fields that matter:

Agent configuration: toggle, address, port, OID, community, trap receivers

FieldMeaningDefault
EnabledMaster switch for the agent. With this off, no UDP listener is opened.off
Listen addressIP the agent binds to. 0.0.0.0 means every network interface inside the container.0.0.0.0
PortUDP port. The agent runs on 1161 inside the container (non-privileged). If you want the SNMP standard port 161 exposed on your host, map 161:1161 in your docker-compose.override.yml.1161
Root OIDThe prefix under which every ReadyStackGo value hangs. Currently uses the placeholder PEN 65846 — it will be migrated to the real IANA-assigned PEN as soon as it is granted.1.3.6.1.4.1.65846.1
SNMPv2c communityPassword-like string for v2c access. Leave it blank to disable v2c entirely and allow v3 only.empty
Trap receiversList of receivers, separated by commas, semicolons or newlines, formatted as host or host:port. The default port is 162.empty

Step 3: Enable the agent and set a community

Section titled “Step 3: Enable the agent and set a community”

For a first test SNMPv2c is enough. It is read-only and unencrypted — fine on a trusted management network, but not safe to expose publicly.

  1. Click the Enabled toggle (it turns brand-coloured).
  2. Fill in the SNMPv2c community — choose a long, random string. We use readonly-demo for this guide; in production, generate something properly random.
  3. Click Save.

Agent enabled, community string set

You get a green success message. The agent reloads its configuration automatically — no container restart needed.

Confirmation: "Saved. Agent reloads automatically."


On a Linux/Mac host with net-snmp installed (package snmp on Debian/Ubuntu):

Terminal window
# Assumes ReadyStackGo runs on rsgo.local and you mapped 161:1161.
snmpwalk -v 2c -c readonly-demo rsgo.local 1.3.6.1.4.1.65846.1.1

You should see something like:

SNMPv2-SMI::enterprises.65846.1.1.1.0 = STRING: "0.65.3"
SNMPv2-SMI::enterprises.65846.1.1.2.0 = Counter32: 3214
SNMPv2-SMI::enterprises.65846.1.1.3.0 = INTEGER: 2
SNMPv2-SMI::enterprises.65846.1.1.4.0 = INTEGER: 5
SNMPv2-SMI::enterprises.65846.1.1.5.0 = INTEGER: 1
SNMPv2-SMI::enterprises.65846.1.1.6.0 = STRING: "2026-05-20T15:42:51Z"

Those are the system scalars: version, uptime in seconds, environment count, source count, DB health (1 = ok), build timestamp.


So your monitoring tool can show meaningful names like rsgoProductStatusText instead of raw numeric OIDs, you need the MIB (Management Information Base).

The settings page has a MIB file block with a Download MIB button.

MIB download block

Download READYSTACKGO-MIB.txt and import it into your tool. The exact “how” depends on the tool — see the PRTG section below.


Right below the MIB download, the UI has an interactive OID reference tree — per environment, product, stack, and service.

OID reference tree with environment, product, and stack

Things you can do here:

  • Click the arrow to expand/collapse a level.
  • Click an OID to copy it to your clipboard.
  • Check the status badge to see at a glance whether the stack is Running, Failed, or PartiallyRunning.

This is how you find the exact OID for, say, the status of one specific stack so you can paste it into PRTG.


SNMPv2c has no encryption. As soon as your monitoring traffic crosses any untrusted network (or you operate under compliance requirements in the EU/US), switch to SNMPv3 with USM.

On the page you’ll find the SNMPv3 users block. Click Add user:

Empty SNMPv3 user form

FieldWhat to enter
NameThe USM user name (not an OS user). Example: docs-monitor
Auth protocolChoose SHA-256 (the default). MD5 and SHA-1 are deprecated — see auth and priv algorithms.
Auth passphraseAt least 8 characters. The longer and more random, the better.
Priv protocolChoose AES-128 or stronger. Avoid DES.
Priv passphraseAt least 8 characters, different from the auth passphrase.

SNMPv3 user form fully filled in

Click Add user — the user appears in the list:

SNMPv3 user added to the list

Terminal window
snmpwalk -v 3 -u docs-monitor -l authPriv \
-a SHA-256 -A 'AuthPass12345' \
-x AES -X 'PrivPass12345' \
rsgo.local 1.3.6.1.4.1.65846.1.1

What the flags mean:

  • -v 3 — protocol version 3
  • -u docs-monitor — the USM name you set in the UI
  • -l authPriv — security level (= both auth and priv). Other values: noAuthNoPriv, authNoPriv.
  • -a SHA-256 -A '…' — auth algorithm + passphrase
  • -x AES -X '…' — priv algorithm + passphrase

Polling is good for periodic checks — but if a deployment breaks, you want to know immediately, not at the next poll. That’s what traps are for.

In the config block, under Trap receivers, list the receivers you want — e.g. the IP of your PRTG server:

prtg.local
10.0.0.42:162

One address per line (or comma-separated). Default port is 162.

TrapWhen does it fire?Payload
rsgoTrapProductDeploymentFailedA ProductDeployment.MarkAsFailed domain-event notification firesID, name, version, error message
rsgoTrapProductDeploymentAutoFinalizedA stuck deployment is auto-finalized by the watchdogID, name, version, old and new status, number of completed/failed stacks
rsgoTrapProductMaintenanceModeChangedA product enters or exits maintenanceID, name, new operation mode

Each trap lives under 1.3.6.1.4.1.65846.1.6.<N> (1, 2, 3). The bundled VarBinds (fields) live under .7.1 to .7.7:

VarBindOID columnTypeMeaning
rsgoTrapProductId.7.1OctetStringProduct deployment UUID
rsgoTrapProductName.7.2OctetStringHuman-readable name
rsgoTrapProductVersion.7.3OctetStringe.g. 4.0.0-ci
rsgoTrapStatus.7.4IntegerStatus code (see the MIB enum)
rsgoTrapStatusText.7.5OctetStringStatus text, e.g. Failed
rsgoTrapMessage.7.6OctetStringReason or error text
rsgoTrapOperationMode.7.7OctetStringNormal or Maintenance

Here is how to hook ReadyStackGo into PRTG Network Monitor as an SNMP sensor.

PRTG uses a separate MIB importer (MIB Importer.exe in the PRTG install directory) that turns .mib files into PRTG’s .oidlib format.

  1. Download READYSTACKGO-MIB.txt via the Download MIB button.
  2. Rename it to READYSTACKGO-MIB.mib (PRTG expects .mib).
  3. Start the Paessler MIB Importer.
  4. File → Import MIB File… → pick READYSTACKGO-MIB.mib.
  5. File → Save for PRTG, target folder is usually C:\Program Files (x86)\PRTG Network Monitor\snmplibs\.
  6. Restart the PRTG probe (or wait — the OID library is auto-loaded).
  1. In the PRTG device tree: right-click your RSGO device → Add Sensor.
  2. Search for SNMP Library and pick that sensor type.
  3. Select the imported READYSTACKGO-MIB.oidlib.
  4. PRTG presents every scalar OID and table column for you to choose.

Recommended sensors:

SensorOID pathWhat it measures
System healthrsgoSystemrsgoDbHealth1=ok, anything else is a problem
UptimersgoSystemrsgoUptimeSecondsSeconds since last container start
Environment healthrsgoEnvironmentTableNumber of healthy/unhealthy stacks per environment
Product statusrsgoProductTablersgoProductStatusStatus enum per product (1=Running, 4=Failed, …)
Service runningrsgoServiceTablersgoServiceRunningBoolean (1/0) per container
  1. Put the PRTG server’s IP into Trap receivers in the ReadyStackGo UI.
  2. In PRTG, add an SNMP Trap Receiver sensor on the probe (the sensor listens on port 162).
  3. Optionally define a filter on OID 1.3.6.1.4.1.65846.1.6.* so only ReadyStackGo traps count toward the sensor.

SymptomCauseFix
snmpwalk times outPort unreachable / firewall blocking UDPCheck docker compose ps (port mapping correct?), iptables -L, ICMP to host
Authentication failure on v3Passphrase or algorithm mismatchIn the UI: delete and re-add the user. On the client: match -a and -x flags to the UI values
noAccess on v2cWrong community string or community field left blank → v2c disabledVerify the UI value, set the community, Save
OIDs show numbers, not namesMIB not (correctly) importedRe-download and place the MIB in the right directory for your tool
Agent is not enabled in the status blockEnabled toggle is offToggle on, Save
Trap never arrivesWrong receiver address, port blocked, or receiver daemon not listeningCheck UDP/162 on the receiver (`ss -ulpn

TermExplanation
SNMPSimple Network Management Protocol. A UDP-based standard for reading and receiving status values from network and server devices.
OIDObject Identifier. A unique dot-separated numeric path like 1.3.6.1.4.1.65846.1.1.1.0. Every measurable value has its own OID.
MIBManagement Information Base. A text file that maps OIDs to symbolic names, data types, and descriptions.
TrapAn agent-initiated “push” — the agent contacts you on its own as soon as something happens (no polling needed).
Community stringThe v1/v2c “password”. Sent in clear text — only use on trusted networks.
USMUser-based Security Model. The SNMPv3 security model with named users, auth, and priv algorithms.
Auth / PrivAuth = packet authenticity check (HMAC). Priv = encryption of the payload.
PENPrivate Enterprise Number — the OID root 1.3.6.1.4.1.<X> any company can request from IANA. ReadyStackGo currently uses 65846 (IANA-assigned 2026-05-21).