How to build an application in Django which will handle Multiple servers accross network

Paul Kölle paul at subsignal.org
Fri Apr 29 13:24:33 CEST 2011


Hi,

Am 29.04.2011 12:01, schrieb Adam Tauno Williams:
> On Thu, 2011-04-28 at 23:47 -0700, Anurag (anu) Agarwal wrote:
>> Hi All,
>> I want to build an application for one of my client which has
>> following features
>> 1. Client has some driver software which can be installed on Windows
>> and Linux based systems. This driver software is fetching some
>> operating system details using kernel level programming.
This is commonly called an "agent". You might not want do write your own 
because it is hard to do correctly and takes a lot of time. I'd suggest 
you search for something like sigar (library) or collectd and check out 
what they can offer in terms of output formats.

>> 2. Now a new web based application is required to moniter these
>> servers remotly. This application will talk to these servers and get
>> the data (not sure how data will be fetched from driver software) then
>> show it on UI.
>
> Perhaps via WMI?
Yes, best option. Modern windows versions have WinRM which is basically 
WMI over http (wmi being an implementation of CIM over DCOM, but I 
digress...)

>
>> 3. The web based application will be used internally in the network to
>> moniter servers in that network only.
>
> You mean like OpenNMS or ZenOSS?
>
>> 4. Web based application will be a real time application with a
>> Database.
>
> Like OpenNMS or ZenOSS?
How can they be realtime if they generate static images?

>
>> 5. Technology I am thingking for web based application is Django and
>> Python as this web application can also be installed on Windows or
>> Linux based OS.
>
> If you want real-time monitoring you *must* build a service; a 'web app'
> can *not* do that.
Do you mean an agent?

>
>> 6. Also please suggest which third party tool for chatrs and graphs I
>> should use with Django (open source + paid)
>
> ZenOSS and OpenNMS do graphs using RRD.
I know this is the "standard" but IMO it's totally backward these days. 
Correlating or selecting/deselecting certain values is painful (you have 
to write a graph def). With <canvas> and modern JS libs like raphael 
there are better ways to do this. Just look at google analytics. On the 
other hand, RRD (the database) is great, I just never got the python 
bindings for rrd_fetch to reliably fetch the values I needed (you can't 
tell it to stop normalizing ....)

It looks like PCP (http://oss.sgi.com/projects/pcp/features.html) will 
gain a JSON interface shortly. That would be awesome because PCP is 
developed by real engineers and has a proper architecture and is NOT a 
CPU sucking monstrosity of PERL-line-noise + a few hacked-together PHP 
frontends.

just my 2cents
  Paul





More information about the Python-list mailing list