0.0
No release in over 3 years
Low commit activity in last 3 years
Post monit status messages to Slack.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.16
~> 10.0
~> 3.0

Runtime

 Project Readme

Monit2slack

Send messages to Slack via Monit.

Installation

Add this line to your application's Gemfile:

gem 'monit2slack'

And then execute:

$ bundle

Or install it yourself as:

$ gem install monit2slack

Usage

This gem provides a binary monit2slack.

monit2slack --webhook 'https://hooks.slack.com/services/xxx/xxx/xxx' --host MyServer --service NginX --status error --text 'Process NginX is down'

If using rbenv

/usr/local/rbenv/shims/monit2slack --webhook 'https://hooks.slack.com/services/xxx/xxx/xxx' --host MyServer --service NginX --status error --text 'Process NginX is down'

If you prefer you can call if manually from a rb file.

#!/usr/bin/env ruby

require "monit2slack"

Monit2Slack::Post

Monit configuration examples

Process monitoring

Implicit configuration

In this case hostname, service and description gets read from the environment variables that monit provides.

check process NginX
  with pidfile /run/nginx.pid
  start program = "/etc/init.d/nginx start" with timeout 30 seconds
  stop program = "/etc/init.d/nginx stop" with timeout 30 seconds
  if does not exist for 1 cycle
    then exec "/usr/local/rbenv/shims/monit2slack --webhook 'https://hooks.slack.com/services/xxx/xxx/xxx' --status error'"
    else if succeeded for 1 cycle then exec "/usr/local/rbenv/shims/monit2slack --webhook 'https://hooks.slack.com/services/xxx/xxx/xxx' --status ok"
  if does not exist then restart

Explicit configuration

You control settings like hostname, service and description.

check process NginX
  with pidfile /run/nginx.pid
  start program = "/etc/init.d/nginx start" with timeout 30 seconds
  stop program = "/etc/init.d/nginx stop" with timeout 30 seconds
  if does not exist for 1 cycle
    then exec "/usr/local/rbenv/shims/monit2slack --webhook 'https://hooks.slack.com/services/xxx/xxx/xxx' --host MyServer --service NginX --status error --text 'Process NginX is down'"
    else if succeeded for 1 cycle then exec "monit2slack --webhook 'https://hooks.slack.com/services/xxx/xxx/xxx' --host MyServer --service NginX --status ok --text 'Process NginX is up'"
  if does not exist then restart

Disk usage monitoring

check filesystem rootfs with path /
if space usage > 80%
then exec "/usr/local/rbenv/shims/monit2slack --webhook 'https://hooks.slack.com/services/xx/xx/xx' --status error"
else if succeeded then exec "/usr/local/rbenv/shims/monit2slack --webhook 'https://hooks.slack.com/services/xx/xx/xx' --status ok"

License

The gem is available as open source under the terms of the MIT License.