Nobulk option for polling no longer working?

Hi Everyone,

We have a few very old dlink switches in our collection which won’t poll properly with snmpbulkwalk so approximately 6 months ago I added the nobulk override for dlink switches in config.php:

$config['os']['dlink']['nobulk'] = 'true';

This was tested and confirmed working at the time I added it, allowing even our oldest switches to successfully poll and provide port statistics. (As a side effect it also actually reduced poller time, which seems odd, but I’ll take it)

However I’ve just noticed a couple of the affected switches are no longer producing port traffic data graphs again, and when I check it seems the nobulk override in config.php is not working anymore. For example if I manually do a poller or discovery capture through the GUI I see lines like this showing that snmpbulkwalk is being used when it shouldn’t be:

Timeout: No Response from udp:10.0.2.6:161  

SNMP['/usr/bin/snmpbulkwalk' '-v2c' '-c' 'COMMUNITY' '-OQUs' '-m' 'IF-MIB' '-M' '/opt/librenms/mibs:/opt/librenms/mibs/dlink' '-t' '5' '-r' '2' 'udp:HOSTNAME:161' 'ifName']

Exitcode: 1  

Timeout: No Response from udp:10.0.2.6:161  

  

Timeout: No Response from udp:10.0.2.6:161  

SNMP['/usr/bin/snmpbulkwalk' '-v2c' '-c' 'COMMUNITY' '-OQUs' '-m' 'IF-MIB' '-M' '/opt/librenms/mibs:/opt/librenms/mibs/dlink' '-t' '5' '-r' '2' 'udp:HOSTNAME:161' 'ifAlias']

Exitcode: 1  
Timeout: No Response from udp:10.0.2.6:161  

Because this model of switch doesn’t like certain snmpbulkwalk queries it times out and no data is returned.

Another weird aspect to this issue is that although the affected switches were previously generating port traffic graphs with snmpbulkwalk disabled, (as I know for sure that every switch on our network was) not only is it not currently generating port traffic, all historical port traffic for the switch is completely gone as if it had never been there. (Ports, bits has no graphs)

I’m going to take a wild guess here and say that because certain snmpbulkwalk requests are failing during the discovery polling, LibreNMS might now believe that this switch doesn’t have any port data available to use and has therefore removed the graphs ?

Has anyone else noticed a problem with the nobulk option no longer working from config.php?

Can anyone confirm that using the nobulk option for a brand of switch should prevent the use of snmpbulkwalk for ALL discovery and poller queries not just some of them ?

nobulk is now called snmp_bulk

The config option “nobulk” is now called “snmp_bulk” to align better with other options. Update any local configs you might have. See https://github.com/librenms/librenms/pull/13098 for more information

1 Like

Hi,

Thanks for that - I’ve just now seen the notification in the UI mentioning this change as well. Doh.

However I’m not sure that it worked. I’ve changed it to:

$config['os']['dlink']['snmp_bulk'] = 'false';

I’m assuming from the new name and looking at the code in the pull request that the logical sense has changed so I want it to be false to disable it, however doing a discovery poll manually through the GUI is still showing use of snmpbulkwalk:

Modules status: Global+  
OS  
Device  

#### Load disco module ports ####
SNMP['/usr/bin/snmpbulkwalk' '-v2c' '-c' 'COMMUNITY' '-OQUs' '-m' 'IF-MIB' '-M' '/opt/librenms/mibs:/opt/librenms/mibs/dlink' '-t' '5' '-r' '2' 'udp:HOSTNAME:161' 'ifDescr']

Exitcode: 1  

Timeout: No Response from udp:10.0.2.13:161  

  

Timeout: No Response from udp:10.0.2.13:161  

SNMP['/usr/bin/snmpbulkwalk' '-v2c' '-c' 'COMMUNITY' '-OQUs' '-m' 'IF-MIB' '-M' '/opt/librenms/mibs:/opt/librenms/mibs/dlink' '-t' '5' '-r' '2' 'udp:HOSTNAME:161' 'ifName']

Exitcode: 1  
Timeout: No Response from udp:10.0.2.13:161  

  

Timeout: No Response from udp:10.0.2.13:161  

SNMP['/usr/bin/snmpbulkwalk' '-v2c' '-c' 'COMMUNITY' '-OQUs' '-m' 'IF-MIB' '-M' '/opt/librenms/mibs:/opt/librenms/mibs/dlink' '-t' '5' '-r' '2' 'udp:HOSTNAME:161' 'ifAlias']

Exitcode: 1  
Timeout: No Response from udp:10.0.2.13:161  

  
Timeout: No Response from udp:10.0.2.13:161  

SNMP['/usr/bin/snmpbulkwalk' '-v2c' '-c' 'COMMUNITY' '-OQUs' '-m' 'IF-MIB' '-M' '/opt/librenms/mibs:/opt/librenms/mibs/dlink' '-t' '5' '-r' '2' 'udp:HOSTNAME:161' 'ifType']

Exitcode: 1  
Timeout: No Response from udp:10.0.2.13:161  

  

Timeout: No Response from udp:10.0.2.13:161  

SNMP['/usr/bin/snmpbulkwalk' '-v2c' '-c' 'COMMUNITY' '-OQUs' '-m' 'IF-MIB' '-M' '/opt/librenms/mibs:/opt/librenms/mibs/dlink' '-t' '5' '-r' '2' 'udp:HOSTNAME:161' 'ifOperStatus']

Exitcode: 1  
Timeout: No Response from udp:10.0.2.13:161  

  

Timeout: No Response from udp:10.0.2.13:161  

So the new setting is not working either. Any further ideas ?

‘false’ is true
false is false

a non-empty string evaluates to true in PHP… so set the setting correctly and it will work
lnms config:set os.dlink.snmp_bulk false

Huh ?

Sorry, but your reply is extremely cryptic. Are you saying the $config option syntax in config.php in my original post can no longer be used and some other syntax is needed now ? Where is that documented ?

you need to change 'false' to false.

Thank you, however I have tried this already in between other replies and it is still using snmpbulkwalk with:

$config['os']['dlink']['snmp_bulk'] = false;

I’m seeing the same behavior starting 9/2 after the change. lnms is using snmpbulkwalk for all devices even if snmp_bulk is disabled in the definitions file, or the config override $config[‘os’][‘cyberpower’][‘snmp_bulk’] = false exists. In my case, I’m seeing it with cyperpower and eltek hardware.

@tigerdjohnson That was a bug and has been fixed.

Thanks - I can confirm that it is fixed on my system after the auto update at midnight on Friday. :+1:

Interesting typo in the code - even though I looked at the commit myself earlier in this thread to see what the original changes were I still didn’t notice it myself, so easy to miss it.