Use a modern stack like Prometheus + Prometheus snmp_exporter + Grafana.
Prometheus snmp_exporter is similarly functional as genDevConfig in that it can generate the necessary collection configuration and will store all data in a time series-database and has even greater scaling that genDevConfig.
genDevConfig is a perl Script that will generate the configuration to supervise a networked device using SNMP. The configuration that is generated is meant to be used with the Shinken monitoring system.
genDevConfig includes plugins to identify various hosts and RFC compliant interface types. Each plugin is a perl script that is imported at runtime by genDevConfig.
The script includes a definition file called Defaults.* for the generic SNMP collection parameters such as :
- OIDs (basic SNMP information to collect data)
- datasources (How to process the OID)
- triggers (threshold calculations)
- device types (for a given device type what datasources should be collected)
The included INSTALL file has all the installation and setup information necessary to use the tool.
The documentation file is maintained in a Microsoft word format at www.acktomic.com and contains references for :
- genDevConfig execution workflow (diagram and explanations)
- genDevConfig -h (some runtime help options are explained)
- How to add a new plugin (very easy, step by step explanation and example)
- Troubleshooting
Note: It refers to genRtrConfig and genDevConfig 2.x which are previous versions of the script not meant for use with Shinken, but the information is still relevant and plugin building format has not changed.
For a device, genDevConfig will generate a Shinken configuration directory. Within this directory it will place a file, named after the "device host_name", which will contain the following information:
- define host {
- host_name ... ...
}
- define service {
- chassis_service ...
}
- define service {
- custom_service1
- }
- ... custom_serviceN
- define service {
- interface_service1
- }
- ... interface_serviceN
Shinken host and service configurations generated by genDevConfig are meant to be used with SnmpBooster, the Shinken SNMP poller module.
Learn more about the installation and use of SnmpBooster in the Shinken snmp-booster module wiki.
The design specification tracks implemented features.
There are a number of known issues at this time :
- A DSTEMPLATE cannot have more than one instance map.
This is because the instance is passed as a check_command parameter. So DSTEMPLATES that expect different types of instance mapping per DS will not work correctly. We have to choose either Option-1, an inelegant multiple instance passed in check_commands, Option-2 split DSTEMPLATEs so that they only use a single instance map passed in the check_command, as is done today, option-3 Same as option-2, but also permit static instance mapping keys specified in the DS.
- The INI configuration files cannot have duplicate key/values. The configObj module will spit an error and bail. :-(
- Some plugins have not been tested against the actual equipement, consult the design specification to know which ones. Feedback and pull requests are welcome.
- In case of suspected problems, run genDevConfig with loglevel set to debug. genDevConfig -h for syntax.
- Be extra careful with the syntax when declaring OIDs. There is a leading dot, there are no quotes, etc. Small problems will block startup of the snmp booster module, which is bad. :-(