A Django application for remotely monitoring servers using SSH
JavaScript CSS Python
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
skwissh Compatibility with Django 1.5 Jun 21, 2013
testproject Added jenkins support for home continuous integration. Jan 19, 2013
.gitignore
.travis.yml
CHANGELOG
LICENSE
MANIFEST.in No more AUTHORS file Aug 26, 2012
README.rst
setup.py Added jenkins support for home continuous integration. Jan 19, 2013

README.rst

http://rsaikali.github.com/django-skwissh/images/skwissh/skwissh-logo.png

More info : Github Pages for Skwissh

Python Package Index : django-skwissh

Travis : Last build status

https://secure.travis-ci.org/rsaikali/django-skwissh.png?branch=master

New Android application : Find Android Skwissh on Google Play

http://www.android.com/images/brand/android_app_on_play_logo_large.png

Introduction

A Django application for remotely monitoring servers using SSH.

In background (crontabed jobs) Skwissh uses Python Fabric to execute SSH commands, aka. "sensors", get the output and store timestamped values. Measures are taken every minute.

On the other side, Skwissh is able to display nice charts (linechart, piechart or simple text) with aggregated measures.

Default sensors available (tested on Ubuntu 12.04) :

  • Memory
  • CPU
  • WaitIO
  • Load Averages
  • Disk usage
  • Top

But you can easily add your own ones !!

Follow @skwissh on Twitter to see latest updates.

Installation

Skwissh can be installed from Pypi:

pip install django-skwissh

Configure your Django project in a normal way (database, etc...).

Add skwissh and kronos to your Django INSTALLED_APPS:

INSTALLED_APPS = (
    ...
    'kronos',
    'skwissh',
)

Add Skwissh to your urls.py:

# Skwissh
url(r'^skwissh/', include('skwissh.urls')),

Synchronize your database (this command will load defaut sensors through fixtures):

./manage.py syncdb

Install Skwissh tasks (will write to your user crontab, thanks to 'django-kronos'):

./manage.py installtasks

You can check that 4 crontab job have been configured:

crontab -l

If you want to activate i18n (French & English currently supported), follow the next steps:

In your project settings.py, add the Django LocaleMiddleware and set the LANGUAGES variable:

MIDDLEWARE_CLASSES = (
   ...
   'django.middleware.locale.LocaleMiddleware',
   ...
)

LANGUAGES = (
   ('fr', 'Français'),
   ('en', 'English'),
)

You're ready to go ! Connect to the application and start configure your servers and sensors !

Screenshots

Load averages

http://rsaikali.github.com/django-skwissh/images/skwissh/loads-screenshot.png

Disk usage

http://rsaikali.github.com/django-skwissh/images/skwissh/diskusage-screenshot.png

Top output

http://rsaikali.github.com/django-skwissh/images/skwissh/top-screenshot.png

Server edition

http://rsaikali.github.com/django-skwissh/images/skwissh/editserver-screenshot.png

Sensor edition

http://rsaikali.github.com/django-skwissh/images/skwissh/editsensor-screenshot.png

Credits