Skip to content

xkilian/genDevConfig

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deprecation notice

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.

Presentation of 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)

Installation

The included INSTALL file has all the installation and setup information necessary to use the tool.

Documentation

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.

Expected output

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 monitoring system integration

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.

Desig specification

The design specification tracks implemented features.

Known issues

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. :-(