This is a response to a github issue for Weathermap. This way, everyone might benefit! (for those that don’t know, I write an open source tool to generate diagrams with live data from your monitoring system)
This is a demo I did years ago for the datacentre I was working in then. We were working on an asset register system, and I was hoping to be able to generate these maps from that data. You should be able to do the same kind of thing with racktables or OpenDCIM.
The key parts are:
- A column of ‘notch’ nodes. All but the first one are positioned relative to the one above. These are a simple gif image.
- The actual servers and equipment. Those are positioned relative to the notch nodes. We used a combination of rack-diagram images from Visio, and actual photos taken square-on to the front of racks. Pick a size for 1U, and that will dictate what 19 inches across is. For us, it was 400 pixels. Use that as a scale on all your icons. The vertical will fall into place, but set the Y scale on your icons to something large, so that it will never be the ‘important’ scaling dimension.
- Status indicators. Those are positioned relative to the servers.
The original version also had some nice fonts defined, but distributing fonts is much more complicated so I changed the downloadable example to use the built-in fonts.
“Notches”
So first, we define a template node for how to draw a ‘notch’. This contains the icon, and the label, so they don’t need to be repeated.
NODE notch
LABEL {node:this:name}
LABELOFFSET C
LABELFONT 15
LABELFONTCOLOR 255 255 255
ICON 1u-notch.png
Then we define all the notches.
NODE U1
TEMPLATE notch
POSITION 150 100
NODE U2
TEMPLATE notch
POSITION U1 0 39
NODE U3
TEMPLATE notch
POSITION U2 0 39
[etc etc]
You can generate this code in Excel or a scripting language very easily. Or just stick with my dimensions and use the template in the zip file.
Servers
Next comes the server. For a 1U server, things are simple. We just use relative positioning from the appropriate U notch. For larger servers we need to do a little maths: the node is positioned from its centre, so we need to know that a 2U server is 19 pixels down from the first U position it occupies.
NODE server2
LABEL Web Server 3
ICON 400 300 dell2u.png
POSITION U6 225 19
NODE server3
LABEL Web Server 3
ICON 400 300 dell1u.png
POSITION U9 225 0
Status
Finally, if you need to show the current state from somewhere, you can easily add indicators:
NODE server3_state
ICON 20 20 red-ball-64.png
POSITION server3 -270 0
(obviously you would add some TARGET information to get the current state)
Note that everything is positioned relatively. This means you can move the whole rack by moving one thing (the U1 notch). The status indicator will follow the server if you move it, too.
Example
I’ve zipped up an example map, some server images, and a blank 42U rack config file that can be used as a template for your own racks:
1 reply on “Rack diagrams with Weathermap”
[…] a big fan of Network Weathermap, so I thought this addition, http://lesser-evil.com/2016/06/rack-diagrams-with-weathermap/, to add rack diagrams to NW, to be pretty great. It makes a great addition/companion to Cacti, […]