No release in over 3 years
Low commit activity in last 3 years
There's a lot of open issues
Provides mail output for Sensu
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.7
~> 0.10
~> 12.3
~> 3.2
~> 3.4
~> 0.40.0
~> 0.8

Runtime

= 0.6.0
= 2.7.0
= 2.6.3
= 0.0.3
 Project Readme

Sensu-Plugins-mailer

Build Status Gem Version Code Climate Test Coverage Dependency Status

Functionality

Files

  • bin/handler-mailer-mailgun.rb
  • bin/handler-mailer-ses.rb
  • bin/handler-mailer.rb

Usage

The following three configuration variables must be set if you want mailer to use remote SMTP settings:

smtp_address - defaults to "localhost"
smtp_port - defaults to "25"
smtp_domain - defaults to "localhost.localdomain"

There is an optional subscriptions hash which can be added to your mailer.json file. This subscriptions hash allows you to define individual mail_to addresses for a given subscription. When the mailer handler runs it will check the clients subscriptions and build a mail_to string with the default mailer.mail_to address as well as any subscriptions the client subscribes to where a mail_to address is found. There can be N number of hashes inside of subscriptions but the key for a given hash inside of subscriptions must match a subscription name.

Optionally, you can specify your own ERB template file to use for the message body. The order of precedence for templates is: command-line argument (-t), client config called "template", the mailer handler config, default.

Optionally, you can specify your own ERB template file to use for the message subject. The order of precedence for templates is: command-line argument (-T), client config called "subject_template", the mailer handler config, default.

{
  "mailer": {
    "mail_from": "sensu@example.com",
    "mail_to": "monitor@example.com",
    "smtp_address": "smtp.example.org",
    "smtp_port": "25",
    "smtp_domain": "example.org",
    "template": "/optional/path/to/template.erb",
    "subject_template": "/optional/path/to/subject_template.erb",
    "subscriptions": {
      "subscription_name": {
        "mail_to": "teamemail@example.com"
      }
    }
  }
}

handler-mailer-mailgun

{
  "mailer-mailgun": {
    "mail_from": "sensu@example.com",
    "mail_to": "bob@example.com",
    "mg_apikey": "mailgunapikeygoeshere",
    "mg_domain": "mailgun.domain.com"
  }
}

handler-mailer-ses

{
  "mailer-ses": {
    "mail_from": "sensu@example.com",
    "mail_to": "monitor@example.com",
    "aws_access_key": "myawsaccesskey",
    "aws_secret_key": "myawssecretkey",
    "aws_ses_endpoint": "email.us-east-1.amazonaws.com"
  }
}

handler-mailer

{
  "mailer": {
    "admin_gui": "http://admin.example.com:8080/",
    "mail_from": "sensu@example.com",
    "mail_to": "monitor@example.com",
    "smtp_address": "smtp.example.org",
    "smtp_port": "25",
    "smtp_domain": "example.org"
  }
}

By default, the handler will use plain as the SMTP authentication type, but you may also specify "smtp_authentication": "ntlm" for compatible servers, e.g. Microsoft Exchange.

Contact Based Routing

Optionally, this handler can use the same syntax as Sensu Enterprise contact routing for sending e-mails for particular checks or clients, in addition to the previous configuration. This is configured by declaring contacts:

support.json

{
  "contacts": {
    "support": {
      "email": {
        "to": "support@sensuapp.com"
      }
    }
  }
} 

Then, in a check definition, you can specify a contact or an array of contacts which should be notified by e-mail:

example_check.json

{
  "checks": {
    "example_check": {
      "command": "do_something.rb",
      "handler": "mailer",
      "contact": "support"
    }
  }
}

Additionally, a client definition can specify a contact or an array of contacts to be notified of any check which alerts to the mailer handler. This is configured by specifying a contact value, or contacts array in the client.json configuration.

Installation

Installation and Setup

Create a handler file in /etc/sensu/conf.d with the following content, replacing with your own configuration:

{
    "mailer" :  {
        "admin_gui" : "http://localhost:3000",
        "mail_from": "from@email.com",
        "mail_to": "to@email.com",
        "delivery_method": "smtp",
        "smtp_address": "localhost",
        "smtp_port": "25",
        "smtp_domain": "localhost.local_domain",
        "smtp_enable_starttls_auto": "true",
        "smtp_username" : "username",
        "smtp_password" : "XXXXXXXX"
    },
    "handlers": {
        "mailer": {
            "type": "pipe",
            "command": "/opt/sensu/embedded/bin/handler-mailer.rb"
        }
    }
}

Notes