Skip to content

Development repository for the collectd_ii Chef Cookbook

License

Notifications You must be signed in to change notification settings

Stromweld/chef_collectd_ii

Repository files navigation

Chef cookbook Code Climate Issue Count

collectd_ii

Description

Installs and configures collectd. Much of the work in this cookbook reflects work done by coderanger and realityforge.

This cookbook was copied from collectd-ng cookbook by Hector Castro. I updated it for chef-client 13+.

Requirements

Platforms

  • Amazon
  • CentOS
  • Ubuntu

Cookbooks

  • build-essential
  • yum

Attributes

  • node['collectd_ii']['version'] - Version of collectd to install.
  • node['collectd_ii']['dir'] - Base directory for collectd.
  • node['collectd_ii']['plugins_conf_dir']- Plugin directory for collectd.
  • node['collectd_ii']['url'] - URL to the collectd archive.
  • node['collectd_ii']['checksum'] - Checksum for the collectd archive.
  • node['collectd_ii']['interval'] - Number of seconds to wait between data reads.
  • node['collectd_ii']['read_threads'] - Number of threads performing data reads.
  • node['collectd_ii']['write_queue_limit_high'] - Upper bound on write queue size.
  • node['collectd_ii']['write_queue_limit_low'] - Lower bound on write queue size.
  • node['collectd_ii']['collect_internal_stats'] - Flag to collect internal collectd statistics.
  • node['collectd_ii']['name'] - Name of the node reporting statstics.
  • node['collectd_ii']['fqdnlookup'] - Flag to determine if the node should determine its own FQDN.
  • node['collectd_ii']['plugins'] - Mash of plugins for installation.
  • node['collectd_ii']['python_plugins'] - Mash of Python plugins for installation.
  • node['collectd_ii']['plugins_conf_dir'] - Directory for collectd plugins configuration files.
  • node['collectd_ii']['graphite_role'] – Role assigned to Graphite server for search.
  • node['collectd_ii']['graphite_ipaddress'] – IP address to Graphite server if you're trying to target one that isn't searchable.
  • node['collectd_ii']['packages'] – List of collectd packages.
  • node['collectd_ii']['configure_flag'] – Flag for enabling non-default collectd packages.

Recipes

  • recipe[collectd_ii] will install collectd from source.
  • recipe[collectd_ii::attribute_driven] will install collectd via node attributes.
  • recipe[collectd_ii::packages] will install collectd (and other plugins) from packages.
  • recipe[collectd_ii::recompile] will attempt to recompile collectd.

Note: You need to include the default recipe[collectd_ii] when using recipe[collectd_ii:attribute_driven] to install collectd.

Usage

By default this cookbook will attempt to download collectd from collectd.org. If your HTTP request includes Chef as the user agent, collectd.org returns an HTTP response with a message asking you to please stop using their downloads via Chef. It is highly recommended that you override node['collectd_ii']['url'] with your own download location for collectd.

A list of alternative download locations for collectd:

In order to configure collectd via attributes, setup your roles like:

default_attributes(
  'collectd' => {
    'plugins' => {
      'syslog' => {
        'config' => { 'LogLevel' => 'Info' }
      },
      'disk'      => { },
      'swap'      => { },
      'memory'    => { },
      'cpu'       => { },
      'interface' => {
        'config' => { 'Interface' => 'lo', 'IgnoreSelected' => true }
      },
      'df'        => {
        'config' => {
          'ReportReserved' => false,
          'FSType' => [ 'proc', 'sysfs', 'fusectl', 'debugfs', 'devtmpfs', 'devpts', 'tmpfs' ],
          'IgnoreSelected' => true
        }
      },
      'write_graphite' => {
        'config' => {
          'Prefix' => 'servers.'
        }
      }
    }
  }
)