How to find out on wich map (maps) is node located ?
We have a network with more than 8000 nodes, 42000 interfaces, there are more than 430 different maps in the system. It is literally impossible to open a network map to which a particular element is placed.
I have my own solution wich I will describe later. But it is unofficial and hard to maintain and final result is not 100%. My solution becomes more and more complicated with every new version of NPM. On 9.5 version it was simple with Map Maker , with 12.1 and Network Atlas it becomes to be nightmare.
Is there anybody who have the same problem, please ? Or how do you work with NPM without this function with such big amount of nodes and maps ?
I found only one simmilar request from KMNRuser (How to tell what map(s) a node is on - 1.11.2016) on Thwack. With no replays, with no solution.
I can't belive that only two network admins have this need , How the others take network topology overview when they are not abble to easily open network map with faulty node ?
So please, I would like to read experience of other users with localization of node on map.
I do not want to burden your mind with my description of the solution, I would like to see if and how others solve this problem.
I will describe my solution next Monday, I promise.
I can tell you, I asked for solutions at SolarWinds 5 to 6 years ago first time (and many times later). The solution has never been proposed to me.
Now I'm close to ending the use of NPM just for this (my guys - network admins and NOC operators do not want use NPM just because they cannot easily open map with node they want to see in topology layout)
World Map function is not usefull for this - geological topology is different than Network topology, they are not comparable (and because of more other limitations).
Thank you for all your suggestions
Map search has been solved - at max level wich was possible to acchive in SolarWinds environment.
I'm using external utility wich was programmed by my good friend. It is an application running on SQL server it is looking for occurrence of NodeID in MapStudioFiles table. (It runs every 2 hours as a Windows service or upon user request as an application)
Every Time it finds "NodeID" in "Filedata" field of the "MapStudioFile" table, it generates URL of the map and fills it in to my Custom property field "MapaURL" (If node exists on more maps - there is more URL`s generated)
For example node is drawn on two maps:
By clicking on the URL I can open a map wich I want to see.
We did not suceed in changing of the behavior of "Search" function. Whole "search" seems to be compilled in one DLL file so it was not possible to change its functionality - our goal was to add more database fields to search results.
Currently we receive only Node name on request and there is not possible to add some other fields ( my "MapaURL" field for example) :
An application is theoretically usable on any NPM environment, the only necessary think is to have the same Custom fields on Node as we have - "MAPA" and "MAPAURL" , I have to test it on second NPM server we have
I'm little bit late but I'm going to describe my solution how to find out on wich map is a specific device located.
1. I created a new custom property feeld for object Nodes (format Text) - named Map
2. I created a new custom property field for object Nodes (format Text) - named Map URL
( now only step 2 is necessary , I have to doo it this way, because in one of previous NPM version was not URL in "Map URL" human readable well , In 12.x version only step 2 is necessary)
3. Each "Map" field I filled up with real map name . For example "Praha"
4. Each "Map URL " I filled up with map URL coppied from line on browser line forexample : <a href="https://thwack.solarwinds.com/Orion/NetPerfMon/MapView.aspx?Map=Praha">Praha</a>
If the device is on more maps , it is possible to put "brake" sign and fill another URL.
You can imagine that maintain all this informations manually is horrible. Moreover it does not solve everythink I need.
- It is not possible to search Node using standard search tool. When you use standard search, as a result it shows nodes wich match , but no other database fields related to this node - like "Map URL" . Additionally, the ability to display other database fields in the result is not user-definable.
This is only one result for searching node named BBR1 - but I want to see more fields .....
- With search function it is possible to open Node detail screen, from the Node detail screen you can open "Map URL" (of course if you have custom property fields displayed on this view)
- The only way how to search map, is to use a "Manage Nodes" function, there is possible to display mode database fields. So I put a Map URL field there. From this point it is possible to click on URL and open the map view.
- Bad is, that I do not want to allow "Manage nodes" function to all users of course. These users will be blind.
When I do all the previous steps and open the map on which the device is located, I have not yet won. Imagine map with 30 and more devices - you have to find it on this screen and it is definitelly not easy. CTRL-F is not usable because labels are not displayed as Text on the screen. There is no way how to highlight searched Node on map too !
- In Network atlas you can use "Map" name as one of grouping parameters. So all nodes and interfaces on map I'm editing at the moment, are easily visible in left hand list one next to each other.
This is my way how to open a map on wich is a node I'm lookong for located. I'm not happy with it and will not be able to use it in the future due to user-friendliness.
If anybody (especially SolarWinds staff) will have any idea how to improve this solution I will be glad.
P.S. Tonny.Johnson wich makes replay to my question give me good idea.
As a start, a custom SQL Query can get us this information.
select filename from MapStudioFiles
where convert(nvarchar(max),filedata) like '%Nodes: NodeID%'
Now... to figure out a nice way to display it dynamically somewhere in the console. On the node details view maybe..
it seems to be useful. I tried to use a convert function and I found that each map's FileData field contains a list of nodes wich are placed on it..
It looks this way:
comment: "NetObjects=: ,Orion.Nodes: 2777,Orion.Nodes: 12006,Orion.Nodes: 7096,Orion.Nodes: 12576,Orion.Nodes: 6080,Orion.Nodes: 14825,Orion.Nodes: 14957,
I found that the convert function is very demanding on the processor performance, when it search through all maps a SQL server is close to collapse. It will be necessary to make copy of the MapStudioFiles table to another SQL instance and all operations make out of the NMP SQL.
Using this convert function and some additional queries I will create new table wich should contain thee columns :
Node ID : Map Name: Map URL:
2777 Praha - Url generated using Map name field - <a href="https://thwack.solarwinds.com/Orion/NetPerfMon/MapView.aspx?Map=Praha">Praha</a>
2777 Praha-2 - Url generated using Map name field - <a href="https://thwack.solarwinds.com/Orion/NetPerfMon/MapView.aspx?Map=Praha-2">Praha-2</a> - in a case that the node will be found on more maps
- In the next step I have to transfer Map URL field in to Node table in NPM database - in to Map URL field (as I described the description of my current solution).
This procedure should help me to automate creation of URL's of maps.
The rest of issues I have remain, until official solutions from the manufacturer will be available. I'm asking for it for years but with no success.
I hope that SolarWinds will not change the structure of databases in the next versions so that at least this solution can be used.
I gave up on maps and leveraged dynamic groups. For reasons you mentioned but also due to the rollup status flexibility via groups that seemed lacking in maps. This was an easy decision to make since devices had DNS entries and hostnames that looked like: region-function-001.
Since I maintained five installations and failover engine did not meet our use case, time management necessitated ditching maps.
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. Learn more today by joining now.