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.