Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

RSS

sensu (52) Versions 2.5.0

Installs/Configures Sensu

Berkshelf/Librarian
Policyfile
Knife
cookbook 'sensu', '= 2.5.0'
cookbook 'sensu', '= 2.5.0', :supermarket
knife cookbook site install sensu
knife cookbook site download sensu
README
Dependencies
Changelog
Quality

DESCRIPTION

Provides LWRP's and service recipes to install and configure Sensu, a monitoring framework.

This cookbook provides the building blocks for creating a monitoring cookbook specific to your environment (wrapper). Without such a wrapper, no Sensu configuration files will be created for your nodes.

An example wrapper cookbook can be found HERE.

How to Write Reusable Chef Cookbooks

TESTING

This cookbook comes with a Gemfile, Cheffile, and a Vagrantfile for testing and evaluating Sensu.

cd examples
gem install bundler
bundle install
librarian-chef install
vagrant up
vagrant ssh

COOKBOOK DEPENDENCIES

REQUIREMENTS

SSL configuration

Running Sensu with SSL is recommended; this cookbook uses a data bag sensu, with an item ssl, containing the SSL certificates required. Sensu data bag items may be encrypted. This cookbook comes with a tool to generate the certificates and data bag item. If the integrity of the certificates is ever compromised, you must regenerate and redeploy them.

cd examples/ssl
./ssl_certs.sh generate
knife data bag create sensu

Use the plain-text data bag item:

knife data bag from file sensu ssl.json

Or, encrypt it with your data bag secret. See Encrypt a Data Bag for more information.

knife data bag --secret-file /path/to/your/secret from file sensu ssl.json
./ssl_certs.sh clean

RECIPES

sensu::default

Installs Sensu and creates a base configuration file, intended to be extended. This recipe must be included before any of the Sensu LWRP's can be used. This recipe does not enable or start any services.

sensu::rabbitmq

Installs and configures RabbitMQ for Sensu, from configuring SSL to creating a vhost and credentials. This recipe relies heavily on the community RabbitMQ cookbook LWRP's.

sensu::redis

Installs and configures Redis for Sensu. This recipe uses the RedisIO cookbook and installs Redis from source.

sensu::enterprise

Installs and configures Sensu Enterprise.

sensu::server_service

Enables and starts the Sensu server.

sensu::client_service

Enables and starts the Sensu client.

sensu::api_service

Enables and starts the Sensu API.

sensu::enterprise_service

Enables and starts Sensu Enterprise.

ATTRIBUTES

Installation

node.sensu.version - Sensu build to install.

node.sensu.use_unstable_repo - If the build resides on the "unstable" repository.

node.sensu.directory - Sensu configuration directory.

node.sensu.log_directory - Sensu log directory.

node.sensu.log_level - Sensu log level (eg. "warn").

node.sensu.use_ssl - If Sensu and RabbitMQ are to use SSL.

node.sensu.user - The user who owns all sensu files and directories. Default "sensu".

node.sensu.group - The group that owns all sensu files and directories. Default "sensu".

node.sensu.use_embedded_ruby - If Sensu Ruby handlers and plugins use the embedded Ruby in the Sensu package.

node.sensu.init_style - Style of init to be used when configuring Sensu services, "sysv" and "runit" are currently supported.

node.sensu.service_max_wait - How long service scripts should wait for Sensu to start/stop.

RabbitMQ

node.sensu.rabbitmq.host - RabbitMQ host.

node.sensu.rabbitmq.port - RabbitMQ port, usually for SSL.

node.sensu.rabbitmq.ssl - RabbitMQ SSL configuration, DO NOT EDIT THIS.

node.sensu.rabbitmq.vhost - RabbitMQ vhost for Sensu.

node.sensu.rabbitmq.user - RabbitMQ user for Sensu.

node.sensu.rabbitmq.password - RabbitMQ password for Sensu.

Redis

node.sensu.redis.host - Redis host.

node.sensu.redis.port - Redis port.

Sensu API

node.sensu.api.host - Sensu API host, for other services to reach it.

node.sensu.api.bind - Sensu API bind address.

node.sensu.api.port - Sensu API port.

LWRP'S

Define a client

sensu_client node.name do
  address node.ipaddress
  subscriptions node.roles + ["all"]
  additional(:cluster => node.cluster)
end

Define a handler

sensu_handler "pagerduty" do
  type "pipe"
  command "pagerduty.rb"
  severities ["ok", "critical"]
end

Define a check

sensu_check "redis_process" do
  command "check-procs.rb -p redis-server -C 1"
  handlers ["default"]
  subscribers ["redis"]
  interval 30
  additional(:notification => "Redis is not running", :occurrences => 5)
end

Define a filter

sensu_filter "environment" do
  attributes(:client => {:environment => "development"})
  negate true
end

Define a mutator

sensu_mutator "opentsdb" do
  command "opentsdb.rb"
end

Define a custom configuration snippet

sensu_snippet "irc" do
  content(:uri => "irc://sensu:password@irc.freenode.net:6667#channel")
end

SUPPORT

Please visit sensuapp.org/support for details on community and commercial support resources, including the official IRC channel.

2.5.0 - 2015-01-29

Fixes

Sensu directory mode attributes have been moved out of the Linux platform attributes, allowing Windows nodes to converge.

Sensu service specific RabbitMQ credentials are now only managed if they have been configured.

Features

The random_password helper has been updated to ensure a certain level of complexity, meeting Windows server 2012 user password requirements.

API stash LWRP and silencing definitions now support Sensu API stack expiration (in seconds).

A copy of the Sensu client certificate and key are now stored on the RabbitMQ node(s), intended to be used for RabbitMQ Federation. They can be found in /etc/rabbitmq/ssl/client/.

2.4.0 - 2015-01-23

Fixes

Ensure RabbitMQ verifies peer certificates.

Runit runsvdir is now managed idempotently.

Use esl-erlang on Ubuntu 12.04 and previous releases to address the poodle exploit.

Updated ServerSpec tests to work with v2.

Features

Chef-Vault support for encrypted data bags.

Sensu configuration directory mode attribute.

Sensu service config data bag item support.

RabbitMQ user ACL (permissions) support, allowing Sensu clients to use a separate RabbitMQ user with different permissions than Sensu servers etc.

2.3.0 - 2014-12-18

Fixes

Reordered RabbitMQ attribute overrides and recipe includes.

Fixed Windows sensu-client service install resource gate.

Features

Sensu Enterprise recipes, install and service.

Sanitize helper works with delayed eval values.

YUM allow downgrade for the Sensu package.

Sensu user & group attributes.

Other

Bumped the default version of Sensu to 0.16.0-1.

ChefSpec matchers.

2.2.0 - 2014-10-23

Features

Dropped content data type requirements for the Sensu configuration snippet LWRP, sensu_snippet, as it may be a string or array etc.

2.1.0 - 2014-10-03

Non-backwards compatible changes

The Sensu amqp handler type is now transport, and has the configuration definition attribute of pipe instead of exchange.

Fixes

Including the redisio::default recipe in the redis recipe, in order to support all current versions of the cookbook.

Other

Bumped the default version of Sensu to 0.14.0-1.

2.0.0 - 2014-07-25

Non-backwards compatible changes

Removed the Sensu Dashboard service recipe, dashboard_service, and associated cookbook attributes, as the dashboard is no longer part of Sensu core.

Fixes

Don't create the sensu user with a random password on Windows, if it already exists.

Features

Added Sensu extension directory to Windows service configuration.

Windows package options and DISM source cookbook attributes.

Added the sensu_asset and sensu_plugin LWRPs for fetching/installing Sensu plugins etc.

Other

Bumped the default version of Sensu to 0.13.0-1.

Cleaned up Linux package installation recipe.

1.0.0 - 2014-04-23

Fixes

Windows installation fixes/improvements.

Features

Random password generator helper.

Support for Amazon Linux.

Cookbook attribute for admin_user, defaulting to "root" for Linux, "Administrator" for Windows. This allows recipes to be used on both platforms.

0.8.0 - 2014-01-02

Features

Cookbook attributes for Sensu repository URLs.

Validate Sensu client and check names with LWRPs.

Support for Sensu client keepalive configuration.

Support for Sensu aggregate check configuration.

0.7.1 - 2013-12-19

Other

Bumped the default version of Sensu to 0.12.3-1.

0.7.0 - 2013-12-19

Fixes

Sensu LWRPs now properly set updated_by_last_action().

The Yum cookbook >= 3.0 is now supported, and gpgcheck is set to false when the resource attribute is available.

Features

Embedded Runit support for Sensu services. The init_style defaults to "sysv", but can be changed to "runit". The sensu_service LWRP is used in service recipes, eg. sensu::server_service.

Data bag item helper, supported plain-text and encrypted Sensu data bag items.

Sensu configuration through attributes is now merged with Sensu data bag items, supporting encrypted secrets.

Other

Bumped the default version of Sensu to 0.12.2-1.

Updated tests to use ServerSpec, using a wrapper cookbook called sensu-test.

0.6.2 - 2013-10-28

Other

Bumped the default version of Sensu to 0.12.0-1.

0.6.1 - 2013-10-26

Other

Bumped the default version of Sensu to 0.11.3-1.

Updated example Vagrantfile to use Ubuntu 13.04.

0.6.0 - 2013-10-02

Non-backwards compatible changes

Redis recipe, switched to redisio cookbook. The cookbook is available on the OpsCode community site & has better platform/release support.

Foodcritic Metric
            

2.5.0 failed this metric

FC015: Consider converting definition to a LWRP: /tmp/cook/8aedc27f78a207cb3fe2b6b8/sensu/definitions/rabbitmq_credentials.rb:1
FC015: Consider converting definition to a LWRP: /tmp/cook/8aedc27f78a207cb3fe2b6b8/sensu/definitions/silence_check.rb:1
FC015: Consider converting definition to a LWRP: /tmp/cook/8aedc27f78a207cb3fe2b6b8/sensu/definitions/silence_client.rb:1
FC023: Prefer conditional attributes: /tmp/cook/8aedc27f78a207cb3fe2b6b8/sensu/definitions/silence_check.rb:7
FC023: Prefer conditional attributes: /tmp/cook/8aedc27f78a207cb3fe2b6b8/sensu/definitions/silence_check.rb:16
FC023: Prefer conditional attributes: /tmp/cook/8aedc27f78a207cb3fe2b6b8/sensu/definitions/silence_client.rb:2
FC023: Prefer conditional attributes: /tmp/cook/8aedc27f78a207cb3fe2b6b8/sensu/definitions/silence_client.rb:11
FC023: Prefer conditional attributes: /tmp/cook/8aedc27f78a207cb3fe2b6b8/sensu/recipes/_windows.rb:35