A Chef cookbook to install collectd.
Ruby Shell HTML
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
attributes
libraries
providers
recipes
resources
spec
templates/default
test
.gitignore
.kitchen.yml
.travis.yml
Berksfile
CHANGELOG.md
CONTRIBUTORS
Gemfile
LICENSE
README.md
Rakefile
metadata.rb

README.md

collectd-ng Build Status

Description

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

Requirements

Platforms

  • Amazon 2012.09
  • CentOS 6
  • CentOS 7
  • Ubuntu 12.04
  • Ubuntu 14.04

Cookbooks

  • build-essential
  • yum

Attributes

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

Recipes

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

Note: You need to include the default recipe[collectd-ng] when using recipe[collectd-ng: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"]["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."
        }
      }
    }
  }
)