-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request: Support for SNMP tables where the index is not the last part of the OID #555
Comments
Your index doesnt need to be a single digit its a string so it can be 1.2.3.45.4. If you split the table to the left more, i think it will work..if I understand what you are asking correctly... If you have a situation where the index of your compontmts As you said the _dct attribute works when you habe the same index in multiple This is sort of an aside.. |
I realise the A simplified version of one of the tables I am dealing with looks like this:
The details of the Interface can be found in another table which is simple enough to grab. However, modelling this table using
I have created a Python plugin which runs some code to grab the data from SNMP itself. This is fine and I can model this table no problem. However, I still can't create a standard SNMP datasource for these components to grab the message type data, as the unique index for each component item is not the last part of the OID. Ideally I would like to able to specify where Zenoss inserts the index into the provided OID. I don't think the tables in question are trying to be overly clever, the vendor just chose a weird ordering of the OID. If I wanted to model by Message Type, I could make it work, but that's not how the interested parties want to view these details. |
While building a ZenPack, I have come across a number of SNMP tables on my target devices that are not indexed in a way that supports the current way of building Components.
In a typical SNMP table, you have something like:
This is all fine and the usual modelling methods work just fine (using
GetTableMap
etc). However, I have tables like this:As you can see, the index I am interested in is not the last part of the OID. The columns are still fixed and predictable.
It is difficult to model the device, as you cannot create the
GetTableMap
objects without knowing the index... and you don't know the index until you have collected the SNMP data.Even if I did know the index ahead of time, or I use a custom script/code to collect the SNMP data, I can't do much with it in the monitoring templates. From my inspection of the zenperfsnmp code, it is pretty much hardwired to build the full OID from the base OID in the SNMP datasource and appending the snmpindex attribute of the component onto the end.
I did find out about a component's
snmpindex_dtc
attribute, but this again assumes the index is the last part of the OID.What I would like to see is a collection mechanism for the modeler plugins that allows collection of arbitrary tables, without having to specify a column map (essentially a "blind" snmpwalk from the provided table OID).
Second, it would be nice if there were an SNMP datasource that supported custom OID construction options. That could take the form of something like a TALES expression, for example:
1.2.3.4.5.100.1.${here/snmpindex}.1
, or it could be a placeholder so Zenoss knows where to insert thesnmpindex
attribute:1.2.3.4.5.100.1.<snmpindex>.1
.If there are already mechanisms for what I am trying to achieve, please do let me know!
The text was updated successfully, but these errors were encountered: