A tiny, nimble & hackable system monitoring framework
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin add service to setup database with credentials for production env Feb 9, 2018
lib add exponential retries initially connecting to the database Feb 3, 2018
spec fix bug with jobs not triggering the first time immediately after cre… Nov 26, 2017
tmp/pids switching to puma server Aug 29, 2014
.env.examples preferred approach - name AWS env in the format <service>_AWS_ACCESS_… Jan 27, 2018
.travis.yml update travis new test suite - add zeromq lib Nov 22, 2017
Changelog.rdoc update sinatra,ffi to fix vulnerbility Oct 6, 2018
Dockerfile allow connection to the database to be retriable Nov 22, 2017
Gemfile update sinatra,ffi to fix vulnerbility Oct 6, 2018
Gemfile.lock update sinatra,ffi to fix vulnerbility Oct 6, 2018
LICENSE ;updates the following: Nov 24, 2017
Procfile improvements with config & refactor Nov 22, 2017
README.md update readme with links to services and dev Dec 31, 2017
Rakefile ;updates the following: Nov 24, 2017
VERSION update sinatra,ffi to fix vulnerbility Oct 6, 2018
config.ru add options for daemonize, do not keep pidfiles, write pidfile to tmp… Nov 22, 2017
docker-compose-test-local.yml use couchDB 1.7.1 for test compose Feb 10, 2018
docker-compose.dev.yml add service to setup database with credentials for production env Feb 9, 2018
docker-compose.yml use couchDB 1.7.1 for test compose Feb 10, 2018
server.rb ragios default log level is set to false - rack server for webservice… Nov 26, 2017
test.env add ragios & couchdb configuration settings -update changelog & readme Dec 31, 2017

README.md

Ragios (Saint Ruby)

Build Status

Ragios can be used to monitor any type of system including websites, servers, system services and web applications.

Sample usage to monitor a website for uptime in Ruby code:

monitor = {
  monitor: "My Website",
  url: "http://mysite.com",
  every: "5m",
  contact: "admin@mail.com",
  via: "email_notifier",
  plugin: "uptime_monitor"
}

ragios.create(monitor)

The above example creates a monitor that monitor uses an uptime_monitor plugin to monitor the website http://mysite.com for uptime. This monitor runs tests on the website every 5 minutes, if it detects the website is down, it sends an alert email to admin@mail.com via an email notifier.

Features:

A small and minimal extensible design:

  • Users can add, update, start, stop, restart and delete monitors that can monitor anything in simple Ruby code. See details

  • Includes a REST API, a web admin dashboard (Web UI) and a Ruby client rubygem that makes it easy to interact with Ragios directly with ruby code.

  • Ragios is re-designed & re-written to be modular, memory efficient, distributed, and scalable.

  • Ragios runs as a set of tiny distributed microservices, communicating with each other via ZeroMQ, and packaged with docker-compose.

  • Only dependency required to run Ragios is docker-compose.

  • Plugins

    • Ragios relies on plugins to perform tests on different types of systems. The plugins are plain old ruby objects, any test/check that could be performed in ruby code could be performed by Ragios. Developers can create plugins to meet their specific needs.
    • Ragios ships with a built-in url_monitor plugin for monitoring http(s) endpoints for uptime, developers can implement other types of plugins.
  • Notifications & Notifiers

    • Notifications are sent out when a test fails and when the test passes again.
    • Notification messages are generated from ERB templates which developers can easily customize.
    • Multiple email addresses could be added to a monitor, so it notfies all email addresses when a test fails or recovers from failure.
    • Ragios relies on Notifiers to send out notifications. The notifiers are pluggable plain old ruby objects. Any type of notification that could be implemented in Ruby code can be sent by Ragios, notifications by email, SMS, Slack etc. Developers can create notifiers to meet their specific needs.
    • Ragios ships with a built-in Amazon SES notifier that sends notifications via Amazon SES, developers can implement other types of notifiers.
    • Multiple notifiers could be added to one monitor, so when a test fails or recovers from failure, it ssends out notifications via all the notifiers. For example a monitor could be setup to send notifications via email, SMS, Slack and twitter simultaneously.

I'm doing this just for fun and educational purposes.

Documentation:

License:

MIT License.

Copyright (c) 2018 Obi Akubue, obi-akubue.org