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

Discussion in 'Python' started by Anurag (anu) Agarwal, Apr 29, 2011.

  1. 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
     
    Anurag (anu) Agarwal, Apr 29, 2011
    #1
    1. Advertising

  2. Re: How to build an application in Django which will handleMultiple servers accross network

    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.
    > 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.

    > Thanks for reading so long. Please help me in this. If I am not clear
    > on something then please write back.
     
    Adam Tauno Williams, Apr 29, 2011
    #2
    1. Advertising

  3. Anurag (anu) Agarwal

    Paul Kölle Guest

    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
     
    Paul Kölle, Apr 29, 2011
    #3
  4. Re: How to build an application in Django which will handleMultiple servers accross network

    On Fri, 2011-04-29 at 13:24 +0200, Paul Kölle wrote:
    > Am 29.04.2011 12:01, schrieb Adam Tauno Williams:
    > >> 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?


    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.

    > >> 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?


    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.

    > >> 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)


    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.
     
    Adam Tauno Williams, Apr 29, 2011
    #4
  5. 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



    On Apr 29, 5:21 pm, Adam Tauno Williams <>
    wrote:
    > On Fri, 2011-04-29 at 13:24 +0200, Paul Kölle wrote:
    > > Am 29.04.2011 12:01, schrieb Adam Tauno Williams:
    > > >> 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?

    >
    > 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.
    >
    > > >> 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?

    >
    > 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.
    >
    > > >> 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)

    >
    > 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.
     
    Anurag Agarwal, May 2, 2011
    #5
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Netserver
    Replies:
    3
    Views:
    345
    Netserver
    Jan 2, 2004
  2. Si
    Replies:
    0
    Views:
    256
  3. John Posner

    Question on Django and Django Book

    John Posner, Nov 13, 2010, in forum: Python
    Replies:
    0
    Views:
    320
    John Posner
    Nov 13, 2010
  4. eGenix Team: M.-A. Lemburg
    Replies:
    0
    Views:
    139
    eGenix Team: M.-A. Lemburg
    Jun 18, 2013
  5. Gary Roach
    Replies:
    0
    Views:
    137
    Gary Roach
    Jan 2, 2014
Loading...

Share This Page