SiteUp is an open source web platform for monitoring Internet services built using Django. It's not currently online but you can set it up yourself if you feel like it! That's the power of OSS right there.
SiteUp lets you
- Check if remote servers are alive using ICMP packets (ping).
- Monitor the status of your websites using HTTP requests. SiteUp can check both the status code and the content of your websites.
- Review the contents of the DNS records of your domain. Supported types of records include A, AAAA, CNAME, MX and TXT.
- Check services in remote ports using TCP connections. SiteUp is able to check whether those ports are open and the content of the received response (if any).
SiteUp can trigger those checks to a frequency of up to 1 minute, and send notifications whenever their status change. Notifications can be sent via e-mail, or using push notifications through the SiteUp Client, an open source Android app built along the web platform and also present in this repository.
SiteUp uses Celery and RabbitMQ to handle the periodic tasks that trigger the checks. It also uses Google Cloud Messaging to handle the push notifications to the SiteUp Android client. It also uses, like, a lot of additional packages and libraries to ease the development and avoid reinventing the wheel, like South, requests and django-braces. Among the debugging utilities that have been used are the django debug toolbar and django extensions.
On the front-end, SiteUp uses Sass and Compass to build the CSS, D3 to build the graphs and jQuery for some interface-related scripting.
To run the web platform, the recommended setup is using nginx, gunicorn and supervisord.
This project has been developed as the Final Degree Project for my MSc in Computer Engineering at the University of Cádiz, Spain. Public defense took place on May 28th, and the project was awarded with honours.