On my last update to NPM it said that I would have to upgrade my server OS and SQL Server version if I wanted any additional updates to the product. Did I read this wrong? We are running Server 2012 and SQL. Is it a functionality issue in future updates? This is going to cause some issues in getting approval for an additional spend just to keep versions updated.
Orion/NPM - Why upgrade to Server 2016/SQL 2016?
Using Custom Properties sending Alert emails
After receiving lots of queries i will try to explain in screen shots what steps needs to take if you wish to use custom properties logic to send email alerts to respective location / or team responsible for that node and group.
Basically when you have bunch of Nodes and you just wanted to send emails to the related department / Engineering Team only
Or You may have monitoring nodes for multiple customers where you would like to send emails to related customer for the nodes for that customer /
This post can help in order to configure .
Step #1 Creating Custom Property
Start with Custom properties
Settings > manager custom properties.
Add Custom Properties
Leave it blank and Submit
Step #2 Assigning email to the nodes
Go to Settings Manage Nodes.
(Select multiple Node you wish to assign the email ) and click Edit Properties.
Now assign the email you wish to assign so all the alerts will be sent to respected email for these nodes .
And Submit to save changes.
Step #3 Using Custom property name under Alert Trigger Condition
Now in Alert use the custom property name to send the email for required email address for each node.
Select the Alert you wish to Edit and Edit Trigger Action > Send an email /page.
Add Trigger Action
When the alert will trigger it will use the email you have assigned to the Node.
***** Adding CC you can create more custom properties to include CC emails such as an example below ****
${Email}
${EmailCC}
PLEASE NOTE:- THIS SOLUTION WILL ONLY WORK FOR THE NODES
Do you feel like a professional plate spinner due to your job's stress?
Erich Brenn "Plate Spinning" on The Ed Sullivan Show - YouTube
What do you do to reduce the stress, make work life better for you and your team?
Any tools to quickly check if required ports are open?
This is more for a convenience factor. Just wonder if there is any free tool from solarwinds that would check the status of all required ports for solarwinds modules to let you know if they are open or not on your polling engines. I know i could do a powershell script do check like that but was curious if something existed. I think something like that would be helpful to run for new SolarWinds installs and for troubleshooting issues. I have run into problems in the past when our server teams have pushed GPO changes that have changed open ports to closed and then we have to find them open them when that happens, be nice to have something already set that could check all standard ports for solarwinds environment.
Orion stops to integrate with WHD
Hi, we are using NPM 12.2 with WHD 12.5.1, both are integrated for auto ticket creation. Was working fine since last 1 years. Suddenly tickets were not generating while in Orion alerts were coming... Created the instance in WHD again for integration , restarted WHD application but no luck. But when I restarted Orion service it started... Can we check why this stops to work? .. Any suggestion. .
Meraki SDWAN Link Status Monitoring
Just recently, a client of mine sent me a challenge to improve their monitoring for their new Meraki SDWAN deployment around Australia.
They had 152 sites, and each site had a private link, an Internet link, and backup 4G link, and a VPN tunnel which ran over the Internet link, and failover to the 4G link if there were issues.
Currently they only had a view to determine if a site was experiencing an issue which would be easily visible to users, i.e. The Internet and private links both failed, causing a failover to 4G.
They wanted a more granular view than that, a view which would show them all of their sites in one window, with an indicator image for MPLS, Internet, 4G, and VPN, so they could see whenever they had any issues on any of their links.
After trawling through the Thwack forums and Google searches, I realized quite quickly that I was going to have to design a solution myself.
We decided to simply utilize NPM to monitor each of the links, with the client being able to get static addresses for each of the connections (including the 4G link!).
So that allowed us to get all the data we needed into Orion so we knew what was going on around their network. Now I just needed to work out how to display that the way they wanted.
I'll add in at this point that I'm not a developer or DBA or anything in the application space. My focus is Network Engineering, so what I put together, detailed below, is based off a lot of googling and trial and error.
I first off needed a way to easily identify what node belonged to which site, and which link it was (i.e. MPLS, Internet, 4G, or VPN).
I went over to my pet favorite for this and created 3 new Custom Properties, ClientEnvironment, ClientSiteID & ClientLinkID.
This allowed me to record the extra data I needed for each of the nodes so I could identify them in queries.
Now I needed to create the view.
I found a limitation with the built in resources for views pretty quickly. I could get the status data for each node pretty easily, and sorting them by the ClientSiteID and ClientLinkID fields allowed me to group them all together, but this wasn't what my client wanted.
This resulted in 4 rows per site, one for each link. My client wanted a single row for each site with 5 columns, one for the site name, and one for each of the link types.
This seems like a silly point to push, only wanting one row per site instead of 4, but when you think about it, they have 152 sites with 4 links each. That's 608 links to monitor!
Looking at 152 rows instead 608 rows to see the status of all your sites does sound a lot more practical.
Researching methods to manipulate the returned data with SWQL found me a bit stuck as I couldn't work out a way to make a returned value into a column.
I'd just like to clarify here that this doesn't mean there isn't a way to do this, I just couldn't find one. If anybody does know how to do this, please reply with some details as I'd love to know!
I moved outside of SolarWinds and opened up Microsoft SQL Server Management Studio on our SQL server to try and find a way to achieve this with SQL, and with a bit of persistence and way too many Chrome tabs opened, I came up with this.
SELECT ROW_NUMBER() OVER (ORDER BY ClientSiteID) AS RowNum, * FROM ( SELECT C.ClientSiteID, C.ClientLinkID, '<img src="/Orion/images/StatusIcons/small-' + N.StatusLED + '">' AS Status FROM NodesCustomProperties AS C LEFT JOIN NodesData AS N ON C.NodeID=N.NodeID WHERE C.ClientEnvironment='Network - Meraki WAN' ) AS SDWANSourceData PIVOT( MAX(Status) FOR ClientLinkID IN([MPLS], [Internet], [4G], [VPN]) ) AS LinkStatus
That's what I was after. A simple view that would give me a row per site, and the status of each link.
Because I had 152 sites to list, I needed to enhance it a little bit to include a row number for each site. This way I could have multiple columns of results, and limit which row numbers were in each.
I wanted to add in a hyperlink to each of the nodes on to its respective status indicators, and that idea sounded easy enough now I was at this point.
I've never regretted my words so quickly in my life!.
I found the best solution to this was to write another version of the above query, but for this one to return the NodeID instead of StatusLED column.
Then I could join those two datasources together, so I now had 9 columns per row, the Site Name, Status Icon for each link, and URL to the Node for each link.
SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY Site1) AS RowNum, * FROM ( SELECT C.ClientSiteID AS Site1, C.ClientLinkID, '<img src="/Orion/images/StatusIcons/small-' + N.StatusLED + '">' AS Status FROM NodesCustomProperties AS C LEFT JOIN NodesData AS N ON C.NodeID=N.NodeID WHERE C.ClientEnvironment='Network - Meraki WAN' ) AS SDWANSourceData PIVOT( MAX(Status) FOR ClientLinkID IN([MPLS], [Internet], [4G], [VPN]) ) AS LinkStatus AS Status LEFT JOIN ( SELECT Site2, '/Orion/NetPerfMon/NodeDetails.aspx?NetObject=N%3a' + CONVERT(varchar, [MPLS]) AS [MPLSLink], '/Orion/NetPerfMon/NodeDetails.aspx?NetObject=N%3a' + CONVERT(varchar, [Internet]) AS [InternetLink], '/Orion/NetPerfMon/NodeDetails.aspx?NetObject=N%3a' + CONVERT(varchar, [4G]) AS [4GLink], '/Orion/NetPerfMon/NodeDetails.aspx?NetObject=N%3a' + CONVERT(varchar, [VPN]) AS [VPNLink] FROM ( SELECT C.ClientSiteID AS Site2, N.NodeID AS NodeID, C.ClientLinkID FROM NodesCustomProperties AS C LEFT JOIN NodesData AS N ON C.NodeID=N.NodeID WHERE C.ClientEnvironment='Network - Meraki WAN' ) AS SDWANSourceData PIVOT( MAX(NodeID) FOR ClientLinkID IN([MPLS], [Internet], [4G], [VPN]) ) AS LinkURL ) AS Link ON Status.Site1 = Link.Site2
Looking good now, but I wanted to merge the Node URL and Node Status values together.
Luckily, this query was primed for that, and all I had to do is add in a few lines into the very top SELECT statement to merge them together in HTML.
SELECT RowNum, Site1 AS Site, '<a href="' + [MPLSLink] + '">' + [MPLS] + '</a>' AS [MPLS], '<a href="' + [InternetLink] + '">' + [Internet] + '</a>' AS [Internet], '<a href="' + [4GLink] + '">' + [4G] + '</a>' AS [4G], '<a href="' + [VPNLink] + '">' + [VPN] + '</a>' AS [VPN] FROM ( SELECT ROW_NUMBER() OVER (ORDER BY Site1) AS RowNum, * FROM ( SELECT C.ClientSiteID AS Site1, C.ClientLinkID, '<img src="/Orion/images/StatusIcons/small-' + N.StatusLED + '">' AS Status FROM NodesCustomProperties AS C LEFT JOIN NodesData AS N ON C.NodeID=N.NodeID WHERE C.ClientEnvironment='Network - Meraki WAN' ) AS SDWANSourceData PIVOT( MAX(Status) FOR ClientLinkID IN([MPLS], [Internet], [4G], [VPN]) ) AS LinkStatus AS Status LEFT JOIN ( SELECT Site2, '/Orion/NetPerfMon/NodeDetails.aspx?NetObject=N%3a' + CONVERT(varchar, [MPLS]) AS [MPLSLink], '/Orion/NetPerfMon/NodeDetails.aspx?NetObject=N%3a' + CONVERT(varchar, [Internet]) AS [InternetLink], '/Orion/NetPerfMon/NodeDetails.aspx?NetObject=N%3a' + CONVERT(varchar, [4G]) AS [4GLink], '/Orion/NetPerfMon/NodeDetails.aspx?NetObject=N%3a' + CONVERT(varchar, [VPN]) AS [VPNLink] FROM ( SELECT C.ClientSiteID AS Site2, N.NodeID AS NodeID, C.ClientLinkID FROM NodesCustomProperties AS C LEFT JOIN NodesData AS N ON C.NodeID=N.NodeID WHERE C.ClientEnvironment='Network - Meraki WAN' ) AS SDWANSourceData PIVOT( MAX(NodeID) FOR ClientLinkID IN([MPLS], [Internet], [4G], [VPN]) ) AS LinkURL ) AS Link ON Status.Site1 = Link.Site2 WHERE RowNum BETWEEN 1 AND 40
Now I had the SQL query I needed to get this data, and on line 38 of the query, I also have the ability to limit which row numbers are returned.
All that was left is to get this data into Orion, and a huge shout out to Dean, one of the SolarWinds Principal Sales Engineers for helping me with this.
I had a bit of trouble working out how to get this data from this SQL query into SolarWinds to display it in a view, until Dean pointed me in the direction of Custom Table resources.
With a Custom Table, I could create my own datasource with the Advanced Database Query option.
From there, I could tell SolarWinds that I was using the SQL Query Type, and throw in the query I had worked out.
Perfect! I hid the RowNum column from the overall view, set Site to be Left Aligned, and then most importantly set the MPLS, Internet, 4G, and VPN columns to all be Center Aligned and Allow HTML tags.
With a bit of custom column changes, I ended up with the view below using some of the clients test data. (Site Names blurred out for privacy reasons)
All that was left was to create 4 more columns, copy this resource into each one, and modify each of the queries to only list the row numbers I wanted (I went for 4 columns of 40 rows).
This was exactly what the client was after, and the management overhead of this view is incredibly small.
In order to get a node to appear on this list, we simply needed to define the SiteID, and the LinkID. The query would then add it to the list.
The things we need to be careful about are:
- Making sure the ClientEnvironment for each of the links is defined as 'Network - Meraki WAN';
- Making sure the SiteID for each of the links at the same site all match;
- Making sure the LinkID is defined as 'MPLS', 'Internet', '4G', or 'VPN'. If these aren't defined correctly, they won't show on the list;
- Making sure we don't have any duplicate LinkID's for a specific SiteID.
As long as we keep to those rules, adding to and managing this view will be seamless and simple.
This was the deepest I've gone so far with customizing SolarWinds Orion, which is why I wanted to share my experience and findings.
I'm very keen to find out however if there is an easier way to achieve this, so please let me know what could be done differently if you know.
I hope some of you get some value out of this for your own environments.
Alert - Software Inventory ?
Can anyone point me in the direction of being alerted upon if a certain piece of software shows up in the Asset Inventory table ? If there is another thread in which an alert is created based on a value in the DB that would be helpful as well. Thank you.
Are your Orion server and SQL database server in the same Active Directory domain?
Disappearing interfaces with WMI
We monitor our Hyper-V deployment via WMI and I've got this problem where on occasion, the interfaces just disappear in Orion. Stats collection stops on them and they never re-appear, but they are obviously still on the servers. A rediscover doesn't help, but a manual "List Resources" shows them there and they have to be selected to start working. Whatever the WMI equivalent of the ifIndex is must change, too, as they create new interface IDs in Orion and stats are started anew.
Anyone seen this odd behavior before?
Nodes showing down in NPM but are pingable from local user machine
I have a couple of nodes in NPM which are shown as down. But when I try to ping them from my machine, they are pingable and I also checked with the local IT on site, and they informed me the devices are up and running. I have already tried below links:
But unfortunately that has not resolved the issue. I also tried to delete the nodes and re-add it, and when I re-add the nodes they are UP for a while, but after some time they automatically are again shown as down.
Can anyone please provide me a solution to resolve this issue?
Report showing Date Node was created
I need to create a report showing the date nodes were created, unmanaged and managed. Does anyone know how to do this, or has done it? I can create reports fine, I just can't find this field anywhere. I'm sure solarwinds must keep track of these dates somehow, so if anyone can help, I'd appreciate it.
Alerting on Volume Thresholds
Back in April of 2015, NPM 11.5 was released and with it came a brand new Web-based Alert Engine in the Orion Platform. At the time, and ever since, one of the most valuable capabilities of this new engine was the ability to dynamically alert on multiple objects based on their own individually assigned thresholds. Setting individual thresholds for things like CPU Utilization, Percent Memory Utilization, Packet Loss, Response Time, Interface Errors, and Interface Utilization was a game changer to a lot of alerting schemas that allowed us to reduce our custom property footprint, as well as the complexity of the alert definitions. However, a glaring "omission" was that the thresholds made available for Volumes were not presented to the alerting engine (or so we thought). This was a bit mind-boggling, and talking to other MVPs, seasoned SW Admins, and SW employees over the years, I had never heard differently, so the assumption was cemented as a "missing item that requires a work-around". (On a side note, I am 42% sure that jbiggley was behind a very well orchestrated and elaborate trolling to keep me in the dark on this capability, but I digress...) But today, I'd like to present the solution that was hiding in the background this entire time, to save future admins the discomfort of maintaining "Disk_Crit" custom properties.
Background: Node and Interface metric thresholds are added to the alerting engine in a very intuitive way:
However, volume thresholds are obviously not:
The key was to take a step back and look at the alerting object options, there you shall find your salvation in the form of a "Volume Capacity Forecasting" object (as opposed to the intuitive "Volume" object type):
Which then presents those valuable thresholds!
From there, you need to setup a "Double Value Comparison" in the trigger:
And then create a comparison between the current and threshold values, respectively:
Which will then trigger on Volumes where their current percent utilization exceed the threshold you have defined on that specific volume:
For reference: thresholds are edited per object by editing the object's properties, and looking at the bottom of the page: (Pro Tip: you can edit multiple objects at once from the "Manage Nodes/Entities" page)
Verified via SQL search on the "VolumesForecastCapacity" view in the database:
SELECT TOP 100 * FROM VolumesForecastCapacity
There you have it. Happy monitoring everyone!
Do you feel like a professional plate spinner due to your job's stress?
Erich Brenn "Plate Spinning" on The Ed Sullivan Show - YouTube
What do you do to reduce the stress, make work life better for you and your team?
F5 BigIP Hardware Status not polled
Multi Subnet Hybrid Cloud HA deployment
Hi Everyone,
I have the following query.
Current Setup:
We have a standalone Orion server(2017.3) with modules such as NPM, NTA, NCM, SAM, UDT, VMAN, IPAM for 230 servers and 450 n/w devices. We have a SQL server 2014 for Orion DB and Fastbit DB installed in the Orion server for NTA.
Requirement/Plan,
We have plans to upgrade the current environment to the latest version and also setup a HA for our monitoring solution. Client wants the HA to be in Azure Cloud (latency requirement is met which is 50ms). So primary orion will be on premise and secondary will be in Azure cloud. With respect to SQL DB, we will be having a separate SQL DB 2016 sp1 for NTA 4.4.
Queries:
- ) We are planning to use SQL Always-on cluster where on-premise SQL will hold Primary orion db and Azure SQL will host primary NTA db. Also same on premise SQL DB will also host secondary NTA DB and Azure SQL will host secondary Orion DB. I know this setup might work but in case of failover and when both DBs are running on the same server will there be any issue? Is it recommended to host NTA DB on the same SQL server as that of Orion?
- ) While going for NTA 4.4, our existing fastbit db will be lost. Can you suggest us the way to retain the data available for the client anytime when needed? or even extract it as a report?
Regards,
joe
Custom MIB Poller (Temperature) for HP servers
FYI: If you want to monitor the temperature of HP Proliant servers and you've installed SNMP and the Compaq Insight Management software. You can create a Custom MIB Poller using OID (1.3.6.1.4.1.232.6.2.6.8.1.4).
cpqHeTemperatureCelsius: This is the current temperature sensor reading in degrees Celsius. MIB value type should be set to Raw Value, and type is set to none.
Unfortunately, you can't yet perform math on the Custom MIB Poller to convert the value to Fahrenheit.Triggered Alert History - Last 30 Days
Orion NPM 12.2 Search - any way to disable it?
So, true to Solarwinds fashion, security took a back seat to flashiness. While the new search feature is great for our staff, we have dozens of Solarwinds accounts that have incredibly limited permissions that should only be able to see specific things. When these accounts use the new search feature to search for something generic like 'cisco', guess what? Every single one of our Cisco devices and basic information about them appears in the results. While they don't have access to view these nodes if they click on them, it's infuriating that they show up at all and that view/account limitations aren't taken into consideration when designing things like this.
I've taken to simply deleting the entire ui/search directory on my additional web server installation, which of course causes errors when trying to search, which in turn I am sure is going to generate tickets from our customers insinuating that society is on the brink of collapse because this one feature doesn't work and how do we fix it and their company pays us absolutely 0 dollars for this courtesy login we provide them and therefore are entitled to some sort of compensation.
Update Node IP Address Through Python orionsdk
So I have successfully been able to query and pull information about nodes from Orion using the python orionsdk; can I simply execute an SQL UPDATE command to change the Node IP Address in the nodes table using the same function?
Thanks!
orionsdk-python/samples at master · solarwinds/orionsdk-python · GitHub
WLC Thin [Light Weight] Access Point Serial Number. Display?
Fellow THWACK’sters,
I have been fortunate enough to find the OID that I have assigned to the 12 Cisco 5500 Series WLCs via the UnDP on the Main Poller.
MIB Name: AIRSPACE-WIRELESS-MIB: bsnAPSerialNumber
OID: 1.3.6.1.4.1.14179.2.2.1.1.17
Description: "AP Serial Number."
When testing this OID against each of the WLCs, there was the full List of the Thin [Light Weight] Access Points that are connected to the WLC Shown.
Task 1; Find and Test Thin [Light Weight] Serial No. OID; DONE.
Task 2a; Display the Thin [Light Weight] Serial No.’s for all of the Thin [Light Weight] Access Points on the WLC Node Page?
Task 2b; Display the Thin [Light Weight] Serial No.’s on the Thin [Light Weight] Access Points Node Page?
This will probably only be possible id the Thin [Light Weight] Access Point is also a Polled Node by ICMP and there is a ‘binding’
within the SQL Database with the Access Point IP Address… Maybe?
Task 3; Add the Thin [Light Weight] Access Point Serial Number to the Nodes Bespoke SQL Inventory Report that is ran on the 1st of Each Calendar Month.
We may need to Add All of the Thin [Light Weight] Access Point Nodes to the Nodes being Monitored and Polled by SolarWinds.
However, I may find the Table/s and Column/s within the SolarWinds SQL Database that can be joined to the Bespoke SQL Inventory Report that is ran…
Can any of you fellow THWACK’sters Help Me with the Tasks shown above?
Please do not hesitate to ask for any further clarification.
Thank you in advance for your help.
Status update…
I have found the Thin [Light Weight] Access Points with the 2 Tables Following;
[dbo].[Wireless_AccessPoints_View]
[dbo].[Wireless_AccessPoints]
And the UnDP has been found within the Tables as shown below.
[dbo].[CustomPollers]
[dbo].[CustomPollerAssignmentView]
However, this UnDP is shown Assigned to only to the 12 WLCs. (No Surprise).
[dbo].[Wireless_AccessPoints_View] = NodeID = dbo].[CustomPollerAssignmentView]
Where the NodeID is the one of the 12 WLCs.
Is there a Table that will show the Thin [Light Weight] Access Points Serial Number, that will share a Common ID with one of the Tables show above?
Or any other Table for that matter?