5 Replies Latest reply on Sep 24, 2013 11:27 AM by ecklerwr1

    Integrating Wireless Thin AP nodes in NPM with details taken by Wireless Controllers

    LDave

      Hello to everyone,

      We have a wifi network infrastructure composed of few centralized controllers managing Thin AP spreaded everywhere.

      Until now information for the Thin AP has been gathered through the "Wireless" view in NPM, where, thanks to the information in the controllers is possible to know which wlans are broadcasted by the thin AP, how many clients are connected and so on.

       

      The fact is, we want to have this Thin APs also as physical nodes inside NPM, so we added them (ICMP only).

       

      Now, the thing I would like to do is to bind the NPM nodes for the thin AP (which are stored in the db inside the Nodes table, with a unique NodeID) with the thin AP as seen on the wifi page (which are stored in the NPM_NV_WL_APS table with another type of ID, RecordID). This is needed in order to include, inside the node details view with the standard information for the node collected by NPM, details about Wlans and Clients connected to the AP.

       

      The main binding factor I can see is the IP address (Nodes.IP_Address and NPM_NV_WL_APS.IPAddress) which unfortunately is not taken into account automatically by NPM.

       

      Is there a possibility to create custom resource objects?

      i.e. this resource:

      activewificlients.png

      Is the resourceID 672, and it is populated by the system with the ThinAP ID (NPM_NV_WL_APS.RecordID) and the wireless controller ID (NPM_NV_WL_APS.NodeID).

      Is there the possibility to load it inside the NPM node details page dynamically passing to it the two values taken in the db in some sort of  sql query?

      Starting from the nodeID, that is surely available since it's in the link to the Node details page it should be possible with a simple innerjoin like:

                Select AP.RecordID, AP.NodeID From Nodes inner join NPM_NV_WL_APS AP on Nodes.IP_Address = AP.IPAddress where nodes.NodeID = *currentviewednodeid*

       

      If this is not possible, I would like to have at least a link to the whole page containing wifi informations (i.e. _ttp://Orion/Orion/NetPerfMon/NodeDetails.aspx?thinap=42322&netobject=N:2441&viewkey=Wireless%20Thin%20AP )

      Can this kink be somehow dynamically obtained?

      Maybe via HTML and custom SQL variables like:

                <a href=_ttp://orion/Orion/NetPerfMon/NodeDetails.aspx?thinap=${SQL:Select AP.RecordID From NPM_NV_WL_APS AP AP.IPAddress = ${IP_Address}}&netobject=N:${SQL:Select AP.NodeID From NPM_NV_WL_APS AP AP.IPAddress = ${IP_Address}}&viewkey=Wireless%20Thin%20AP>Wifi Details</a>

       

      I've also thought about manually putting the thin AP ID and Controller ID inside a couple of custom properties for the node.. than a link could easily be obtained with the user links function, which parses custom properties... the problem is, the thin AP may switch to another controller making a statinc binding between node and controller ID unusable.

       

      Thanks to everyone had the patience to read the whole post, and even more thanks to anyone will suggest some ideas to solve this.

       

      ps. sorry for my english which is far from perfect, but I hope to be at least understandable.

        • Re: Integrating Wireless Thin AP nodes in NPM with details taken by Wireless Controllers
          Michal.Pecenka

          Hi,

           

          you can achieve that by using Custom Query resource and specify your own SWQL query, which the resource is using to show data.

           

          Below are steps for NPM 10.4:

          1) Customize your Node details view

          2) Add Custom Query resource (Miscellaneous\Custom Query)

          3) Edit the resource

          4) Specify Custom SWQL Query. You can use below one to show WL clients on Node details page:

           

          SELECT cl.IPAddress AS [IP], cl.MAC, cl.SSID, cl.InBps, cl.OutBps, cl.InTotalBytes AS [In Bytes], cl.OutTotalBytes AS [Out Bytes]

          FROM Orion.Wireless.Clients cl

          INNER JOIN Orion.Wireless.AccessPoints ap ON (ap.ID=cl.AccessPointID)

          INNER JOIN Orion.Nodes n ON (ap.IPAddress=n.IPAddress)

          WHERE n.NodeID = ${NodeId}

           

          5) Submit changes

           

          That's all. You should see list of WL clients on node's details page.

          Regards.

          • Re: Integrating Wireless Thin AP nodes in NPM with details taken by Wireless Controllers
            michal.hrncirik

            Dave, please let us know if this solves your problem.

             

            thanks,

            Michal

            • Re: Integrating Wireless Thin AP nodes in NPM with details taken by Wireless Controllers
              LDave

              Thank you Michal, your answer is perfect.

              To be fair, I've discovered the custom swql resource few days ago thanks to the discussion in this post:


              Hidden Gem: The Custom HTML Resource

               

              As you can see I customized one swql resource with brief details of the AP doing a query like this:

               

              SELECT ap.DisplayName, ap.Clients as Num_of_Clients, ap.WirelessType as AP_Type, round(ap.InBps,2) as In_Bps, round(ap.OutBps,2) as Out_Bps, c.DisplayName as Controller

              FROM Orion.Wireless.AccessPoints ap

              Join Orion.Wireless.Controllers c on ap.NodeID = c.NodeID

              Where ap.IPAddress = '${IP_Address}'

               

              That said, yours displays connected clients information directly and so it can be integrated very well with my table, thanks

               

              Just another question:

              since the Thin APs can't be polled via snmp, orion sees them as "Unknown" devices, thus I have the 'Uknown devices view' applied to them and the custom swql resource will be visible (but blank) also in other type of Uknown devices.

              Is there a way to create your own type of devices? Or to assign the view to specific nodes?

              The best thing would be the possibility to assign views based on custom properties, because in this way we would have the maximum flexibility.

               

              Thank you.