Both for our customers and our Support department it's very important to have a map, to be able to see the state of our network in one glance in a certain area. Say for example a sea-cable broke near Italy: one look at Italy on the map will show what sites are affected, regardless of whether they're grouped by supplier or whatever.
As far as I am aware, there are only two mapping tools for this purpose available in the NPM:
- Network Atlas
- Worldwide Map
Again as far as I'm aware, there is no way to automate the placement of nodes on the Network Atlas, since all documentation goes through the Network Atlas software tool. This makes this undesirable to use because our network is fairly large and new sites are added or cancelled on a daily basis, making it a real chore to keep this map up to date.
In the Worldwide Map this is, thankfully, possible and pretty easy. I have written a script that transfers(copies) nodes from our previous NMS to Solarwinds' and automatically pushes the node's geolocation (from custom properties) to the Worldwide Map. This was working wonderfully, until at some point the web interface just stopped working. The script kept running happily. It was just the web interface that become non-interactive. After some time I figured out that it was just the pages with a Worldwide map on it and that the Worldwide Map simply can't handle more than a 1000 nodes at one time (where is this even documented?).
Sidenode: 80% of our monitoring is ICMP only, so being able to sync custom properties with the Worldwide Map automatically would be grand.
Is there anything that I have overlooked that can provide such a worldwide map as we need it, for our 5000+ nodes and growing network, that doesn't require manual input? Our previous NMS (PRTG) had no issues with this whatsoever.
Once I found that out, I started investigating whether we could at least show a smaller scale map with just the nodes that are in a certain group on the Group Details page (which is better, but still not good enough). This is in fact possible, but only through a very ugly and cumbersome workaround. (As far as I know) you have to:
1) Create a new view for every group (every Worldwide Map instance seems to have a ResourceID that is linked to a viewID)
2) Edit the Worldwide Map for each view to only show the nodes in that group
3) Append the viewID to the default URL for that group and from now on use that to navigate to it.
Once more I have found no way to automate this process while there are currently ~500 groups to do this for and then we're not even talking about where to leave those ~500 new URLs that everone now has to use, while the intuitive way of navigating is by using the Group Summary.
Is there a way to flexibly change what is shown on the Worldwide map? Thinking beyond groups here, so using custom properties for this would would be nice: only show nodes for a certain supplier, end-customer, device-type, etc.
If anyone is reading this from the future, our eventual solution took the following form:
1. A Python script that queries our installation's database through the Orion SDK. It retrieves all the information about our nodes that we need or want to show for the map (Lat/Lng, Name, Supplier, etc.). It is hosted on Amazon as a Lambda function and is bound to an API gateway. When successfully called it returns the information gained in JSON format.
3. A Custom HTML widget is placed on the Home page of our monitoring interface that creates an iframe using the path to the .html file:
<iframe src="/Orion/Device_Map/map_generation.html" width="1340" height="700"></iframe>
This provides an answer to Question 1 in the original post. The nice thing about this approach is that we have built everything ourselves, so we can customize the Lambda function to return different data depending on the way it is called, showing more or less depending on who is viewing the map or other variables, getting close to fixing Question 2 in the future. When showing all 5000+ nodes, the map takes slightly under 2 seconds to load when the page is refreshed.
However, this is still a rather roundabout way of fixing a problem that really should have a built-in solution. Only allowing monitoring of up to 1000 devices just isn't enough. But that's just my opinion.
I created a ticket for Technical Support. They basically said there is no build-in solution for our purposes and have used this thread as a feature request for the development team.
We are currently investigating the possibilities of using another application to create the maps and then porting them in through the custom HTML widget. Among the options is using the same product Solarwinds currently uses for the Worldwide Map by the company MapBox, but then with an extended licence to allow for all of our nodes to be placed.
These are only suggestions, I can't comment on if they will work in your scenario:
1) Instead of mapping your Nodes onto the Map, try mapping just your Groups which would reduce the number of pins on the map (I wonder if the limit is based on the number of pins rather than the number of Nodes).
2) You could cut the map into regions (EMEA, APAC, AMER etc) Then you could have 3 Views each with a WorldWide Map zoomed into that specific region - If you had that in a NOC View it might not be too bad.
3) You can EDIT what nodes are displayed on the Map with either View Limitations on the Page or if you Edit the Map itself there is a Filter Groups or Filter Nodes line so you can group by Custom Property or Vendor etc as per Q2.
Personally, I would try 2 and 3 combined So if I filter my nodes by Region (using CP) then Filter each map by that Node CP. If that didn't work then I might have to consider Groups.
Thanks for the reply!
1) Although we're reevaluating the way we want to structure our NMS as we're now changing to Solarwinds, it looks like we're not going to change the way our nodes are grouped. For us that means that a group could contain possibly hundreds of nodes, spread out all over the world. Having a single pin for that group wouldn't quite work because there isn't just one geolocation attached to its children. I havent tested whether it is indeed the number of pins that matters rather than nodes, could do that if I find a monent later.
2+3) This is something to take into consideration. It does seem rather finicky, though. As our network is now, we'd already need 6 different views and then insert a huge filter in the Edit Map part for each country as our nodes are not evenly spread across the world (we might only need one view to see all nodes in the whole of Asia/Australia/Oceania, but three to not crash things when viewing Europe). Then we'd need to keep track of the location of new nodes as they are created (and we're growing rather quickly) to keep the filters up to date and create new views to prevent a single Map from getting over 1000 nodes on it.
I mean, it's definitely possible, but it seems like more work than this kind of "simple" visualization should need.
I'm now looking into whether we can get an external widget going, which we can then import into our Orion interface.
We're running version 12.3, which the website says is the latest.
The script was adding objects to the map automatically, so I only noticed when it got slightly over 2k. When I removed some of them, the page only became responsive again when the amount dropped below 1k. It said on the Map itself that it doesn't support more than 1k objects. It only mentions this when you go over this cap.
How do you manage your groups? If you are not using the dynamic queries for adding nodes to groups based on properties this could make your life easier. I did something similar for customer for about 2300 Nodes. If you define the status for each group to show the mixed or worst status, any issues you may get should pop up quickly on your map. You could also consider using nested maps for some bigger areas like europe, but these can take alot of performance and should be used with caution.
Currently nodes are grouped by End-Customer and Supplier. Our environment is pretty new and not yet in production, so we're still messing around with how we want to approach things. We recently discovered the power of custom properties, so we've expanded greatly on them. We could definitely use dynamic queries to add nodes to groups now. I don't think this will help too much, since they weren't added manually but rather trough a script anyway. Our groups are indeed currently set up to show mixed status, but that doesn't solve the problem because a group will contain nodes spread over a very large area.
After a quick search I've only found instructions for nested maps for the Network Atlas. Is that also a possibility for the Worldwide Map? The Network Atlas is undesirable for us to use because there isn't a (at least I haven't found any) way to automate the creation on nodes etc. on it. With our 5k+ nodes and daily changes in our network, this is an arduous task to do by hand.
Maybe you should look at Solarwinds Network Topology Mapper which can run discovery and update maps which can be imported into Orion Atlas.
Worldwide Map does not support a nested view as it is just an API from Mapquest.
If you were to assign a custom property to each node for the location you could automatically add nodes to the map using geolocation via a script there are two examples of how to achieve that here on Thwack.
SolarWinds solutions are rooted in our deep connection to our user base in the THWACK® online community. More than 150,000 members are here to solve problems, share technology and best practices, and directly contribute to our product development process.