Sauna
=====

Sauna is a small daemon designed to run health checks and send the results to a
monitoring server. It is able to report to Nagios and Shinken out of the box.

It is made to be resource efficient (it avoids forking at all costs), simple
to install and low maintenance.

Installation
------------

Sauna is not yet pushed to PyPI, you currently have to install it manually.
Clone the repository and install it in a virtualenv with pip::

   pip install .

Usage
-----

Using Sauna you will manipulate two entities: plugins and consumers.

Plugins are optional modules that provide a set of checks. There is for
instance the Load plugin which provides checks about load average or the Redis
plugin which monitors the status of a Redis database. You only opt-in for the
plugins that make sense for your setup.

Consumers on the other hand provide a way to send the results of checks
generated by plugins to your monitoring server. There is the NSCA consumer that
sends data to a Nagios compatible server or the HTTP consumer to send the check
results to an API like livestatus.

Start by generating a sample configuration file ``sauna-sample.yml``::

   sauna sample

Edit the sample configuration to fit your system, pick the plugins that you
want and choose a consumer. When you are done move the file as ``sauna.yml``.

Start sauna::

   sauna

You can easily run it as a daemon using systemd or supervisor.

Contributing
------------

Sauna is written in Python 3. Adding a check plugin or a consumer should be
straightforward. Clone the repository and install it in development mode in a
virtualenv::

   pip install -e .

The code base follows pep8, test the code for compliance with::

   pep8 sauna test

Run the test suite::

   nosetests

License
-------

MIT
