PDU Discovery using SNMP

luisescobar
Kilo Contributor

I'm running an snmp probe against a PDU device and getting the following back from the probe:

<outletTable oid="1.3.6.1.4.1.1718.3.2.3">

<outletEntry oid="1.3.6.1.4.1.1718.3.2.3.1">

<outletName oid="1.3.6.1.4.1.1718.3.2.3.1.3">

<unk_1 oid="1.3.6.1.4.1.1718.3.2.3.1.3.1">

<unk_1 oid="1.3.6.1.4.1.1718.3.2.3.1.3.1.1" type="SnmpOctetString">Open_Outlet_A1</unk_1>

</unk_1>

<unk_2 oid="1.3.6.1.4.1.1718.3.2.3.1.3.2">

<unk_1 oid="1.3.6.1.4.1.1718.3.2.3.1.3.2.1" type="SnmpOctetString">Open_Outlet_B1</unk_1>

</unk_2>

</outletName>

I'm trying to loop and extract through both <outletName> values (Open_Outlet_A1 and Open_Outlet_B1) but so far have been unssuccessful.

Here is the code that I've been working with

var outlets = g_disco_functions.getXMLMemoryTable( 'outlets', this.document, '//serverTech/sentry3/systemTables/outletTable/outletEntry/' );

      // process the outlets

              var outlet_list = '';

              outlets.first();

              while (outlets.next()) {

                      var dn = outlets.getValue('outletName');

                      if (dn) {

                              if (outlet_list.length > 0)

                                      outlet_list += ', ';

                              outlet_list += dn;

                      }

}

Does anyone have any experience with this that can provide some feedback?

Thanks in advance.

1 ACCEPTED SOLUTION

Hi Luis,



How is your SNMP probe set up - more specifically the SNMP Fields?   If the MIB was loaded/compiled properly, try this in the SNMP Fields related list ::



Command = Table


OID = iso.org.dod.internet.private.enterprises.serverTech.sentry3.systemTables.outletTable


Table Fields = outletName,outletCapabilibies,outletStatus



and run a test against the PDU, let me know how the results look.



Thanks,


-Ryan


View solution in original post

5 REPLIES 5

Ryan Zulli
ServiceNow Employee
ServiceNow Employee

Hi Luis,



I would recommend finding the MIB for that specific PDU - Then you won't have to deal with the "unk" values and will it'll be much easier to read/maintain.



If you look at the snmp - classify   input record, you should see a line containing the sysObjectID, take this value and usually google will come up with a link to oidview or mibdepot where you can download the specific MIB.



let me know if this helps.


Thanks,


-Ryan


Hi Ryan,



The sysobject ID for this PDU is .1.3.6.1.4.1.1718.3 which takes me to the MIBs on this link: ftp://ftp.servertech.com/Pub/SNMP/sentry3/Sentry3.mib.



I'm able to get all the MIB values when I send a probe except for the OIDs that contain the names inside the outletName and based from what I saw on the MIB it appears that they don't have an specific value for them.



In other words you can do an snmp query that looks for the outlets using the following oid query: iso.org.dod.internet.private.enterprises.serverTech.sentry3.systemTables.outletTable.outletEntry.outletName but everything after outletName appears to not have a MIB defined since it is probably because the number of outlets can change.



Do you have any suggestions on how I can loop through the values that in between these xml tags: <outletName oid="1.3.6.1.4.1.1718.3.2.3.1.3"> and </outletName>?



<outletTable oid="1.3.6.1.4.1.1718.3.2.3">


<outletEntry oid="1.3.6.1.4.1.1718.3.2.3.1">


<outletName oid="1.3.6.1.4.1.1718.3.2.3.1.3">


<unk_1 oid="1.3.6.1.4.1.1718.3.2.3.1.3.1">


<unk_1 oid="1.3.6.1.4.1.1718.3.2.3.1.3.1.1" type="SnmpOctetString">Open_Outlet_A1</unk_1>


</unk_1>


<unk_2 oid="1.3.6.1.4.1.1718.3.2.3.1.3.2">


<unk_1 oid="1.3.6.1.4.1.1718.3.2.3.1.3.2.1" type="SnmpOctetString">Open_Outlet_B1</unk_1>


</unk_2>


</outletName>



Thanks a lot for your help.


Hi Luis,



How is your SNMP probe set up - more specifically the SNMP Fields?   If the MIB was loaded/compiled properly, try this in the SNMP Fields related list ::



Command = Table


OID = iso.org.dod.internet.private.enterprises.serverTech.sentry3.systemTables.outletTable


Table Fields = outletName,outletCapabilibies,outletStatus



and run a test against the PDU, let me know how the results look.



Thanks,


-Ryan


luisescobar
Kilo Contributor

Hi Ryan,



I was running an SNMP walk set up this way:



Command: walk


oid: iso.org.dod.internet.private.enterprises.serverTech.sentry3.systemTables.outletTable.outletEntry.outletName



I modified the related fields with the fields you provided me with and now I'm getting better results:




<outletEntry instance=".1.1.2">



<outletName type="SnmpOctetString">FX210101-PSU1</outletName>


<outletStatus type="SnmpInt32">1</outletStatus>


</outletEntry>



<outletEntry instance=".1.1.3">



<outletName type="SnmpOctetString">FX210102-PSU1</outletName>


<outletStatus type="SnmpInt32">1</outletStatus>


</outletEntry>



So it turns out that I was just setting up the fields wrong. With this I should be able to retrieve the values I need to populate the device properly. Thanks a lot for your help I will make sure to keep this in mind for future custom SNMP probes.