Thanks
Work on this module was made possible by funding from neoTactics, Inc.
http://neotactics.com/
Collectd
Collectd is a very lightweight system statistics gathering daemon. To quote from collectd.org/ :
> […] it‘s written in C for performance and portability, […] It includes > optimizations and features to handle hundreds of thousands of data sets. It > comes with over 60 plugins […]. It provides powerful networking features > and is extensible in numerous ways. Last but not least: collectd is actively > developed and supported and well documented.
The Module
The collectd puppet module contains high-level defines to configure the most important modules as well as native puppet types to manage the configuration files as well as collectd‘s notification and threshold rules.
The mapping tries to use collectd‘s config file keywords as much as possible. Therefore any know-how should carry over pretty straight forward.
You can find the module at git.black.co.at/?p=module-collectd
Please send any patches and comments to this list for discussion.
Caveats
to split the Key-Value-style configuration of the daemon itself and the sections for the plugins into different native types. This in turn necessitates to have each plugin configuration in a separate file. The default "collectd" class in the module will setup the proper structures to automatically create the default locations and include them into the daemon‘s configuration.
a new plugin configuration, one just needs to specify a mapping from puppet resources’ parameters to the actual configuration, which is really straight forward using the provided infrastructure.
Parameters:
namevar - the name of the collect.conf option
value - the value to set for this option. Use an array to specify
multiple values, these will be put on separate lines
ensure - 'present' or 'absent'
quote - specify whether the value needs quoting. A default is chosen
for known options, if nothing is specified.
Define: collectd::network manage the network plugin‘s parameters
Parameters:
namevar - ignored, there can only be one network plugin specification per node
listen - The Listen statement's values. Can be an array for multiple interfaces.
server - The Server statement's values. Can be an array for multiple interfaces.
ttl - 1-255; set the time-to-live of sent packets.
forward - 'true' or 'false' (default); If set to true, write packets
that were received via the network plugin to the sending sockets.
cache_flush - seconds, (default=1800); how often the network plugin should
flush it's caches. Since this process is somewhat expensive
and normally doesn't do much, this value should not be too
small. The default is 1800 seconds, but setting this to
86400 seconds (one day) will not do much harm either.