/chef-collectd

A Chef cookbook to install collectd.

Primary LanguageRubyApache License 2.0Apache-2.0

collectd 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.5
  • Ubuntu 12.04

Cookbooks

  • build-essential
  • yum

Attributes

  • node["collectd"]["version"] - Version of collectd to install.
  • node["collectd"]["dir"] - Base 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"]["name"] - Name of the node reporting statstics.
  • node["collectd"]["plugins"] - Mash of plugins for installation.
  • 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.

Recipes

  • recipe[collectd] will install collectd from source.
  • recipe[collectd::attribute_driven] will install collectd via node attributes.
  • recipe[collectd::packages] will install collectd (and other plugins) from packages.
  • recipe[collectd::recompile] will attempt to recompile 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."
        }
      }
    }
  }
)