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.