Skip to content

Latest commit

 

History

History
118 lines (86 loc) · 3.14 KB

README.rst

File metadata and controls

118 lines (86 loc) · 3.14 KB

supervision.website

Goals :

  • Monitor HTTP and HTTPS URL, checking for valid HTTP status returned.
  • Compute state for each URL : OK (up), SLOW (slow response), KO (down).
  • Send email (text and HTML report) on state change (OK/SLOW -> KO, KO -> OK/SLOW) or if the website remains slow.
  • Use simple text files for data storage, no database necessary.

Configuration available :

  • URL list to monitor.
  • Request timeout.
  • Slow latency threshold.
  • Valid HTTP status list (global and per URL).
  • SMTP settings (subject, from, to, server).
  • Terms of sending emails : never, always, only on state change.
  • bash
  • wget
  • a working SMTP server

Download supervision.website and use virtualenv to test the module :

sudo apt-get install python-virtualenv
cd supervision.website
chmod +x install.sh
./install.sh

source bin/activate
(supervision.website) python
>>> import supervision.website

Create an edit the configuration file :

(supervision.website) cd src/supervision/website/
(supervision.website) cp config.py.sample config.py
(supervision.website) vi config.py

Create a file <where-you-want>/supervision_website_cron.sh with the following content (don't forget to adapt <egg-directory>). With this script, you can edit your configuration in config.py at any time, the check_hosts.sh script will be generated at each cron call.

#!/bin/bash
cd <egg-directory>
source bin/activate
cd src/supervision/website/utils
python generate_check_host_sh_script.py
chmod +x check_hosts.sh
./check_hosts.sh
python generate_reports.py

Change permissions settings for the cron bash script :

chmod +x <where-you-want>/supervision_website_cron.sh

Edit your personal crontab :

crontab -e

And and adapt the following lines :

# Launch supervision.website script every 10 minutes
*/10 * * * * <where-you-want>/supervision_website_cron.sh >> /tmp/supervision.website.cron.log

Launch tests with nose <https://nose.readthedocs.org/en/latest/>`_ :

(supervision.website) nosetests

Launch code coverage:

(supervision.website) nosetests --with-coverage --cover-inclusive --cover-html --cover-html-dir htmlcov
And open with a browser htmlcov/index.html

Source code is hosted on Github.

Source code and an issue tracker is hosted on Github.