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

  • Thread starter Anurag (anu) Agarwal
  • Start date
A

Anurag (anu) Agarwal

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.
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.
3. The web based application will be used internally in the network to
moniter servers in that network only.
4. Web based application will be a real time application with a
Database.
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.
6. Also please suggest which third party tool for chatrs and graphs I
should use with Django (open source + paid)

If you guys can help me in desiging a very high level Architecture of
this application.

Thanks for reading so long. Please help me in this. If I am not clear
on something then please write back.

Thanks & Regards,
Anurag
 
A

Adam Tauno Williams

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.
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?
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?
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.
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.
If you guys can help me in desiging a very high level Architecture of
this application.

Take a look at ZenOSS; copy what they did.
 
P

Paul Kölle

Hi,

Am 29.04.2011 12:01, schrieb Adam Tauno Williams: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.
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...)
You mean like OpenNMS or ZenOSS?


Like OpenNMS or ZenOSS?
How can they be realtime if they generate static images?
If you want real-time monitoring you *must* build a service; a 'web app'
can *not* do that.
Do you mean an agent?
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
 
A

Adam Tauno Williams

Am 29.04.2011 12:01, schrieb Adam Tauno Williams:
How can they be realtime if they generate static images?

All images are static regardless of how much they pretend not to be.
You can refresh as much as you like. But a graph shows a progression
over time so there is always an interval.
Do you mean an agent?

No, just use WMI over the wire. Agents are terrible, hard to develop,
unreliable, and everyone hates agents. The systems already provide you
access to the information you are talking about.
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)

How is it painful? Of course you have to create a graph definition - in
your case you are creating a graph definition BY WRITING CODE! There
couldn't be a more painful way to just create a graph.

Have you used recent versions of ZenOSS? Graph definitions can be
created right in the UI.
. With <canvas> and modern JS libs like raphael
there are better ways to do this. Just look at google analytics.

I've seen it. I don't see how it is "better". It's a graph.
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.

I have no idea where the "PERL-line-noise + a few hacked-together PHP
frontend" comment comes from. RRD is written in C. OpenNMS is Java and
ZenOSS is Python/ZOPE.

And as for "CPU sucking monstrosity" that is what everyone says... until
they try to build a monitoring application... and thus create their own
"CPU sucking monstrosity". This is a case of
those-who-refuse-to-use-are-doomed-to-reinvent.
 
A

Anurag Agarwal

Hi All,

Thanks for the resposes.

I think I was not able to communicate my problem very well.

Here I am not managing any network devices, what i am doing is getting
some info from various servers on netowrk. I don't know how to explain
what kind of info is needed, but for the time if you just assume that
a driver for windows and linux is already written which has command
line interface too which gets certain info about server. Now the
information returned by this driver software from each server is to be
shown at a common place. For this I am planning a web based
application that can connect to each individual server and get the
info and show it on UI.

For this to happen i need some interface to which my web based
application (to be developed in Django and Python) can connect to each
server in network and call the driver methods on that server to get
the info.

I hope now i am clear with my thoughts. Please mail me back if still I
am not clear.

The solutions I got
1. Using WMI on windows but how it will work on Linux?.
2. Pyro which supports remote objects.
3. Open NMS - it is a java based open source project, we don't have
any expertise in java... I want something that can be integrated with
python and django.
4. ZenOSS - It is for managing some IP based devices on network.. I
don't know how it will help me.


Please give me some ideas on python even it needs some development
effort.

Regards,
Anurag
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,009
Latest member
GidgetGamb

Latest Threads

Top