Librenms-service ignoring polling frequency

I’ve created a second install of librenms in /opt/librenms-reduced with the intention of polling some devices only every 5 minutes rather than every minute. Polling every minute works great with 59 of my devices, a printer seems to die after a while being polled every minute so I need to reduce this.

I’ve created a second librenms-reduced systemd service with relevant variables changed. The .env file has a new nodeID and matching appID, redis and mysql details.

The second poller appears in the WebUI happily and I can specify settings for it. It also seems to be polling the printer successfully.

There are two issues though:

  1. The RRD files for the printer are put in /opt/librenms-reduced/rrd rather than sent via rrdcached to /opt/librenms/rrd despite the rrdcached socket being specified in the config.php file, along with the correct rrdtool version. This means the graphs aren’t working in the WebUI.

  2. The reduced poller is polling at 1 minute intervals, despite seeming to know otherwise:

MainThread(INFO):Configuring LibreNMS service
MainThread(INFO):Attempting to load .env from ‘/opt/librenms-reduced/.env’
MainThread(INFO):Using pure python SQL client
nms-reduced(INFO):Attaching signal handlers on thread nms-reduced
nms-reduced(INFO):Created redis lock manager with socket_timeout of 60s
nms-reduced(INFO):Starting watchdog timer for log file: /opt/librenms-reduced/logs/librenms.log
nms-reduced(INFO):Entering main LibreNMS service loop on 18144/nms-reduced…
nms-reduced(INFO):Groups: [2]
nms-reduced(INFO):Poller QueueManager created: 4 workers, 301s frequency
Poller_2-1(INFO):Creating queue poller:2
Poller_2-1(INFO):Created redis queue with socket_timeout of 60s
nms-reduced(INFO):Groups: [2]
nms-reduced(INFO):Discovery QueueManager created: 2 workers, 21600s frequency
Discovery_2-1(INFO):Creating queue discovery:2
nms-reduced(INFO):Using pure python SQL client
Poller_2-1(INFO):Polling device 13
Discovery_2-1(INFO):Created redis queue with socket_timeout of 60s
nms-reduced(INFO):Groups: [2]
nms-reduced(INFO):Alerting QueueManager created: 1 workers, 301s frequency
Alerting(INFO):Creating queue alerting:0
nms-reduced(INFO):Using pure python SQL client
Alerting(INFO):Created redis queue with socket_timeout of 60s
nms-reduced(INFO):Groups: [2]
nms-reduced(INFO):Services QueueManager created: 2 workers, 301s frequency
Services_2-1(INFO):Creating queue services:2
nms-reduced(INFO):Using pure python SQL client
Services_2-1(INFO):Created redis queue with socket_timeout of 60s
nms-reduced(INFO):Groups: [2]
nms-reduced(INFO):Billing QueueManager created: 2 workers, 300s frequency
Billing(INFO):Creating queue billing:0
Billing(INFO):Created redis queue with socket_timeout of 60s
nms-reduced(INFO):LibreNMS Service: nms-reduced-b16e2d86-da69-11eb-9d98-00505693dd4c started!
nms-reduced(INFO):Poller group [2]. Using Python 3.6.9 and redis locks and queues
nms-reduced(INFO):Maintenance tasks will be run every 1 day, 0:00:00
Poller_2-1(INFO):Completed poller run for 13 (2) in 2.36s
Poller_2-3(INFO):Polling device 13
Poller_2-3(INFO):Completed poller run for 13 (2) in 2.30s
Poller_2-4(INFO):Polling device 13
Poller_2-4(INFO):Completed poller run for 13 (2) in 2.26s
Poller_2-2(INFO):Polling device 13
Poller_2-2(INFO):Completed poller run for 13 (2) in 2.27s

Those polls happen at 60 second intervals despite the poller clearly showing it’s frequency as 301 seconds above.

Any help with both issues greatly appreciated!

Many thanks,

James

Interestingly, the heartbeats to the WebUI poller list only happen every 300 seconds. Expected, but why poll every 60 seconds still?

So it seems the poller times for each poller don’t seem to be respected. I noticed that both pollers slipped back to 300 seconds, based on the global poller interval. Neither of the poller instances seem to respect their own intervals.

They’re both pointed at the same DB, Redis etc as per the guidance. Diff node ids and same app. Both appear in the Web UI correctly. Am I missing something?

Hi @basicmonkey
LibreNMS does not support multiple polling intervals. There is no known way to achieve what you are trying to do.
Patches are of course accepted to add this feature.
Bye

Hi @PipoCanaja

That’s a shame, thanks for letting me know.

I don’t understand why the options are there for each distributed poller instance to have different intervals when this isn’t possible?

I’d love to be able to write/patch this but I’ve never done any work with RRD!

Many thanks,

James

Each distributed poller must be configured multiple times with an interval (in the DB, in cron, etc etc). But the value must be the same for the complete LibreNMS deployment, and in all the locations where this value is necessary.