License
MIT License
The Sensu Go Email Handler is a Sensu Event Handler for sending
incident notification emails.
Download the latest version of the sensu-email-handler from releases,
or create an executable script from this source.
From the local path of the sensu-email-handler repository:
go build -o /usr/local/bin/sensu-email-handler main.go
Example Sensu Go definition:
{
"api_version": "core/v2",
"type": "Handler",
"metadata": {
"namespace": "default",
"name": "email"
},
"spec": {
"type": "pipe",
"command": "sensu-email-handler -f from@example.com -t to@example.com -s smtp.example.com -u user -p password",
"timeout": 10,
"filters": [
"is_incident",
"not_silenced"
]
}
}
The Sensu Go Email handler for sending an email notification
Usage:
sensu-email-handler [flags]
Flags:
-T, --bodyTemplateFile string A template file to use for the body
-t, --toEmail string The 'to' email address
-f, --fromEmail string The 'from' email address
-h, --help help for sensu-email-handler
-s, --smtpHost string The SMTP host to use to send to send email
-p, --smtpPassword string The SMTP password, if not in env SMTP_PASSWORD
-P, --smtpPort uint16 The SMTP server port (default 587)
-u, --smtpUsername string The SMTP username, if not in env SMTP_USERNAME
-H, --hookout Include output from check hook(s)
-i, --insecure Use an insecure connection (unauthenticated on port 25)
-l, --enableLoginAuth Use "login auth" mechanism
-S, --subjectTemplate string A template to use for the subject (default "Sensu Alert - {{.Entity.Name}}/{{.Check.Name}}: {{.Check.State}}")
All of the above command line arguments can be overridden by check or entity annotations.
The annotation consists of the key formed by appending the "long" argument specification
to the string sensu.io/plugins/email/config (e.g. sensu.io/plugins/email/config/toEmail).
For example, having the following in an agent.yml file will create an entity annotation
such that emails generated by events on this entity will go to ops@example.com
instead
of the recipient defined in the handler. And the subject would be something to the effect
of 'failing - webserver01/check-nginx'.
namespace: "default"
subscriptions:
- linux
backend-url:
- "ws://127.0.0.1:8081"
annotations:
sensu.io/plugins/email/config/toEmail: "ops@example.com"
sensu.io/plugins/email/config/subjectTemplate: "{{.Check.State}} - {{.Entity.Name}}/{{.Check.Name}}",
Note: When using template expansion for annotations in checks, the token delimiters {{
and }}
have to be escaped with {{`
and `}}
, respectively. Yes, this is ugly, but it is because checks are ran through token expansion before being ran. This is not needed for annotations in entities.
Example:
"sensu.io/plugins/email/config/subjectTemplate": "{{`{{ .Check.State }}`}} - {{`{{ .Entity.Name }}`}}/{{`{{ .Check.Name }}`}}",
See https://github.com/sensu/sensu-go/blob/master/CONTRIBUTING.md
Please describe the reason for reporting this asset. Our moderators will be notified and will disable the asset if it is found to be inappropriate.
×