Netbox: Display a floorplan of all racks in a site

Created on 29 Jun 2016  路  18Comments  路  Source: netbox-community/netbox

Ability to drag and drop existing racks within a site to create their physical topology. Bonus points for displaying how many free U's each rack has.

plugin candidate

Most helpful comment

I've already have this setup in a customeware application I wrote.

I make use of pgSQL's point coordinates for storing the location of racks, CRV's, UPS's on a grid and then displaying racks, birds eye with:

1) rack temp color adjusted by chromatic scale with a hover graph to show the last 10 temp points for trending

2) clickable icons for switches in the racks that modal to show interfaces, toggle control, port descriptions, vlan information

3) pdu's in the rack and the power they are consuming

4) crv's showing input and output temps and humidity

5) UPS input and output + battery state and runtime

its all realtime with AJAX and SNMP

Get ahold me in the IRC channel if anyone wants to discuss this further as it's something I've thought about adding to netbox since I saw the reddit thread.

All 18 comments

I've already have this setup in a customeware application I wrote.

I make use of pgSQL's point coordinates for storing the location of racks, CRV's, UPS's on a grid and then displaying racks, birds eye with:

1) rack temp color adjusted by chromatic scale with a hover graph to show the last 10 temp points for trending

2) clickable icons for switches in the racks that modal to show interfaces, toggle control, port descriptions, vlan information

3) pdu's in the rack and the power they are consuming

4) crv's showing input and output temps and humidity

5) UPS input and output + battery state and runtime

its all realtime with AJAX and SNMP

Get ahold me in the IRC channel if anyone wants to discuss this further as it's something I've thought about adding to netbox since I saw the reddit thread.

A room / bird's eye view makes sense. We may need to first address how to relate rooms, private cages, or floors in the same site. You may want to only take a birds eye view by these sub-units/groups.

Yes, you'd ideally want to limit the display to each "rack group" - which for us is a single containment pod but could be anything.

Realistically you are only limited to screen real-estate for what you want to show however there are other considerations if you want live data:

-will the data come live or from a stored system that is polling (like rrdtool)

-if its coming live, how many devices are you calling live and what impact that may have on your network

My implementation does everything live via ajax (we are relatively small) but at scale that simply doesn't work.

My thought for my next version was to use cacti to collect all the data and pull it to the interface with command line calls to rra's, however that means adding devices in two places and also doing all graph templating with cacti and a slew of other things.

It certainly would be an advanced implementation to add live/delayed data to the overview but not impossible.

Simply displaying the visual layout though is real easy, involving some CSS and placement decisions based on grid.

Each rackUnit (yeah bad name) in my pgsql table (which consists of 'types' e.g rack, gap, ups, battery, bypass, transformer, cooler, etc) has a "coord" field that is (x,y) (field type is point) and I display my rackUnits out where:

0,0 is top left -> 0,n
1,0 is bottom left -> 1,n

...this is per rackGroup.

Based on the type and facility ID for those items I have CSS classes setup to handle the display for that item.

I thought the idea of netbox is not to have live or polled data but to be an authoritative source of truth curated by a human. I would really like to see this feature but it need only be the room view exactly as @ryanmerolle said. Then we could browse down from the org level to each data centre space or room and then down to the rack level.

One of the tenets of netbox is to document things as they exist in the real world.

So auto-polling interfaces, assuming connections, etc is not done.

The temperature of a rack, of the runtime of a UPS battery string, are real world items and critical to DCIM. These are also things that change external to human interaction unlike adding a physical server, wiring a switch, etc so the only way to provide that data (if netbox wanted) would be the aforementioned.

My previous reply was simply shared to provide insight as to how I accomplished my needs for our software.

Awesome, searching for "map" instead of "overview" was to easy to find this issue, sorry. :smile:

As well as "bird eye view" I'd also like a front and back view of all the racks in a site or rack group. At the moment you can only get this one rack at a time.

Would be very nice to see a basic layout picture next to the rack

image

@bellwood, have you made any further progress on this? Any work you would like to share? I'm looking at implementing this in our setup in the coming week.

I have it working based on some static data, however, until FR #20 and #1044 are completed and we can move away from 6connect entirely Netbox remains a backwater project in my org.

<.02>Netbox really needs a version(s) dedicated to catching up on the legacy requests.

Yeah I'd really like something like this as well - Im somewhat handy with front end web dev stuff as well so I am more than happy to help!

@jeremystretch: Question: Is this extension really implemented in Netbox (Core) or should it appear as an extension ?
I'm asking because the JS based site topology map was rejected back then (#1827) and this is ultimately a similar extension.

We would be happy if the floorplans would actually come.

@tb-killa #1827 is an extension to the topology map, this is more of a site rack/rack group layout, which is slightly different and more similar to the current front-view rack layout.

@DanSheps thanks for your answer.
This sounds nice.

Hi @jeremystretch:
I麓m thinking about a simple solution to get this feature implemented:

First of all.. what is the exactly need of a "floorplan" ?
Normaly as we want to document "DataCenter" we doesn麓t use the Term of "Floorplan" as we use the Term of DataCenterGrid.

How to build DataCenterGrid ?
I would use as simple as possible the function from bootstrap themselve to draw the "grid".
Maybe extension with allow upload of big background graphic?

But first .. on which point we could build our DataCenterGrid ?
We need a starting point with a input field who you could define number of rows and columns who define the "Size" of your DataCenter.
Does we use this on the "Site" or should we define a new Implementation with Django and call the App "DataCenter-Visualisation" ?
This need some Linkings too from Site and Rackgroup and Racks.

So, one of the major problems I think with this is that Sites & Rack Groups mean very different things to different implementations. For my implementation for example, we use sites to be various campuses and Rack Groups to denote the floor and building. Then the rack Facility ID tells us where the physical rack is located, such as 145.36 meaning room 1, row 45, rack 36.

It's more then likely that we will need entirely new fields to track location, and ALSO will need to track Hot/Cold aisles since that isn't always standard either, and then there are POD based cooling systems as well as more I'm sure I'm not aware of...implementing this probably represents some fairly major changes. Not necessarily bad ones, but ones that should definitely be thought through carefully.

Please do not ask for updates to feature requests. They will be released when they are released.

This is one of our oldest feature requests, and to be honest I just don't see it ever becoming a priority.

I'm going to close this out as a core feature request, however I do think it would make an excellent plugin. Hopefully someone in the community will take interest in building it.

Was this page helpful?
0 / 5 - 0 ratings