No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Sensu plugins for interfacing with Slack chat
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
~> 10.0
~> 3.2
~> 3.1
~> 0.40.0
~> 0.8

Runtime

= 2.7.0
 Project Readme

Sensu-Plugins-slack

Build Status Gem Version Code Climate Test Coverage Dependency Status Community 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

Installation and Setup

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