mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Display a floorplan of all racks in a site #81
Closed
opened 2025-12-29 15:31:45 +01:00 by adam
·
18 comments
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
No Label
plugin candidate
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#81
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @fourg on GitHub (Jun 29, 2016).
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.
@bellwood commented on GitHub (Jun 29, 2016):
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:
rack temp color adjusted by chromatic scale with a hover graph to show the last 10 temp points for trending
clickable icons for switches in the racks that modal to show interfaces, toggle control, port descriptions, vlan information
pdu's in the rack and the power they are consuming
crv's showing input and output temps and humidity
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.
@ryanmerolle commented on GitHub (Jun 30, 2016):
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.
@bellwood commented on GitHub (Jul 15, 2016):
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.
@ollyg commented on GitHub (Jul 18, 2016):
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.
@bellwood commented on GitHub (Jul 18, 2016):
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.
@Armadill0 commented on GitHub (Nov 10, 2016):
Awesome, searching for "map" instead of "overview" was to easy to find this issue, sorry. 😄
@candlerb commented on GitHub (Feb 7, 2017):
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.
@snowie-swe commented on GitHub (Aug 4, 2018):
Would be very nice to see a basic layout picture next to the rack
@Ricaz commented on GitHub (Sep 20, 2018):
@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.
@bellwood commented on GitHub (Oct 1, 2018):
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. </.02>
@ndom91 commented on GitHub (Nov 16, 2018):
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!
@tb-killa commented on GitHub (Jan 10, 2019):
@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.
@DanSheps commented on GitHub (Jan 10, 2019):
@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.
@tb-killa commented on GitHub (Jan 10, 2019):
@DanSheps thanks for your answer.
This sounds nice.
@tb-killa commented on GitHub (Feb 9, 2019):
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.
@Xelinor commented on GitHub (Feb 9, 2019):
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.
@DanSheps commented on GitHub (Jul 3, 2019):
Please do not ask for updates to feature requests. They will be released when they are released.
@jeremystretch commented on GitHub (May 8, 2020):
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.