Let's talk a bit about what we want from our end product before we start writing up some code. As mentioned before, we're looking to create a server monitoring solution. What exactly will it do? How can we implement the required functionality?
As our inspiration for Djagios is Nagios, let's look at how Nagios works. While Nagios is a huge application with understandably complex programming, it is in the end a client-server application. The server, which is just another computer, contains the Nagios installation. The clients, which are the systems that you want to monitor, run small plugin scripts that gather data and push it to the server. The server takes these data points and, based on how it's configured, sends out alerts if required. It also stores these data points and can show them in a simple tabular layout, giving you an instant overview of all the computer systems in your infrastructure.
We'll be creating something similar. Our server will be a Django application that...