Harware Inventory Plugin: Junpier MX series

NOTE: This article has been migrated from our wiki site. I have not personally tested this against current versions of OpenNMS or recent Juniper hardware.

These instructions are for extending configuration for the optional opennms-plugin-provisioning-snmp-hardware-inventory to collect information for Juniper MX series hardware. Make sure that you have compiled the Juniper chassis MIB and all other Juniper relevant MIBs are part of data collection.

<hardware-inventory-adapter-configuration>
    <hw-extension name="JUNIPER-CHASSIS-MIB" sysOidMask=".1.3.6.1.4.1.2636.">
            <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.6" instance="jnxContentsEntry" type="string" alias="jnxContentsDescr" replace="entPhysicalDescr"/>
            <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.7" instance="jnxContentsEntry" type="string" alias="jnxContentsSerialNo" replace="entPhysicalSerialNum" />
            <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.8" instance="jnxContentsEntry" type="string" alias="jnxContentsRevision" />
            <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.10" instance="jnxContentsEntry" type="string" alias="jnxContentsPartNo" />
            <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.11" instance="jnxContentsEntry" type="string" alias="jnxContentChassisId" />
            <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.12" instance="jnxContentsEntry" type="string" alias="jnxConteChassiDescr" />
            <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.13" instance="jnxContentsEntry" type="string" alias="jnxContChasCleiCode" />
    </hw-extension>

    <hw-extension name="JUNIPER-CHASSIS-MIB" sysOidMask=".1.3.6.1.4.1.2636.">
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.6.1.1" instance="jnxContainersEntry" alias="jnxContainersIndex" type="integer32" replace="entPhysicalIndex" />
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.6.1.3" instance="jnxContainersEntry" alias="jnxContainersLevel" type="integer32"  />
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.6.1.4" instance="jnxContainersEntry" alias="jnxContainersWithin" type="integer32" replace="entPhysicalContainedIn"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.6.1.5" instance="jnxContainersEntry" alias="jnxContainersType" type="integer32" replace="entPhysicalIsFru"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.6.1.6" instance="jnxContainersEntry" alias="jnxContainersDescr" type="string" replace ="entPhysicalDescr"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.1" instance="jnxContentsEntry" alias="jnxContentsContainersIndex" type="integer32" replace="entPhysicalContainedIn" />
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.2" instance="jnxContentsEntry" alias="jnxContentsL1Index" type="integer32" replace="entPhysicalParentRelPos"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.3" instance="jnxContentsEntry" alias="jnxContentsL2Index" type="integer32" replace="entPhysicalParentRelPos"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.5" instance="jnxContentsEntry" alias="jnxContentsType" type="string" replace="entPhysicalIsFru"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.6" instance="jnxContentsEntry" alias="jnxContentsDescr" type="string" replace="entPhysicalDescr"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.7" instance="jnxContentsEntry" alias="jnxContentsSerialNo" type="string" replace="entPhysicalSerialNum"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.8" instance="jnxContentsEntry" alias="jnxContentsRevision" type="string" replace="entPhysicalHardwareRev"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.9" instance="jnxContentsEntry" alias="jnxContentsInstalle" type="integer"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.10" instance="jnxContentsEntry" alias="jnxContentsPartNo" type="string" replace="entPhysicalModelName"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.11" instance="jnxContentsEntry" alias="jnxContentChassisId" type="string"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.12" instance="jnxContentsEntry" alias="jnxConteChassisDescr" type="string"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.8.1.13" instance="jnxContentsEntry" alias="jnxContChassisCleiCode" type="string"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.12.1.1" instance="jnxFilledEntry" alias="jnxFilledContainerIndex" type="integer32" replace="entPhysicalContainedIn" />
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.12.1.5" instance="jnxFilledEntry" alias="jnxFilledDescr" type="string" replace="entPhysicalDescr" />
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.12.1.6" instance="jnxFilledEntry" alias="jnxFilledState" type="integer" />
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.1" instance="jnxOperatingEntry" alias="jnxOperaContenIndex" type="integer32" replace="entPhysicalContainedIn"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.5" instance="jnxOperatingEntry" alias="jnxOperatingDescr" type="string" />
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.6" instance="jnxOperatingEntry" alias="jnxOperatingState" type="string"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.7" instance="jnxOperatingEntry" alias="jnxOperatingTemp" type="gauge32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.8" instance="jnxOperatingEntry" alias="jnxOperatingCPU" type="gauge32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.9" instance="jnxOperatingEntry" alias="jnxOperatingISR" type="gauge32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.10" instance="jnxOperatingEntry" alias="jnxOperatinDRAMSize" type="integer32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.11" instance="jnxOperatingEntry" alias="jnxOperatingBuffer" type="gauge32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.12" instance="jnxOperatingEntry" alias="jnxOperatingHeap" type="gauge32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.13" instance="jnxOperatingEntry" alias="jnxOperatingUpTime" type="integer"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.14" instance="jnxOperatingEntry" alias="jnxOperatLastRestar" type="integer32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.15" instance="jnxOperatingEntry" alias="jnxOperatingMemory" type="integer32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.16" instance="jnxOperatingEntry" alias="jnxOperaStateOrdere" type="string"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.19" instance="jnxOperatingEntry" alias="jnxOperatRestarTime" type="string"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.20" instance="jnxOperatingEntry" alias="jnxOpera1MinLoadAvg" type="gauge32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.21" instance="jnxOperatingEntry" alias="jnxOpera5MinLoadAvg" type="gauge32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.13.1.22" instance="jnxOperatingEntry" alias="jnxOper15MinLoadAvg" type="gauge32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.14.1.1" instance="jnxRedundancyEntry" alias="jnxRedunContenIndex" type="integer32" replace="entPhysicalContainedIn"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.14.1.5" instance="jnxRedundancyEntry" alias="jnxRedundancyDescr" type="string"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.14.1.6" instance="jnxRedundancyEntry" alias="jnxRedundancyConfig" type="string"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.14.1.7" instance="jnxRedundancyEntry" alias="jnxRedundancyState" type="string"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.14.1.8" instance="jnxRedundancyEntry" alias="jnxRedunSwitchCount" type="counter32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.14.1.9" instance="jnxRedundancyEntry" alias="jnxRedundSwitchTime" type="integer"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.14.1.10" instance="jnxRedundancyEntry" alias="jnxRedunSwitcReason" type="string"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.15.1.1" instance="jnxFruEntry" alias="jnxFruContentsIndex" type="integer32" replace="entPhysicalContainedIn"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.15.1.5" instance="jnxFruEntry" alias="jnxFruName" type="string" replace="entPhysicalName"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.15.1.6" instance="jnxFruEntry" alias="jnxFruType" type="string" replace="entPhysicalIsFru"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.15.1.7" instance="jnxFruEntry" alias="jnxFruSlot" type="integer32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.15.1.8" instance="jnxFruEntry" alias="jnxFruState" type="string"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.15.1.9" instance="jnxFruEntry" alias="jnxFruTemp" type="gauge32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.15.1.10" instance="jnxFruEntry" alias="jnxFruOfflineReason" type="string"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.15.1.11" instance="jnxFruEntry" alias="jnxFruLastPowerOff" type="integer32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.15.1.12" instance="jnxFruEntry" alias="jnxFruLastPowerOn" type="integer32"/>
        <mibObj oid=".1.3.6.1.4.1.2636.3.1.15.1.13" instance="jnxFruEntry" alias="jnxFruPowerUpTime" type="integer"/>
    </hw-extension>
</hardware-inventory-adapter-configuration>

If this data is not populating, you can confirm the data is available on your device by doing a snmpwalk against the OID tree.

snmpwalk -c Public -v 2c <IP-Address> .1.3.6.1.4.1.2636.3.1.8.1.6
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.1.1.0.0 = STRING: "midplane"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.2.1.0.0 = STRING: "PEM 0"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.2.2.0.0 = STRING: "PEM 1"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.4.1.0.0 = STRING: "Left Fan Tray"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.4.1.1.0 = STRING: "Front Fan"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.4.1.2.0 = STRING: "Middle Fan"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.4.1.3.0 = STRING: "Rear Fan"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.7.2.0.0 = STRING: "FPC: MPCE Type 3 3D @ 1/*/*"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.8.2.1.0 = STRING: "PIC: 10x 1GE(LAN) -E  SFP @ 1/0/*"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.8.2.2.0 = STRING: "PIC: 10x 1GE(LAN) -E  SFP @ 1/1/*"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.8.2.3.0 = STRING: "PIC: 10X10GE SFPP @ 1/2/*"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.9.1.0.0 = STRING: "Routing Engine 0"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.9.2.0.0 = STRING: "Routing Engine 1"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.10.1.1.0 = STRING: "FPM Board"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.12.1.0.0 = STRING: "CB 0"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.12.2.0.0 = STRING: "CB 1"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.20.2.1.0 = STRING: "MIC: 3D 20x 1GE(LAN)-E,SFP @ 1/0/*"
SNMPv2-SMI::enterprises.2636.3.1.8.1.6.20.2.2.0 = STRING: "MIC: 10X10GE SFPP @ 1/1/*"
1 Like