RRDBot

IP6M uses RRDBot SNMP polling daemon to collect statistical data from network devices e.g. cable modems, cmtses. It is able to poll large number of devices simultaniously in a very frequent timing. IP6M uses 10s timing, allowing near "real-time" statistics. RRDBot stores collected data in RRDTool (Round Robin Database) format files.

RRDBot is a C program, the IP6M installer playbook downloads the source code, compile RRDBot and creates Systemd startup configuration for it:

/lib/systemd/system/rrdbotd.service

Content for this file is:

[Unit]
Description=rrdbotd
Documentation=https://github.com/REANNZ/rrdbot
After=network.target

[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/drupal8/private/rrdbot/conf
StandardOutput=file:/var/log/rrdbot.sys.log
StandardError=file:/var/log/rrdbot.error.log
ExecStart=/usr/local/sbin/rrdbotd -c /var/www/drupal8/private/rrdbot/conf
Restart=on-failure

[Install]
WantedBy=multi-user.target

 

Commands provided by RRDBot

rrdbot-create [-c config directory]

This command creates RRD database files according to the RRDBot device config files.

A sample RRDBot config file for a Docsis Cable modem is the following:

[general]
rrd: /var/www/drupal8/private/rrdbot/db/cablemodem-2.rrd
[poll]
interval: 10
in.source: snmp2c://public@10.1.0.3/ifInOctets.2
out.source: snmp2c://public@10.1.0.3/ifOutOctets.2
dspwr.source: snmp2c://public@10.1.0.3/docsIfDownChannelPower.3
uspwr.source: snmp2c://public@10.1.0.3/docsIfCmStatusTxPower.2
dssnr.source: snmp2c://public@10.1.0.3/docsIfSigQSignalNoise.3
microref.source: snmp2c://public@10.1.0.3/docsIfSigQMicroreflections.3
corrected.source: snmp2c://public@10.1.0.3/docsIfSigQCorrecteds.3
uncorrected.source: snmp2c://public@10.1.0.3/docsIfSigQUncorrectables.3
[create]
in.type: COUNTER
out.type: COUNTER
dspwr.type: GAUGE
uspwr.type: GAUGE
dssnr.type: GAUGE
microref.type: GAUGE
corrected.type: COUNTER
uncorrected.type: COUNTER
usrcv.type: GAUGE
ussnr.type: GAUGE
cf: AVERAGE
archive: 6/minute * 2 days,
         30/hour * 1 month,
         2/hour * 1 year

IP6M takes care of creating these config files and calling rrdbot-create in case of a cable modem has been created or updated.

rrdbot-get snmp://community@host/oid

This command can be used to manually test an snmp request.

rrdbotd

This is the daemon.