Sensu-Plugins-slack
Functionality
Files
- bin/handler-slack.rb
- bin/handler-slack-multichannel.rb
Usage for handler-slack.rb
{
"slack": {
"webhook_url": "webhook url",
"dashboard": "uchiwa url, add link to slack notification. Format: http://sensu.com/#/client/$DataCenter/, optional",
"channel": "#notifications-room, optional defaults to slack defined",
"message_prefix": "optional prefix - can be used for mentions",
"surround": "optional - can be used for bold(*), italics(_), code(`) and preformatted(```)",
"bot_name": "optional bot name, defaults to slack defined",
"link_names": "optional - find and link channel names and usernames",
"message_template": "optional description erb template file - /some/path/to/template.erb",
"payload_template": "optional json payload template file (note: overrides most other template options.)",
"template": "backwards-compatible alias for message_template",
"proxy_address": "The HTTP proxy address (example: proxy.example.com)",
"proxy_port": "The HTTP proxy port (if there is a proxy)",
"proxy_username": "The HTTP proxy username (if there is a proxy)",
"proxy_password": "The HTTP proxy user password (if there is a proxy)",
"icon_url": "https://raw.githubusercontent.com/sensu/sensu-logo/master/sensu1_flat%20white%20bg_png.png",
"icon_emoji": ":snowman:",
"fields": [
"list",
"of",
"optional",
"clientkeys",
"to_render"
]
}
}
Usage for handler-slack-multichannel.rb
{
"slack": {
"webhook_urls": {
"no-team-alerts": "https://hooks.slack.com/services/AAAAAAA",
"all-alerts": "https://hooks.slack.com/services/BBBBBB"
},
"channels": {
"default": [ "no-team-alerts" ],
"compulsory": [ "all-alerts" ]
}
"message_prefix": "optional prefix - can be used for mentions",
"surround": "optional - can be used for bold(*), italics(_), code(`) and preformatted(```)",
"bot_name": "optional bot name, defaults to slack defined",
"link_names": "optional - find and link channel names and usernames",
"message_template": "optional description erb template file - /some/path/to/template.erb",
"payload_template": "optional json payload template file (note: overrides most other template options.)",
"template": "backwards-compatible alias for message_template",
"proxy_address": "The HTTP proxy address (example: proxy.example.com)",
"proxy_port": "The HTTP proxy port (if there is a proxy)",
"proxy_username": "The HTTP proxy username (if there is a proxy)",
"proxy_password": "The HTTP proxy user password (if there is a proxy)",
"icon_url": "https://raw.githubusercontent.com/sensu/sensu-logo/master/sensu1_flat%20white%20bg_png.png",
"icon_emoji": ":snowman:",
"custom_field": [
"list",
"of",
"optional",
"check_fields",
"to_render"
]
}
}
Installation
Notes
payload_template example
{
"username": "sensu alarms",
"icon_emoji": ":bell:",
"channel": channel,
"attachments": [
{
"fallback": "<%= @event["check"]["output"].gsub('"', '\\"') %>",
"color": "<%= color %>",
"title": "<%= @event["check"]["name"] %> (<%= @event["client"]["name"] %>)",
"text": "<%= @event["check"]["output"].gsub('"', '\\"') %>"
}
]
}
You can also use to_json
<%=
{
:text => "Some text"
}.to_json
-%>
See https://api.slack.com/incoming-webhooks and https://api.slack.com/docs/attachments