Showing results for 
Search instead for 
Did you mean: 
Create Post

When Good OIDs Go Bad: Customizing Device Pollers

Level 11

In my last post, I spoke about different ways to Alert in NPM, pairing multiple features together to create powerful ways to create granular alerts and to really reduce on alerting noise.

Well, that’s all well and good in a perfect world, where all of your devices are reporting the correct data – but what can you do if they aren’t? If your device is providing the wrong data for CPU and Memory for example, it’s no longer possible to alert accurately on that node. Or if we’re showing the vendor as ‘Unknown’ then it’s hard to use a qualifier like ‘Where Vendor = ABCDXYZ’ to define your alert scope.

We poll certain OIDs for different device types with our Native Pollers – OIDs that we’ve carefully chosen for certain vendors or models that work for the vast majority of those devices. But sometimes, those default OIDs aren’t a perfect fit. Sometimes, the device should support an OID, but it doesn’t. Other times, we might not have a Poller created for that particular device model yet. (When we say Poller, we mean gathering specific data from an OID or group of OIDs – for example, CPU & Memory, Hardware health sensors, Topology data and so on)

Luckily, there’s an easy and quick way to swap in new Pollers, or create your own ones, and start polling these devices accurately - Device Studio!

Never heard of it? Check out this video.

So, let’s talk specifics about Device Studio, and show you the exact steps you can take to fix a device that’s providing inaccurate information. On your Orion Settings page, look under Node & Group Management for the ‘Manage Pollers’ option:


Let’s assume you have a problematic device, providing the wrong CPU & Memory details. Fixing this is a two-step process.

#1 – Find the right OIDs to poll to get accurate information

This one will need a little legwork! Check Thwack and the Content Exchange first (or click the Community tab to download directly from the Manage Pollers page) – after all, no point in re-inventing the wheel when the awesome folk on the forums have shared their successes! If that doesn’t work, you’ll often find all the information you need by plugging the device model, what you’re looking for and the word ‘OID’ into Google – chances are if you’re looking for this information, someone else was too. If that fails you, turn to the device documentation.

If you’re brave and curious, you can SNMP Walk the entire device to get a list of every single OID it supports. The best part? We ship an SNMP Walk tool with your Orion install – you can find it here:

[Install Drive]\Program Files(x86)\SolarWinds\Orion\SNMPWalk.exe


I’m an SNMP geek, so if I get into writing about how to read an SNMP Walk, you’ll never hear the end of it – so I’ll leave you with this handy guide on SNMP to get you started on reading the output and choosing the right OID from it to poll your device.

#2 – Using the OIDs, set up a new Poller, and assign it to your device

    1. In Device Studio, click ‘Create New Poller’

    2. Fill in the details about this new poller


    3. On the next page, you will see a list of all required information for this Poller. For example, to poll CPU & Memory, Orion needs to know where to get details of the current CPU load, Memory used and Free memory.


    4. For each of these details, you’ll need to define the data source – this means, you’ll need to define what OIDs Orion needs to poll to get accurate information from your device.

    5. You can browse the MIB tree itself, testing OIDs against your chosen device as you go.


Alternatively, if you already know the OID you want to poll, go ahead and enter it under ‘Manually Define OID’

    6. Once you’ve chosen the data source, you’ll be asked to confirm if that data is reasonable and accurate. You’ll have the option here to perform calculations on the polled result – for example, to get an average across CPU cores, or combine multiple pollers together – this is very useful for Memory, as often, the data is stored as the number of blocks used / free – which then must be multiplied by the block size to get an accurate result.
If you’re happy with what you see, click ‘Yes, the data source is reasonable’.


     7. Almost there! Once you complete the wizard, choose your shiny new Poller from the list and select the ‘Assign’ button.

Select the node or nodes you need to assign this poller to, and run a Scan against them – this confirms that they will definitely support those new OIDs. If they pass the test with a Match, you can Enable your new poller, replacing the Native poller.


     8. If you need to swap back again for any reason, just run a List Resources against the Node, and you can toggle back and forth between your pollers.


And there you have it!

But wait – I also mentioned that you can use the Device Studio to fix those pesky devices that show as ‘Unknown’. If you do have devices that show up with the Vendor as Unknown, we’d still like to hear about them so that we can match them natively – but if you’d like to fix this yourself without waiting for the next release, you can use Device Studio to do this, and you can even use these steps to correct any devices that respond as ‘NET-SNMP’ instead of the correct Vendor & MachineType.

Much of the steps will be the same as above – you’ll just be creating a ‘Node Details’ Poller instead.

When you define the Data Sources for Node Details pollers, you’ll notice a lot of these are optional – but one is absolutely required: the SysObjectID.


The SysObjectID returns an OID that references another part of the MIB database – usually the Vendor’s MIBs, and can be used to identify both the Vendor and the Model of the device. It’s quite rare that this one isn’t supported by a device, so try to let Orion poll the SysObjectID automatically if at all possible. If the device doesn’t support this OID, you can use a constant value instead, and manually define the OID that should have been returned by the device.


Now, with the required OIDs done and out of the way – you can move on to fixing that Vendor = Unknown problem – and that part is quick and simple. Set the Constant Value to the text string you want it to report for both the Vendor, and the MachineType.


So, there you have it – a great way to clean up those ‘Unknown’ devices, and take care of the devices that respond with incorrect information, all in one place.

Level 9

cdoyle‌ the last two screenshots look like duplicates - is the final screenshot supposed to show something different?


Level 11

Nice catch - thanks! Fixed now

Level 13

How does one combine useful results from a universal poller (interface metrics, sysLocation, etc.), with custom OIDs (e.g. 10-15 data points from hardware sensors that have vendor-specific OIDs)?

(Apologies if this is a silly question - I am still new to this.)

Level 11


It's really going to depend on what it is that you're polling and how you want to view it, but take a look at the Custom Universal Device Poller resources that you can add into a Node Details view.

(Settings -> Manage Views -> Choose a Node Details View -> Click a green + to add a resource)

Search the available Resources for 'Poller' and you'll find a lot of resource types that you could use to display your data.

The one that comes to mind for what you're looking for would be the Universal Device Poller Status resource, which gets you the latest status of every UnDP applied to that node.

If you're looking for data over a wider range (multiple pollers on multiple nodes), you would need to create a report to handle that - Take a look at the video resources on this page: the second two videos cover reporting in depth, and should give you some guidance on where to start with them. You'll need to log into your customer portal to see them.

Level 11

Not sure if this is the place to ask but I have Barracuda Load Balancers, typical OIDs would be How can I tell if these are in the NPM MIB file, when I do an SNMPWalk of the device the 20632 don't show up and when I try to get information using this OID in UnDP I get OID not Supported. Is this telling me that NPM hasn't got the MIB in its MIB file or is this telling me the device hasn't got this MIB loaded. I ask this question because I am being told by the supplier of these devices that I should be using these MIBs to obtain information back from them. Help!

Level 11


If you did an SNMP Walk of the device, and those OIDs don't show up in the results, it means that device doesn't support those OIDs. You'll need to talk to the vendor about your SNMP Walk to find out why they're saying your device should support those OIDs, when the SNMPWalk says otherwise.

Level 11

Thanks for the confirmation that's what I thought.

Level 13

Perhaps I should have qualified my question: need values I could use in alerts - ideally w/o requiring a license for each of these (range of) values. Reports aren't a substitute for realtime alerts, correct?

For instance an environmental monitoring device provides 10 temperature, and 10 additional (humidity, airflow, power, etc.) values via specific OIDs. Is there a way to display them all via a custom DP, and also use these values to set up alerts?

The other thing I couldn't get past: how do I (1) poll for multiple values and (2) add custom poller results to standard poller ones (e.g. so I don't have to re-do sysLocation, sysContact in the custom poller)?

1. Multiple values: looks like the only place I could get arbitrary OID readings is SysObjectId. That means one such value per poller? To get 20 values - set up 20 custom DPs?

Screen Shot 2015-08-31 at 12.02.44 PM.png

2. How do I add custom poller results to the standard ones? Seems it's an either-or scenario - I could use one but not the other?

Screen Shot 2015-08-31 at 12.10.04 PM.png

Thanks again.

Level 13

It's really going to depend on what it is that you're polling and how you want to view it, but take a look at the Custom Universal Device Poller resources that you can add into a Node Details view.

See scenario above with an environmental monitoring device.

If I wanted to leave the standard poller values alone (interfaces, sysLocation and sysContact, etc.) and add values from specific OIDs, how do I do that?

At the moment, if I try to assign a customer poller to a node, all the standard values vanish, and only the single (SysObjectID) value from the custom poller is used. That's not very useful.

Level 9

akhasheni‌, I think what cdoyle‌ is trying to direct you towards is Universal Device Pollers which are separate and distinct from "Custom Pollers" being discussed here.  This video might help explain: Video Tutorial: Universal Device Poller in Orion NPM - Videos | SolarWinds

Level 11

Hi akhasheni‌ , apologies, I should have been more clear in my response.

dthvt is right. The feature you'll need to use is the "Universal Device Poller" feature, not the Device Studio feature discussed above.

There's a 5 minute video available on the Universal Device Poller feature here:

It'll guide you through how to add values from specific OIDs. The feature can also handle polling tables.

Once you've created a Universal Device Poller to poll the information you want, you can add a resource into your Views to display your newly polled information.