This article applies as of PRTG 22
Introduction to the SNMP Custom Table sensor
The SNMP Custom Table sensor was specifically designed to monitor structures known as Tables. These are usually implemented by the designer of the MIB (usually the vendor of the monitored device) when there are multiple instances of the same object (for example, memory, disks, interfaces).
For interfaces, for example, the table looks like this (simplified):
Index | Name | BytesIn | BytesOut |
1 | LAN 1 | 1000 | 2000 |
2 | LAN 2 | 3400 | 7000 |
3 | WAN | 2000 | 3200 |
[....] | [....] | [....] | [....] |
To monitor table objects, you can use individual sensors (SNMP Custom sensor or SNMP Custom Advanced sensor), but setting up the sensors for multiple interfaces is very time-consuming.
You can also try to acquire the MIB file and import it for deployment as an SNMP Library sensor, but this will generate a large number of sensors that by themselves are very expressive.
In this case, the SNMP Custom Table sensor is a much better approach. The sensor is able to recognize the table via a meta-scan and displays it in PRTG. This allows you to configure the sensor and to select all desired indexes (interfaces) that you want to monitor. You can monitor up to 10 channels per sensor.
With MIB Importer, you can identify a Table by checking the Kind of the OID that you inspect. The screenshot below illustrates what you will see when importing the IF-MIB. The Lookup at the bottom-right will tell you how to define your lookup file for this OID.

Click to enlarge.
For a detailed explanation regarding the creation and usage of lookups, see Value interpretation (aka Lookups)
Sensor setup: SNMP dataset example
We will demonstrate the usage with real data from a switch. The data was acquired using SNMP Tester. Scroll down or see What can I monitor with the SNMP Custom Table Sensor? to view the data.
Creating the sensor
1. In PRTG, open the target device, select Add Sensor, look for the SNMP Custom Table sensor, and enter the table's OID. In this case, use 1.3.6.1.2.1.2.2, which is the OID for the ifTable.
Note: Do not enter the leading dot from the OID (this will cause issues).
2. Enter the sensor name. You can enter any text here. Use the default [tablename] and [rowidentifier] placeholders or any other table OID that has the same index as the entries from the current table. For example, in this case, you will create a sensor for the ifTable but you can query the ifName from the ifXTable as well. To do this, add [1.3.6.1.2.1.31.1.1.1.1] to the name. Do not enter an index because it will be automatically appended. Be aware, however, that while the [rowidentifier] can be dynamically updated, any other OID entered here will only be updated once at sensor creation.
Use the following name in this example:
Table: [tablename] / [rowidentifier]/ [1.3.6.1.2.1.31.1.1.1.1] |

Click to enlarge.
3. In the Table Specific\Table section, you can view the current data in the table. You need to select the appropriate indexes for which you want to deploy sensors. You can also review the sensor's data to help you with the setup.

Click to enlarge.
- To view translated OID names here, you have to place the MIB file in the \MIB subfolder of the PRTG program directory. Use MIB Importer to check for common syntax errors first. A PRTG core server restart is required after uploading the MIB there.
4. The identification column will be used to keep track of the monitored table row if the indexes within the table change. It will also replace the previously configured [rowidentifier] placeholder in the sensor's name. Use a column that provides static unique entries whenever possible, as this column will be used to track the appropriate row when the table's indexes change. For this example, we will select ifDescr.
Note: Changing or duplicating values in this column can affect the sensor's operation.
5. Now you can start configuring and selecting the sensor channels. Start with the Sensor Channel #1 Name, because you will use this channel (the primary channel) to monitor the interface's status (the so-called State). For the Sensor Channel #1 Column, select ifOperStatus because we look for the state. This requires a lookup that you need to create in advance. To use the lookup, set the Unit to Value lookup and under Sensor Channel #1 Value Lookup, select the desired lookup file, here, prtg.custom.ifoperstatus.
Note: You may set the unit to Count if you wish to create the sensor without using a lookup. If you do so, your result will not match the screenshots of this article.

Click to enlarge.
- For the second and third channel, measure the numbers of Bytes IN and Bytes OUT for the interface. Because this is a COUNTER datatype, set the Value Type to Delta and configure the Unit as BytesBandwidth. The fields are ifInOctets and ifOutOctets respectively.

Click to enlarge.
- The last channel in this example will measure the interface's speed, so call the channel Speed. The column is ifSpeed. The Value is the default Gauge. For the Unit, you can either use Count (see below) or create a lookup file for this as well.

Cick to enlarge.
6. Click Continue to create the sensors. One sensor will be created for each row selected for the Table.
This is what the created sensor looks like. Note that the sensor is named according to the entered placeholders or OIDs.

Click to enlarge.
When do I use the SNMP Custom Table sensor?
How does the SNMP Custom Table sensor compare to the SNMP Custom sensor, the SNMP Custom Advanced sensor, and the SNMP Custom String sensor?
Advantages
- The sensor can track unique data in the table when uniquely identified by the Identification Column. This means that the sensor may be able to continue working when a regular SNMP sensor may fail with error No metrics found (PE223) or start displaying inaccurate data.
- It is fully compatible with device templates and the auto-discovery.
- It supports dynamic names in templates.
- The initial setup may cause more effort, but if you intend to deploy it multiple times on the same devices or on multiple devices, it will save time.
- The Identification Column can be used to keep track of changing SNMP indexes (for this to work, the selected column should be unique).
Downsides and limitations
- It can only query numeric values, does not work for String values, and cannot perform regex.
- It can only query data stored in SNMP tables.
- You need to understand the MIB you want to monitor and know the OIDs for its tables.
More
Add comment