Version information
This version is compatible with:
- Puppet Enterprise 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >=4.0.0 <5.0.0
- , , ,
Start using this module
Add this module to your Puppetfile:
mod 'sjha4-test', '2.7.0'
Learn more about managing modules with a PuppetfileDocumentation
Sensu-Puppet
Installs and manages the open source monitoring framework Sensu.
Tested with Travis CI
Documented with Puppet Strings
Compatibility - supported sensu versions
If not explicitly stated it should always support the latest Sensu release. Please log an issue if you identify any incompatibilities.
Sensu Version | Recommended Puppet Module Version |
---|---|
>= 0.26.0 | latest |
0.22.x - 0.25.x | 2.1.0 |
0.20.x - 0.21.x | 2.0.0 |
0.17.x - 0.19.x | 1.5.5 |
Upgrade note
Versions prior to 1.0.0 are incompatible with previous versions of the Sensu-Puppet module.
Installation
$ puppet module install sensu/sensu
Prerequisites
- Redis server and connectivity to a Redis database
- RabbitMQ server, vhost, and credentials
- Ruby JSON library or gem
Dependencies
- puppetlabs/apt
- puppetlabs/stdlib
- lwf/puppet-remote_file
See metadata.json
for details.
Pluginsync should be enabled. Also, you will need the Ruby JSON library or gem on all your nodes.
Rubygem:
$ sudo gem install json
Debian & Ubuntu:
$ sudo apt-get install ruby-json
Quick start
Before this Puppet module can be used, the following items must be configured on the server.
- Install Redis
- Install RabbitMQ
- Add users to RabbitMQ
- Install dashboard (optional)
To quickly try out Sensu, spin up a test virtual machine with Vagrant that already has these prerequisites installed.
$ vagrant up
$ vagrant status
$ vagrant ssh sensu-server
You can then access the API.
$ curl http://admin:secret@192.168.56.10:4567/info
Navigate to 192.168.56.10:3000
to use the uchiwa dashboard
username => uchiwa
password => uchiwa
Navigate to 192.168.56.10:15672
to manage RabbitMQ
username => sensu
password => correct-horse-battery-staple
See the tests directory and Vagrantfile for examples on setting up the prerequisites.
Basic example
Sensu server
node 'sensu-server.foo.com' {
class { 'sensu':
rabbitmq_password => 'correct-horse-battery-staple',
server => true,
api => true,
plugins => [
'puppet:///data/sensu/plugins/ntp.rb',
'puppet:///data/sensu/plugins/postfix.rb'
]
}
sensu::handler { 'default':
command => 'mail -s \'sensu alert\' ops@foo.com',
}
sensu::check { 'check_ntp':
command => 'PATH=$PATH:/usr/lib/nagios/plugins check_ntp_time -H pool.ntp.org -w 30 -c 60',
handlers => 'default',
subscribers => 'sensu-test'
}
sensu::check { '...':
...
}
}
Sensu client
node 'sensu-client.foo.com' {
class { 'sensu':
rabbitmq_password => 'correct-horse-battery-staple',
rabbitmq_host => 'sensu-server.foo.com',
subscriptions => 'sensu-test',
}
}
Advanced example using Hiera
This example includes the sensu
class as part of a base class or role
and configures Sensu on each individual node via
Hiera.
hiera.yaml
---
:hierarchy:
- %{fqdn}
- %{datacenter}
- common
:backends:
- yaml
:yaml:
:datadir: '/etc/puppet/%{environment}/modules/hieradata'
common.yaml
sensu::install_repo: false
sensu::purge:
config: true
sensu::rabbitmq_host: 10.31.0.90
sensu::rabbitmq_password: password
sensu::rabbitmq_port: 5672
sensu-server.foo.com.yaml
sensu::server: true
nosensu.foo.com.yaml
sensu::client: false
site.pp
node default {
class { 'sensu': }
...
}
sensu-client.foo.com.yaml
---
sensu::subscriptions:
- all
sensu::server: false
sensu::extensions:
'system':
source: 'puppet:///modules/supervision/system_profile.rb'
sensu::handlers:
'graphite':
type: 'tcp'
socket:
host: '127.0.0.1'
port: '2003'
mutator: "only_check_output"
'file':
command: '/etc/sensu/handlers/file.rb'
'mail':
command: 'mail -s 'sensu event' email@address.com'
sensu::handler_defaults:
type: 'pipe'
sensu::checks:
'file_test':
command: '/usr/local/bin/check_file_test.sh'
'chef_client':
command: 'check-chef-client.rb'
sensu::filters:
'recurrences-30':
attributes:
occurrences: "eval: value == 1 || value % 30 == 0"
sensu::filter_defaults:
negate: true
sensu::check_defaults:
handlers: 'mail'
sensu::mutators:
'tag':
command: '/etc/sensu/mutators/tag.rb'
'graphite':
command: '/etc/sensu/plugins/graphite.rb'
classes:
- sensu
Safe Mode checks
By default Sensu clients will execute whatever check messages are on the queue. This is potentially a large security hole.
If you enable the safe_mode
parameter, it will require that checks are
defined on the client. If standalone checks are used then defining on
the client is sufficient, otherwise checks will also need to be defined
on the server as well.
A usage example is shown below.
Sensu server
Each component of Sensu can be controlled separately. The server components are managed with the server, and API parameters.
node 'sensu-server.foo.com' {
class { 'sensu':
rabbitmq_password => 'correct-horse-battery-staple',
server => true,
api => true,
plugins => [
'puppet:///data/sensu/plugins/ntp.rb',
'puppet:///data/sensu/plugins/postfix.rb'
],
safe_mode => true,
}
...
sensu::check { "diskspace":
command => '/etc/sensu/plugins/system/check-disk.rb',
}
}
Sensu client
node 'sensu-client.foo.com' {
class { 'sensu':
rabbitmq_password => 'correct-horse-battery-staple',
rabbitmq_host => 'sensu-server.foo.com',
subscriptions => 'sensu-test',
safe_mode => true,
}
sensu::check { "diskspace":
command => '/etc/sensu/plugins/system/check-disk.rb',
}
}
Using custom variables in check definitions
sensu::check{ 'check_file_test':
command => '/usr/local/bin/check_file_test.sh',
handlers => 'notifu',
custom => {
'foo' => 'bar',
'numval' => 6,
'boolval' => true,
'in_array' => ['foo','baz']
},
subscribers => 'sensu-test'
}
This will create the following check definition for Sensu:
{
"checks": {
"check_file_test": {
"handlers": [
"notifu"
],
"in_array": [
"foo",
"baz"
],
"command": "/usr/local/bin/check_file_test.sh",
"subscribers": [
"sensu-test"
],
"foo": "bar",
"interval": 60,
"numval": 6,
"boolval": true
}
}
}
Writing custom configuration files
You can also use the sensu::write_json
defined resource type to write custom
json config files:
$contact_data = {
'support' => {
'pagerduty' => {
'service_key' => 'r3FPuDvNOTEDyQYCc7trBkymIFcy2NkE',
},
'slack' => {
'channel' => '#support',
'username' => 'sensu',
}
}
}
sensu::write_json { '/etc/sensu/conf.d/contacts.json':
content => $contact_data,
}
Handler configuration
sensu::handler {
'handler_foobar':
command => '/etc/sensu/handlers/foobar.py',
type => 'pipe',
config => {
'foobar_setting' => 'value',
}
}
This will create the following handler definition for Sensu (server):
{
"handler_foobar": {
"foobar_setting": "value"
},
"handlers": {
"handler_foobar": {
"command": "/etc/sensu/plugins/foobar.py",
"severities": [
"ok",
"warning",
"critical",
"unknown"
],
"type": "pipe"
}
}
}
Extension configuration
sensu::extension {
'an_extension':
source => 'puppet://somewhere/an_extension.rb',
config => {
'foobar_setting' => 'value',
}
}
This will save the extension under /etc/sensu/extensions and create the following configuration definition for Sensu:
{
"an_extension": {
"foobar_setting": "value"
},
}
Disable Service Management
If you'd prefer to use an external service management tool such as DaemonTools or SupervisorD, you can disable the module's internal service management functions like so:
sensu::manage_services: false
Purging Configuration
By default, any sensu plugins, extensions, handlers, mutators, and
configuration not defined using this puppet module will be left on
the filesystem. This can be changed using the purge
parameter.
If all sensu plugins, extensions, handlers, mutators, and configuration
should be managed by puppet, set the purge
parameter to true
to
delete files which are not defined using this puppet module:
sensu::purge: true
To get more fine-grained control over what is purged, set the purge
parameter to a hash. The possible keys are: config
, plugins
,
extensions
, handlers
, mutators
. Any key whose value is true
cause files of that type which are not defined using this puppet module
to be deleted. Keys which are not specified will not be purged:
sensu::purge:
config: true
plugins: true
Including Sensu monitoring in other modules
There are a few different patterns that can be used to include Sensu monitoring into other modules. One pattern creates a new class that is included as part of the host or node definition and includes a standalone check, for example:
apache/manifests/monitoring/sensu.pp
class apache::monitoring::sensu {
sensu::check { 'apache-running':
handlers => 'default',
command => '/etc/sensu/plugins/check-procs.rb -p /usr/sbin/httpd -w 100 -c 200 -C 1',
custom => {
refresh => 1800,
occurrences => 2,
},
}
}
You could also include subscription information and let the Sensu server schedule checks for this service as a subscriber:
apache/manifests/monitoring/sensu.pp
class apache::monitoring::sensu {
sensu::subscription { 'apache': }
}
You can also define custom variables as part of the subscription:
ntp/manifests/monitoring/ntp.pp
class ntp::monitoring::sensu {
sensu::subscription { 'ntp':
custom => {
ntp {
server => $ntp::servers[0],
},
},
}
}
And then use that variable on your Sensu server:
sensu::check { 'check_ntp':
command => 'PATH=$PATH:/usr/lib/nagios/plugins check_ntp_time -H :::ntp.server::: -w 30 -c 60',
...
}
If you would like to automatically include the Sensu monitoring class as part of your existing module with the ability to support different monitoring platforms, you could do something like:
apache/manifests/service.pp
$monitoring = hiera('monitoring', '')
case $monitoring {
'sensu': { include apache::monitoring::sensu }
'nagios': { include apache::monitoring::nagios }
}
Installing Gems into the embedded ruby
If you are using the embedded ruby that ships with Sensu, you can install gems
by using the sensu_gem
package provider:
package { 'redphone':
ensure => 'installed',
provider => sensu_gem,
}
Sensitive String Redaction
Redaction of passwords is supported by this module. To enable it, pass a value to sensu::redact
and set some password values with sensu::client_custom
class { 'sensu':
redact => 'password',
client_custom => {
github => {
password => 'correct-horse-battery-staple',
},
},
}
Or with hiera:
sensu::redact
- :password"
sensu::client_custom:
- sensu::client_custom:
nexus:
password: "correct-horse-battery-staple'
This ends up like this in the uchiwa console:
You can make use of the password now when defining a check by using command substitution:
sensu::check{ 'check_password_test':
command => '/usr/local/bin/check_password_test --password :::github.password::: ',
}
Dashboards
The following puppet modules exist for managing dashboards
License
See LICENSE file.
Types in this module release
Change Log
v2.7.0
Closed issues:
- the sensu-plugin gem is incorrectly installed with the system ruby instead of the embedded ruby #688
Merged pull requests:
- (GH-644) Use the new apt and yum repositories #696 (ghoneycutt)
- (GH-688) Default sensu-plugin gem to use sensu_gem provider #694 (jeffmccune)
v2.6.0 (2017-06-28)
Closed issues:
- Drop support for Windows 2008 and 2012 (non R2) #691
- Drop support for EOL platform ubuntu 12.04 #690
Merged pull requests:
- EOL platforms #693 (ghoneycutt)
- Add support for Ubuntu 16.04 LTS #692 (ghoneycutt)
- (GH-681) Add EL6 platform as a client to Vagrant #689 (ghoneycutt)
v2.5.0 (2017-06-27)
Closed issues:
- Ensure file validation tests are being done #680
- Use a newer puppetlabs_spec_helper that includes syntax validation #679
- Implement support for arbitrary top-level configuration hashes #661
- Unable to define handler specific config properly #647
- Getting 'cluster' error from module and then after updating getting 'heartbeat' error #634
- Update repository URLs and release new module version #606
Merged pull requests:
- (GH-680) Add file validation checks for Vagrantfile and shell scripts (*.sh) #687 (ghoneycutt)
- (GH-679) Upgrade puppetlabs_spec_helper and puppet-lint #686 (ghoneycutt)
v2.4.0 (2017-06-27)
Closed issues:
- Vagrant environment does not work #676
Merged pull requests:
- Migrate vagrant to CentOS 7 and Puppet v4 #677 (ghoneycutt)
v2.3.1 (2017-06-27)
Closed issues:
- sensu::write_json requires that owner and group be specified #683
- Heads up about new contributors #673
Merged pull requests:
- (GH-683) Fix having to specify owner/group for sensu::write_json #684 (ghoneycutt)
v2.3.0 (2017-06-21)
Closed issues:
- Fix package suffix spec test #670
- all sort of integrations #666
- test #665
- Could not find init script or upstart conf file for 'sensu-enterprise' #662
- Error: no parameter named 'heartbeat' at [...]/modules/sensu/manifests/rabbitmq/config.pp:126 #659
Merged pull requests:
- Release v2.3.0 #675 (ghoneycutt)
- Fix #670 - Package release string for EL platform #674 (ghoneycutt)
- Update readme example for write_json #672 (robbyt)
- Add ability to write arbitrary JSON to a file #671 (ghoneycutt)
- Standardize files to ignore #669 (ghoneycutt)
- TravisCI to explicitly test supported versions of Puppet #668 (ghoneycutt)
- fix apt errors by adding os facts to debian and ubuntu examples #663 (cwjohnston)
- Avoid running sensu enterprise service in opensource installation #660 (devcfgc)
- redhat version fix #615 (andyroyle)
v2.2.1 (2017-05-30)
Implemented enhancements:
- Drop support for old versions of Puppet and Ruby in next major version? #577
Fixed bugs:
- sensu::check unable to remove a check property #535
Closed issues:
- All of the json files (client, api, etc.) in /etc/sensu/conf.d remain empty #657
- RHEL 7 - Sensu Enterprise service is not being managed correctly #655
- Sensu packages cannot be authenticated #654
- Version parameter fails to work with new package naming #641
- sensu-0.28.5-2.msi checksum mismatch #630
- Provider sensu_gem is not functional on this host #629
- Add Enterprise contact routing management #624
- Does not install latest version #622
- sense::handler creates deprecated "Filters" entry in resulting yaml #620
- Windows: Provider sensu_gem is not functional on this host #607
- Source parameter not purged when removed from check #601
- Windows: Fails to create sensu user #586
- Doesn't create a transport.json file #556
Merged pull requests:
- Fix service inconsistencies in enterprise classes #656 (dzeleski)
- Remove Puppet 3.8 from unit tests, update minimum Puppet version in metadata #650 (cwjohnston)
- Update version string validation to allow for redhat platform suffix #645 (cwjohnston)
- Bump puppetlabs/apt dependency #643 (aquister)
- Fix some lint issues and test spec warnings #640 (cryptk)
- support for redis as a transport #639 (RiRa12621)
- Updating sensu_gem provider to check for RUBY_PLATFORM #632 (cdenneen)
- Added windows_repo_prefix to allow for internal mirrors #631 (cdenneen)
- Disable user creation on osfamily = windows by default #628 (cdenneen)
- Add handle_flapping option to sensu::handler #627 (johanek)
- Added package_checksum #625 (cdenneen)
- Add fix to resolve rabbitmq cluster heartbeat config failure. #623 (dzeleski)
- Add support to rotate windows logs #621 (dzeleski)
- use gem.cmd instead of gem.bat #616 (andyroyle)
- Support
ensure
property on sensu::enterprise::dashboard::api #613 (cwjohnston) - Select debian/ubuntu release for apt repo #611 (johanek)
- update repository urls yum #610 (goodwolf)
- Drop support for Ruby 1.9 #605 (ghoneycutt)
- set the log-level in the windows client xml config #604 (andyroyle)
- Sort properties in sensu_check provider #603 (ttarczynski)
- Remove sensu check property with absent #602 (ttarczynski)
- sensu-puppet-add heartbeat feature #596 (derkgort)
- Fix for enabling strict_variables #593 (madAndroid)
- sensu_check provider: fix missed value #592 (pjfbashton)
- Add contributing.md #591 (jaxxstorm)
- Update travis #590 (jaxxstorm)
- Initital fix for sensu on windows #588 (dzeleski)
- Use default redact #580 (paramite)
- transorm input with munge in type rather than in sensu_check/json.rb provider #573 (ttarczynski)
- add timeout support for handlers #547 (lobeck)
v2.2.0 (2016-11-27)
Fixed bugs:
Closed issues:
- Update README.md with compatibility #568
- does sensu-puppet work well in updating to 0.26 #561
- $::sensu::purge['config'] causes file path error on Windows agents #558
- Update subdue for 0.26 #553
- Add support for aggregates array #549
- subdue should be optional for sensu check definition #548
- Update Puppet Forge releases #545
- error while installing ruby_dep, Bundler cannot continue #540
- rake: uninitialized constant Syck with ruby 2.3.1 #539
- Add some new maintainers #522
- Using sensu_gem provider before sensu::client is installed? #520
- yum repository #519
- sentinel supports in sensu redis.json #514
- enable support for change in aggregates #512
- Travis builds failing even on no code change #511
- Sensu puppet module causes invalid parameter prefetch on some runs of puppet #507
- Sensu plugin install fails when using URLs #506
- Sensu puppet module causes invalid parameter prefetch on some runs of puppet #504
- Cannot create /etc/sensu/conf.d/redis.json without "password" #503
- Add support for Redis Sentinels Config #499
- Check subdue modified every run #497
- Trailing comma issue in config #492
- Sensu Windows: sensu_rabbitmq_config type needs base_path param passed #489
- Wrong default value of rabbitmq_vhost #473
- Release new version "Tag the repo" #472
- support for new deregistration options #470
- 'gem list --remote' does not respect proxy settings #460
- Question about overriding check command #459
gem --list
hangs - need a way to set a timeout #452- Sensu-client service enable is not idempotent on CentOS 7 #448
- Differentiate between sensu-plugin gem and the sensu-plugins #432
- Changing Handler type fails with 'keys' error #360
- Support for multiple broker connection options with RabbitMQ #269
- Add functionality to configure mutators #230
Merged pull requests:
- Module bump #587 (jaxxstorm)
- Add support for multi-host Rabbitmq config #581 (dhgwilliam)
- fix tests on Ruby 1.8 #579 (ttarczynski)
- pin semantic_puppet gem at \< 0.1.4 on Ruby 1.8 or earlier #576 (cwjohnston)
- Small puppet-lint fix #575 (ttarczynski)
- use constant SENSU_CHECK_PROPERTIES instead of hardcoded check_args in sensu_check provider #572 (ttarczynski)
- Add sensu compatibility info in README.md #571 (ttarczynski)
- [enterprise dashboard] move package resource inside conditional #570 (cwjohnston)
- Add an issue template #567 (jaxxstorm)
- remove subdue property with 'absent' #565 (ttarczynski)
- Tests for subdue 2.0 #564 (ttarczynski)
- Remove subdue from handler #563 (ttarczynski)
- Add support for new aggregates type in 0.26 #554 (jaxxstorm)
- Add ruby 2.2 tests #552 (jaxxstorm)
- Fixes for Windows clients with Enterprise #544 (jacobmw)
- small fixes in docs #543 (ttarczynski)
- Fixing tests #538 (jaxxstorm)
- validate subdue is a hash #536 (fessyfoo)
- Allow undef handlers and subscribers #531 (thejandroman)
- Pin the package provider for RedHat osfamily #530 (thejandroman)
- Pin listen to a working pre-ruby2.2 version #529 (thejandroman)
- Better explain diff between diff sensu-plugin #526 (jaxxstorm)
- Switch default vhost to /sensu #525 (jaxxstorm)
- Add support for stringified aggregates #524 (jaxxstorm)
- Add support for client deregistration #523 (jaxxstorm)
- Fix tests #517 (jaxxstorm)
- small puppet-lint fixes #513 (ttarczynski)
- Small fix in docs #510 (ttarczynski)
- Support redis sentinels and add master property #509 (modax)
- fix issue #497 #498 (bovy89)
- Use 127.0.0.1 instead of localhost for hosts, it could resolve to ::1 #494 (portertech)
- Updated config.pp to add base_path #490 (r0b0tAnthony)
- Install rake \< 11.0.0 for ruby \< 1.9.3 #487 (atrepca)
- add source to remote_file for urls in plugin.pp #486 (chrissav)
v2.1.0 (2016-02-29)
Closed issues:
- Error no parameter named socket in sensu_client_config #474
- Repuppet fails #469
- Could not start service - plugin file permissions #465
- redis.json removed on purge { config => true } #461
- Please put a Github Tag/Release on v2.0.0 commit #455
- should sensu:;plugin support purge for gems ? #450
- Error: Could not convert change 'socket' to string: undefined method `keys' for nil:NilClass #447
- Authentication issue when attempting to install sensu package #444
- Could not autoload puppet/type/sensu_filter: uninitialized constant PuppetX::Sensu::ToType #441
- Add option not to manage handlers dir #430
- manage_plugins_dir doesn't seem to do anything #429
- Please, push new version to forge with updated apt dependencies #413
- What version of puppet are you running? #404
- Client.json integers are saved as double quoted strings on first run #399
Merged pull requests:
- version bump: 2.1.0 #483 (jlambert121)
- add support for configuring sensu-enterprise-dashboard audit logging #482 (cwjohnston)
- add support for configuring sensu-enterprise-dashboard gitlab auth #481 (cwjohnston)
- add support for configuring sensu-enterprise-dashboard ssl listener #480 (cwjohnston)
- Feature prefetch attribute #479 (chrissav)
- Add filters and filter_defaults to init with create_resources, missing puppetdoc #478 (dmsimard)
- Add tests when using checks parameter in init #477 (dmsimard)
- Added parameter sensu::install_repo as the first condition to manage … #475 (mrodm)
- Add support for using the same source for different sensu handlers #471 (salimane)
- add defaults for create_resources() #468 (EslamElHusseiny)
- add create_resources() for mutators the same way for handlers, checks #467 (EslamElHusseiny)
- Redaction support #466 (jaxxstorm)
- support purging with enterprise version #462 (jcochard)
- fix issue #399 #458 (bovy89)
- Fixing regression bug. #457 (zbintliff)
- sensu fails to start as client_port is a string. #456 (sathlan)
- Enterprise dashboard config password #449 (agarstang)
- Updating links in README.md to point to the right branch #446 (jlk)
- Ensure "apt-get update" runs after adding apt source #445 (jlk)
- update client config to use socket hash #443 (gsalisbury)
- Add ruby-dev to be installed whilst provisioning process. #442 (zylad)
- Added subdue attribute to sensu_check type #440 (liamjbennett)
- Adding option to manage the mutators dir #439 (gsalisbury)
- Adding windows support. #438 (liamjbennett)
- update supported puppet versions #437 (jlambert121)
- add ttl to check provider #436 (gsalisbury)
- Add functionality to configure mutators #230 #435 (gsalisbury)
- Update package repository URLs #434 (portertech)
- Adding option to manage the handlers dir #431 (jaxxstorm)
- strict_variables bugfix for redhat ::osfamily #427 (smithtrevor)
- version bump: 2.0.0 #426 (jlambert121)
v2.0.0 (2015-09-24)
Closed issues:
- Setting handlers to undef for a checks does not trigger change in respective json config file. #414
- Pull request #407 breaks the show for me. #412
- Master requires apt module >= 2.0, not 1.8 #411
- How to keep the sensu-plugin gem installed ? #410
- Undefined variable "file_ensure" in sensu::handler #406
- json providers can not "unset" properties #394
- sensu-api not restarted when check definitions change #392
- issue with "Do not use 'handle' and 'handlers' together. Your 'handle' value has been overridden with 'handlers'" #391
- How to make sensu::plugins do an array merge in hiera #387
- plugins directory permissions inconsistent #385
- Invalid package provider 'sensu_gem' #383
- Create resources not doing deep merging in hiera #382
- sensu::checks failing when subscribers are specified #381
- need updates to support subdue and possibly other new config sections #380
- Error trying to apply a filter #375
- Filters throwing failed: 'undefined method `sort' for nil:NilClass' error #374
- getting Notice: Do not use 'handle' and 'handlers' together. Your 'handle' value has been overridden with 'handlers' #371
- Invalid parameter reconnect_on_error #369
- allow merging of hiera configs instead of only taking lowest in hierarchy #366
- Sensu_redis_config changes on every run #357
- Creating checks with hiera #354
- First run on a new client node fails checks which depend on plugins #353
- Client_custom overrides client_port #342
- sensu_gem provider proxy support #339
- sensu::client::config keepalives 'change' every run #336
- operatingsystemmajrelease is lsbmajdistrelease in puppet 3 #330
- Unable to purge handlers, extensions, or mutators #328
- Unable to install sensu without rubygems #322
- windows support #317
- sensu-plugin is "removed" every puppet run #298
Merged pull requests:
- allow setting of path #425 (fessyfoo)
- Add require on apt::update for puppetlabs-apt 2.x #424 (br0ch0n)
- Correcting issue #318 #423 (standaloneSA)
- allow handle and handlers together #422 (jlambert121)
- set sysconfig parameters when defined #421 (jlambert121)
- Make the sensu enterprise dashboard not show up unbidden #419 (hashbrowncipher)
- Move file_ensure out of conditional #418 (hashbrowncipher)
- update apt module dep #416 (jlambert121)
- fix redis_db type def #415 (crpeck)
- Fix Sensu Enterprise services when not using enterprise #409 (Pryz)
- Enable provider for sensu plugins #408 (rhoml)
- Added support to redis db and auto_reconnect parameters #407 (bovy89)
- Set fqdn for sensu client name #402 (mdevreugd)
- Add
purge
parameter to control all purging, deprecate `purge_config… #401 (nhinds) - [WIP] Sensu Enterprise & Enterprise Dashboard support #400 (dhgwilliam)
- add *.swp (vim buffer files) to .gitignore #398 (jhoblitt)
- remove world readable permissions from redis.json #397 (jhoblitt)
- convert sensu_client_subscription Puppet::notice -> Puppet::debug #395 (jhoblitt)
- remove world readable permissions from \<handler>.json #393 (jhoblitt)
- added subdue to sensu_handler type to handle properly subdue option #390 (bovy89)
- fixed 385, add owner group sensu:sensu to plugins dir and plugins files #386 (hurrycaine)
- change default for filters param of sensu::handler (fix #374) #379 (somic)
- Relax the apt module version restriction #378 (johnf)
- fix source param in sensu_check #377 (kam1kaze)
- fix subscribers parameter in sensu_check #376 (kam1kaze)
- fix filters docstring in sensu::handler #370 (somic)
- Added support for JIT clients #368 (rk295)
- update travis, gems, lint #364 (jlambert121)
- update yum repo location #363 (jlambert121)
- ensure plugins installed before client service started #362 (jlambert121)
- Updating APT source to use new apt module version #361 (bleuchtang)
- allow modification of hasrestart attribute for services #359 (somic)
- Filter attributes are a property, not a param #358 (bashtoni)
- Hiera Lookups #352 (bleuchtang)
- fixed spelling error in parameters descriptions #350 (paulpet)
- Fix problem introduced in #346 and simplification of create #349 (cataphract)
- Boolean properties and misc #346 (cataphract)
- Boolean checking/converting on sensu_redis_config #345 (superseb)
- Add install_options for (sensu-)gem provider(s) #344 (bjwschaap)
- Add port to check_args so it doesn't gets cleared by custom property #343 (superseb)
v1.5.5 (2015-04-10)
Closed issues:
- reconnect_on_error: reconnect_on_error changed 'true' to 'true' #338
- Unable to configure client port #335
- New configuration: gem uninstall sensu-plugin is failing in 1.5.0 #318
- Invalid parameter provider on Package[sensu-plugin] #308
- no support for redis_password #305
- The sensu purge_config option now removes rpm deployed plugins #304
- Cannot install gems to develop sensu-puppet #301
- Can't remove JSON keys by (un)setting class parameters #300
- sensu custom json reordered on each run #271
- Support defining extensions #157
Merged pull requests:
- Make client port configurable, issue #335 #341 (superseb)
- Apply same boolean checking/converting on sensu_rabbitmq_config as in sensu_client_config, fixes #338 #340 (superseb)
- adding ability to store rabbitmq cert/keys in hiera/vars instead of just... #337 (dkiser)
- Fix issue with array checking when no array present. #334 (jonathanio)
- Add support for :reconnect_on_error. #333 (jonathanio)
- Fix #318: Introducing custom uninstall in sensu_gem #332 (queeno)
- Allow configuration of the init MAX_TIMEOUT #331 (whpearson)
- Restrict access to the client config file to protect client tokens #329 (jinnko)
- catch blacksmith load issues #327 (jlambert121)
- Fix type typo #326 (bbanzai)
- to_type convert :undef into string #323 (keymone)
- add option to purge plugins directory #321 (yyejun)
- Fix redis noauth #316 (bashtoni)
- remove metadata-json-lint limitation #315 (jlambert121)
- Make sure filters dir exists before creating any #314 (bashtoni)
- Keepalived config not merged since you are specifying the json in the puppet hash variable #313 (victorgp)
- Fix dependency chain when deploy plugins directory #312 (bashtoni)
- typo fixed #311 (confiq)
- ensure erlang is installed for acceptance tests #310 (jlambert121)
- Revert "Add parameter to allow purging plugins, handlers, extensions and... #307 (jlambert121)
- Added Redis password support #306 (jamtur01)
- Sort array properties before comparison #303 (dpeters)
- Add parameter to allow purging plugins, handlers, extensions and mutators #302 (nhinds)
- Plugin version #299 (jlambert121)
v1.5.0 (2015-01-16)
Merged pull requests:
- Added support for loading and configuring extensions. #297 (jonathanio)
v1.4.0 (2015-01-13)
Closed issues:
- lint validation #282
- box file is 404 in Vagrant cloud #281
- Defining checks via hiera #279
- Missing release 1.3.1 from git? #275
- New version of amqp deployed today 1.5.0, breaks client mq connection #266
- Check defined on server (subscription check) results in changes on every run #265
- Invalid parameter ssl_transport on Sensu_rabbitmq_config #263
- Document what prerequisites are required #262
Merged pull requests:
- add ability to specify provider for sensu-plugin package #296 (jlambert121)
- enable travis container environment #295 (jlambert121)
- update gemfile #294 (jlambert121)
- fix for future parser #292 (jlambert121)
- add puppet requirements, dependency bounds, OS support #289 (jlambert121)
- update vagrantfile #288 (jlambert121)
- enhance acceptance tests, update spec tests #287 (jlambert121)
- Revert "Flapjack support for puppet" #286 (jlambert121)
- Fixes for dependencies and subscribers properties in sensu::check. #285 (jonathanio)
- Flapjack support for puppet #284 (poolski)
- lint fixes #283 (jlambert121)
- Made handle and handlers mutually exclusive #280 (jamtur01)
- Adds puppetforge version number #278 (spuder)
- Update sensu_gem provider #277 (adamcrews)
- Vagrant #276 (spuder)
- Add sensu_gem package provider #274 (adamcrews)
- Override path of yum repo if rhel or centos 7. #272 (m7ov)
- Update tests for unsupported OSes #270 (jlambert121)
- fix rabbitmq ssl config #268 (patrick-minted)
- fix filter json #267 (patrick-minted)
- add support for insecure HTTPS in sensu::plugin #264 (dhgwilliam)
v1.3.1 (2014-10-18)
Closed issues:
- Missing dependency #260
- Update README.md to include sensu version compatibility. #258
- Custom keepalive settings result in changes on every run #257
- Could not load downloaded file /var/lib/puppet/lib/puppet/provider/sensu_client_config/json.rb: no such file to load -- rubygems #256
- Add compatibility for Sensu 0.13 #209
- use_embedded_ruby doesn't work on centos #208
- checks: removing type => metric doesn't remove it from the config json #166
- sensu::check is trying to escape double quotes passed in a part of the check command #158
- SSL & rabbitmq config..? #143
Merged pull requests:
v1.3.0 (2014-10-12)
Closed issues:
- Add "What is Sensu" to the README.md #251
Merged pull requests:
- Use the command parameter if it's defined alongside the source parameter #255 (bodgit)
- Add custom variables to subscriptions #225 (bodgit)
v1.2.1 (2014-09-28)
Closed issues:
Merged pull requests:
v1.2.0 (2014-09-23)
Closed issues:
- Use of str2bool for a value that's already a bool #245
- setting install_repo to false breaks module #233
- how to configure logstash handler? #226
- Sensu_client_config and subscriptions are always retriggered at every puppet run, leading to no-checks being run under certain circumstances #216
- Needed apt-get update after adding new apt-key #201
- Plugin directory source doesn't work #197
- Sensu client config notify on no change #187
Merged pull requests:
- Add rabbitmq_ssl parameter to enable SSL transport to RabbitMQ #249 (misterdorm)
- A (better) fix for Issue #197 #248 (zanloy)
- Fix check of $sensu::install_repo #246 (octete)
- Fixissue197 #244 (zanloy)
- Revert "Fixissue197" #242 (jamtur01)
- Fixissue197 #241 (zanloy)
- Fixing dependencies parameter on sensu_check type #240 (Phracks)
- Support for transport pipe configuration #238 (sdklein)
- Add optional pipe property to sensu_handler #237 (yeungda)
- Basic working Beaker spec for Sensu #236 (petems)
- Add warning for dashboard #235 (petems)
- Fix for issue #233: accomodating for install_repo, with specs #234 (bjwschaap)
- Fix client keepalive cycling #232 (johnf)
- Fix filter attributes #229 (johnf)
- Fix handler filter #228 (johnf)
- Add condition if sensu::install_repo is false #227 (wallies)
- Set a GEM_PATH variable in /etc/default/sensu #203 (octete)
v1.1.0 (2014-08-16)
Closed issues:
- Invalid parameter bind on Sensu_api_config #223
- Sensu service needs to start before API service #219
- Passwordless dashboard not idempotent #205
- Dependency cycle when using sensu::handler in the same catalogue as sensu server #186
- Forge package contains 'hidden' OSX files #185
- Allow configuration of "bind" parameter for API and Dashboard #182
- Add support for service management via runit #181
- sensu-api should refresh when a new check is added #180
- $releasever in yum only works on redhat #179
- sensu::check notifies the server even when not running the service #171
- After updating/creating a check, puppet will not refresh sensu-client reliably. #169
- Filter definition requires a client subscription #167
- No way to configure bind for services? #163
- Idempotence problems with sensu_dashboard_config #162
- Feature: Add support for check dependencies #161
- Subscriptions don't have a require on the sensu package #159
- crashing check.pp and api/config.pp #154
- You've released v1.0.0 of your module but not tagged the SHA1 #150
- Intermittent catalog error #148
- Service['sensu-client'] doesn't get refreshed when checks are purged #145
- Standalone checks are default true? #144
- handler hash ordering causing unneeded changes #133
Merged pull requests:
- Fix conf base path #224 (johnf)
- Added the transport option as a supported handler type for Sensu 0.13 #222 (solarkennedy)
- Deprecate dashboard #221 (johnf)
- Apt key and Repo dependency #220 (johnf)
- fixes one final bug from #200 / #217 #218 (misterdorm)
- several fixes for things that were botched on #200 #217 (misterdorm)
- Remove default username for sensu #214 (rhoml)
- Remove unused $notify in check.pp #212 (max-koehler)
- Make the rabbitmq_vhost defaults match the docs #211 (bodgit)
- sensu-plugin: Allow one to install the gem #210 (Spredzy)
- plugin: Allow to retrieve plugin from URL #207 (Spredzy)
- adding occurrences and refresh parameters to sensu_check type and sensu:... #200 (misterdorm)
- Parameters for apt GPG key ID and GPG key source #199 (yasn77)
- Add Bind Options for Client, Dashboard, and API #198 (samoht9)
- Merge #195 #196 (jlambert121)
- rename .gemfile to Gemfile #194 (jlambert121)
- restart client,server,api based on what the machine has provisioned #193 (jlambert121)
- remove duplicate require #192 (jlambert121)
- add dependencies to sensu::check #191 (jlambert121)
- notify client and/or server if enabled #190 (jlambert121)
- add puppet 3.5, 3.6 testing #189 (jlambert121)
- Documentation bug fix #188 (ves)
- Change default vhost to not include a slash and other readme fixes #184 (matjohn2)
- Use
lookupvar
to find variables insensu::
namespace #183 (hryk) - Fix warnings from ruby like this: #178 (bobtfish)
- updated native types and providers to use base_path/config when puppet i... #176 (logicminds)
- Use $url param to build apt-key url #175 (patdowney)
- Changed repo check from operatingsystem to osfamily #173 (george-b)
- Fix sensu dashboard config type conversion to always be a string #170 (solarkennedy)
- Machines which don't have internet access can't pull the repo key #165 (bobtfish)
- Add hasrestart & hasstatus to service management. #164 (rhoml)
- fix updating handler socket => host value #160 (danshultz)
- Converted timeout to numeric #156 (zdenekjanda)
- Fixed incorrect documentation in check configuration #152 (jbehrends)
- make booleans booleans and fix filters #151 (crewton)
- fix default dashboard port in type #149 (jlambert121)
- remove default parameter from readme #146 (jlambert121)
v1.0.0 (2014-01-31)
Closed issues:
- Use str2bool() from stdlib #124
- Adding/removing a standalone check to a node does not cause the sensu-client service to reload #123
- Config json files are empty (only if I run puppet from server) #118
- Invalid parameter socket on sensu::handler definition #116
- Unable to specify occurences for a check #115
- Invalid symlink #101
- Ability to define filters #88
- Invalid parameter safe_mode #79
- Default all checks in module to standalone #62
- SSL Certificate warnings #10
Merged pull requests:
- update rabbitmq default port #147 (jlambert121)
- Support for timeout,aggregate,handle and publish parameters to sensu_check #142 (zdenekjanda)
- Minor docs fixes and increment Modulefile #140 (jamtur01)
- add documentation for dashboard and api parameters #139 (jlambert121)
- types and provider parent load paths fixed #138 (jlambert121)
- increase parent path #137 (jlambert121)
- Fix puppet lib loading issues #136 (zdenekjanda)
- Exclude brackets from the name as this makes sensu barf #135 (bobtfish)
- Allow sensu user to be created by other means #134 (wleese)
- documents sensu handler config how to #132 (jaimegago)
- remove str2bool, add repo_source #130 (jlambert121)
- fix trailing comma for 1.8.7 #129 (jlambert121)
- make travis happy with ruby 1.8.7 #128 (jlambert121)
- add filters #127 (jlambert121)
- module rewrite #126 (jlambert121)
- Add support to set loglevel #125 (wleese)
- Exclude brackets from check names as this makes sensu barf #122 (bobtfish)
- Make integers come out in JSON as integers. #121 (bobtfish)
- Added API parameters for user and password #119 (solarkennedy)
- add puppet 3.4, remove puppet 3.0 testing #117 (jlambert121)
- update puppet versions, add ruby 2.0, remove ruby-head #111 (jlambert121)
- fix rerun of socket port #110 (antonlindstrom)
v0.7.6 (2013-12-01)
Closed issues:
- Add parameter to enable/disable notifies on config change #112
- Sensu API fails if there is no
/etc/sensu/config.json
#105 - Handler for udp type not created correctly #102
Merged pull requests:
- Added sensu::manage_services to optionally disable internal service management. #113 (vmadman)
- Allow setting RUBYOPT #109 (doismellburning)
- if udp handler socket defined -> to_i #108 (jlambert121)
- set version on dependencies in Modulefile #107 (antonlindstrom)
- Several fixes #106 (LarsFronius)
- fix for issue 102 #104 (jlambert121)
- Construct correct yum repo URL with facts #103 (nodoubleg)
- Fixed RedHat support. We are running Red Hat Enterprise Linux Server rel... #100 (twissmueller)
- convert custom params to appropriate types #99 (j-russell)
- conf.d should be a directory not a file #96 (stephenrjohnson)
- proper scoping for template var #95 (jlambert121)
- updated purge_configs and file perms #94 (jlambert121)
- Purge /etc/sensu/conf.d/{checks,handlers} as well #93 (philandstuff)
- Documentation fix: refresh values #91 (bashtoni)
- allow you to disable dashboard authentication #82 (chaoranxie)
v0.7.5 (2013-06-20)
Closed issues:
- Disable dashboard user/password #81
- client key/values? #80
- Getting class sensu::repo working with amazon linux #70
- Ability to add additional client / check configuration in Check type. #61
- Question about how to use the sensu::check #59
- http://forge.puppetlabs.com/sensu/sensu.json #50
Merged pull requests:
- Add custom client attributes #90 (fpletz)
- Don't skips tests for service_server and service_client #89 (pburkholder)
- default check standalone value is true #86 (jlambert121)
- Check arg #85 (bogue1979)
- Prevent re-running sensu::check every puppet run #84 (sdklein)
- Prevent executing sensu::check resource every puppet run #78 (j-russell)
- Remove deprecation warning #77 (jlambert121)
- Expose the occurrences check parameter #76 (bashtoni)
- ensure safe_mode param is a boolean #74 (jlambert121)
- Containment #73 (jlambert121)
- Notifu notification #72 (bogue1979)
- Add safe_mode for checks #71 (bashtoni)
- Added template support for /etc/default/sensu #69 (sdklein)
- Fixed minor error in README.md #68 (max-koehler)
- Change yumrepo attribute 'name' to 'descr' to suppress yum warning #67 (j-russell)
- update pending checks to validate errors #66 (jlambert121)
- Integers in checks #65 (jlambert121)
- Handler config #64 (jlambert121)
- Sensu check modifications. #63 (phobos182)
- Realname #60 (jamtur01)
- Add a notify between server and client when both are running #57 (garethr)
- allow installing plugins via package, dir sync, or file #56 (jlambert121)
- Made some minor docs updates #55 (jamtur01)
- Readme update #54 (jlambert121)
- Add dependency on the package to the plugin and handler directories #52 (garethr)
- add default handler in readme example #51 (antonlindstrom)
v0.5.0 (2013-03-16)
Closed issues:
- check config standalone boolean #34
- Error: Must pass rabbitmq_password to Class[Sensu] #31
- Add support for standalone checks #28
- issue with running the sensu module, Invalid resource type sensu at /root/p_sensu/site.pp:4 on node #25
- Puppet 3.1.0 shows warning due to Puppet.features.rubygems? require in json.rb #23
Merged pull requests:
- update example configuration in README #49 (antonlindstrom)
- fix capitalization of resource references #48 (antonlindstrom)
- ensure type is set first puppet run #47 (jlambert121)
- output boolean type for standalone and aggregate #46 (jlambert121)
- fix for setting handler parameters first run #45 (jlambert121)
- property naming fix #44 (jlambert121)
- Add optional arguments to sensu_check provider. Set sane defaults. #43 (phobos182)
- fix subscription recompilation every run #42 (jlambert121)
- add flag to allow sensu to purge unmanaged config files #41 (jlambert121)
- Update checks #40 (jlambert121)
- add exchanges, mutators, handler cleanup #39 (jlambert121)
- Add standalone / aggregate to the sensu_check define. #38 (phobos182)
- Add a boolean flag in checks for Aggregates. #37 (phobos182)
- prevent sensu_client_subscription from rebuilding every run #36 (jlambert121)
- Sensu handler severities is an array type. #35 (phobos182)
- Fixed a bunch of typos, incorrect variable names and linting errors #33 (jamtur01)
- Handler install #32 (jlambert121)
- Handler type updates #30 (jlambert121)
- Added standalone property #29 (jamtur01)
- install plugins #27 (jlambert121)
- fix spec name #26 (jlambert121)
- Misc. linting fixes #24 (jamtur01)
- cleaned up rabbitmq spec tests #22 (jlambert121)
- Sensu check update #21 (jlambert121)
- Sensu subscription #20 (jlambert121)
- move each service config to conf.d - no munging config.json #19 (jlambert121)
- Enhance package options #18 (jlambert121)
- Class redesign #17 (jlambert121)
- repo parameter for yum wasn't used #16 (jlambert121)
- rename defines that should be classes #15 (jlambert121)
- Lint cleanup #14 (jlambert121)
- initial spec tests #13 (jlambert121)
v0.0.1 (2013-02-12)
Closed issues:
- Exported resources are no longer needed #5
- Could not evaluate: No ability to determine if sensu_clean_config exists #1
Merged pull requests:
- Added Modulefile #12 (jamtur01)
- Update README.md #11 (KrisBuytaert)
- Update manifests/rabbitmq.pp #8 (tsabirgaliev)
- repo -> package ordering #7 (tsabirgaliev)
- SImple fix for older versions of ruby #4 (chrisleavoy)
- [init] sensu init scripts support restart #3 (portertech)
- Getting my feet wet with sensu-puppet #2 (shaftoe)
* This Change Log was automatically generated by github_changelog_generator
Dependencies
- lwf/remote_file (>= 1.0.0 <2.0.0)
- puppetlabs/apt (>= 4.0.0 < 5.0.0)
- puppetlabs/stdlib (>=4.16.0 <5.0.0)
Copyright (c) 2013 James Turnbull, Jeremy Carroll, Justin Lambert, Tim Sharpe Copyright (C) 2017 Garrett Honeycutt <code@garretthoneycutt.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.