cfgmaker - Creates mrtg.cfg files (for mrtg-2.9.4)
cfgmaker [options] community@router [community@router ...]
--ifref=nr interface references by Interface Number (default) --ifref=ip ... by Ip Address --ifref=eth ... by Ethernet Number --ifref=descr ... by Interface Description --ifref=name ... by Interface Name --ifref=type ... by Interface Type
--global "x: a" add global config entries
--no-down do not look at admin or opr status of interfaces
--descint describe interface instead of just 'Traffic Analysis for'
--subdirs=format give each router its own subdirectory, naming each per "format", in which HOSTNAME and SNMPNAME will be replaced by the values of those items -- for instance, --subdirs=HOSTNAME or --subdirs="HOSTNAME (SNMPNAME)"
--noreversedns do not reverse lookup ip numbers
--help brief help message --man full documentation
--output=file output filename default is STDOUT
Cfgmaker creates MRTG configuration files based on information pulled from a router or another SNMP manageable device.
Router is the DNS name or the IP number of an SNMP-managable device. Following the name you can specify 6 further options separated by colons. The full syntax looks like this:
B<router>[:[B<port>][:[B<timeout>][:[B<retries>][:[B<backoff>][:B<version>]]]]]
Of special interest may be the last parameter, version. If you set this to '2' then your device will be queried with SNMP version 2 requests. This allows to poll the 64 bit traffic counters in the device and will thus work much better with fast interfaces (no more counter overrun).
To work around this sad problem MRTG can identify interfaces by 3 other properties. None of these works for all interfaces, but you should be able to find one which does fine for you. Note that especially ethernet addrsses can be problematic as some routers have the same ethernet address on most of their interface cards.
Select ip to identify the interface by its IP number. Use eth to use the ethernet address for identification. Or use descr to use the Interface description.
If your chosen method does not allow unique interface identification on the device you are querying, cfgmaker will tell you about it.
=item B<--global> B<">I<bla: abc>B<">
Use this to add global options to the generated config file. You can call --global several times to add multiple options.
--global "workdir: /home/mrtg"
If you want some default Options you might want to put
--global "options[_]: growright,bits"
cfgmaker --subdirs=HOSTNAME__SNMPNAME public@10.10.0.18
would result in the generation of lines looking something like:
Directory[10.10.0.18_1]: 10.10.0.18__fp2200-bothrip-1.3
This example creates a config file for router.place.xyz: the router has the community name public. Interfaces get identified by their IP number. Two global options get added to the config file. The config file gets redirected to mrtg.conf. The '\' signs at the end of the line mean that this command should be written on a single line.
cfgmaker --global "WorkDir: /home/tobi" \ --global "Options[_]: growright,bits" \ --ifref=ip \ public@router.place.xyz > mrtg.cfg
Tobias Oetiker <tobi@oetiker.ch>
GNU General Public License
Cfgmaker is Copyright 2000 by Tobias Oetiker <tobi@oetiker.ch>