Graph Not getting generated for Juniper Memory SRX4600

Hi All,
not able to get memory pool graph for my juniperSRX4600
Juniper JunOS 18.2R2.6

Version info:
Commit SHA:
Commit Date:
DB Schema: 2019_02_10_220000_add_dates_to_fdb (132)
PHP: 7.2.16
MySQL: 5.5.60-MariaDB
RRDTool: 1.4.8
SNMP: NET-SNMP 5.7.2

Make sure to run ./validate.php and post the results.

Please find below output:-

./validate.php

====================================

Component Version
LibreNMS 1.50
DB Schema 2019_02_10_220000_add_dates_to_fdb (132)
PHP 7.2.16
MySQL 5.5.60-MariaDB
RRDTool 1.4.8
SNMP NET-SNMP 5.7.2
====================================

[OK] Installed from package; no Composer required
[OK] Database connection successful
[OK] Database schema correct
[WARN] Non-git install, updates are manual or from package

Below is the output of snmpbulkwalk using jnxOperatingDRAMSize and jnxOperatingMemory

jnxOperatingMemory shows correct results whereas jnxOperatingDRAMSize shows in negative. as per juniper documentation jnxOperatingDRAMSize is deprecated
(https://www.juniper.net/documentation/en_US/junos/information-products/topic-collections/release-notes/15.1/junos-release-notes-14.2.pdf)

/usr/bin/snmpbulkwalk -v2c -c MYPUBLICSTRING -OUsb -m JUNIPER-MIB -M /opt/librenms/mibs/junos -t 30 MYJUNIPERIP jnxOperatingDRAMSize
##############################
#result with 0 value removed#
##############################
jnxOperatingDRAMSize.7.2.0.0 = INTEGER: -1409286144
jnxOperatingDRAMSize.7.4.0.0 = INTEGER: -1409286144
jnxOperatingDRAMSize.9.1.0.0 = INTEGER: -244318208
jnxOperatingDRAMSize.9.2.0.0 = INTEGER: -244318208

/usr/bin/snmpbulkwalk -v2c -c MYPUBLICSTRING -OUsb -m JUNIPER-MIB -M /opt/librenms/mibs/junos -t 30 MYJUNIPERIP jnxOperatingMemory
##############################
#result with 0 value removed#
##############################
jnxOperatingMemory.7.1.0.0 = INTEGER: 172032
jnxOperatingMemory.7.2.0.0 = INTEGER: 2752
jnxOperatingMemory.7.3.0.0 = INTEGER: 172032
jnxOperatingMemory.7.4.0.0 = INTEGER: 2752
jnxOperatingMemory.9.1.0.0 = INTEGER: 3863
jnxOperatingMemory.9.2.0.0 = INTEGER: 3863

Have you tried installing the Agent as I had issues with Unbound until I installed the Agent

See below Steps
https://docs.librenms.org/Extensions/Agent-Setup/
Make sure that systemd or xinetd is installed on the host you want to run the agent on.

We are using SNMP protocol for monitoring.

Also updated some information above , can you check?

Me as well, but like I said I had issues with monitoring unbound until I installed the agent on the affected host.

may be your your host was Linux , My problem is Juniper Firewall

Fixed this problem by changing discovery and poller mempools for junos againt jnxOperatingMemory instead of jnxOperatingDRAMSize

We just ran into this after upgrading from junos 15 to 18 on Juniper QFX and MX routers. I believe Juniper introduced a bug somewhere between 15 and 18. In junos 15 all instances of jnxOperatingDRAMSize always returned “0” (correct since its depreciated). However after upgrading to junos 18 jnxOperatingDRAMSize started returning the wacky negative numbers.

Junos 15

netnms01:# snmpwalk -v2c -c<delete> junos15router SNMPv2-SMI::enterprises.2636.3.1.13.1.10
...
SNMPv2-SMI::enterprises.2636.3.1.13.1.10.7.1.0.0 = INTEGER: 0
SNMPv2-SMI::enterprises.2636.3.1.13.1.10.8.1.1.0 = INTEGER: 0
SNMPv2-SMI::enterprises.2636.3.1.13.1.10.8.1.2.0 = INTEGER: 0
SNMPv2-SMI::enterprises.2636.3.1.13.1.10.9.1.0.0 = INTEGER: 0
SNMPv2-SMI::enterprises.2636.3.1.13.1.10.12.1.0.0 = INTEGER: 0

Junos 18

netnms01:# snmpwalk -v2c -c<delete> junos18router SNMPv2-SMI::enterprises.2636.3.1.13.1.10
...
SNMPv2-SMI::enterprises.2636.3.1.13.1.10.7.1.0.0 = INTEGER: -1006632960
SNMPv2-SMI::enterprises.2636.3.1.13.1.10.8.1.1.0 = INTEGER: 0
SNMPv2-SMI::enterprises.2636.3.1.13.1.10.8.1.2.0 = INTEGER: 0
SNMPv2-SMI::enterprises.2636.3.1.13.1.10.9.1.0.0 = INTEGER: -47185920
SNMPv2-SMI::enterprises.2636.3.1.13.1.10.12.1.0.0 = INTEGER: 0

Perhaps jnxOperatingDRAMSize should be completely removed from junos discovery and pollers since its officially depreciated, or at least updated to ignore negative values?
Problem is its looking for jnxOperatingDRAMSize first, and when it gets any non-zero value (including negative values) it uses that instead of looking at jnxOperatingMemory. Maybe it should look for jnxOperatingMemory first and only fallback to jnxOperatingDRAMSize as a last resort?

From librenms/includes/polling/mempools/junos.inc.php:

// FIX ME -- Maybe another OID? Some equipment do not provide jnxOperatingDRAMSize like MX960
if ($entry['jnxOperatingDRAMSize']) {
    $memory_available = $entry['jnxOperatingDRAMSize'];
} else {
    $memory_available = ($entry['jnxOperatingMemory'] * 1024 * 1024);
}
1 Like

Since jnxOperatingDRAMSize was bogus, I completely removed the “if else” condition and went with jnxOperatingMemory only.
we are now running junos 19.x :slight_smile: and it works well

1 Like