Quantcast
Channel: THWACK: Document List - Network Performance Monitor
Viewing all 1956 articles
Browse latest View live

Resource to display unmanaged information on the node page including user info

$
0
0

< BACK TO TO THE MAGIC OF SQL SCRIPTS SERIES LIST


End Result:


Capture.PNG

 

How To:

 

To achieve this just use the below SQL script to create Report in Report Writer and then use this report as a resource on node's page.

 

You can also download report file directly (attached). Just copy this file into your default folder with reports and report will automatically appear in your list. Then add it as a resource on your node page

 

Remember: Update SQL script with the correct database name as per your installation

Note: This will work with NPM 11.5+. If you want this to work with earlier versions you will need to update SQL script, the part where user ID is being extracted and change ID 28 to ID 27 (appear two times)


 

/* ============================================
Author: Alex Soul
Date: 13/05/2015
Description:  * Information about unmnaged nodes.  * Suitable for NPM 11.5. Earleir versions of NPM will require slight adjustemnt as Audit Event IDs are not the same. You will need to change ID from 28 to 27 for it to pick up user  * To be used as an on-page report for "Report from Orion Writer" resource
Version:  Number | Comments | Date | Author  1.1 | Adopt for THWACK | 15/07/2015 | AS
--============================================ */
SELECT      n.NodeID --hidden     ,n.Caption --hidden  ,CASE      WHEN DATEDIFF(YEAR, n.UnManageFrom, getdate()) > 3      THEN CONVERT(NVARCHAR(50), DATEDIFF(YEAR, n.UnManageFrom, getdate())) + ' years ago'      ELSE CASE   WHEN DATEDIFF(MONTH, n.UnManageFrom, getdate()) > 3      THEN CONVERT(NVARCHAR(50), DATEDIFF(MONTH, n.UnManageFrom, getdate())) + ' month ago'      ELSE CASE      WHEN DATEDIFF(DAY, n.UnManageFrom, getdate()) > 3      THEN CONVERT(NVARCHAR(50), DATEDIFF(DAY, n.UnManageFrom, getdate())) + ' days ago'      ELSE CASE      WHEN DATEDIFF(HOUR, n.UnManageFrom, getdate()) > 3      THEN CONVERT(NVARCHAR(50), DATEDIFF(HOUR, n.UnManageFrom, getdate())) + ' hours ago'      ELSE CONVERT(NVARCHAR(50), DATEDIFF(MINUTE, n.UnManageFrom, getdate())) + ' min ago'      END      END      END     END AS 'WHEN'  ,CASE      WHEN DATEDIFF(YEAR, n.UnManageFrom, n.UnManageUntil) > 3      THEN CONVERT(NVARCHAR(50), DATEDIFF(YEAR, n.UnManageFrom, n.UnManageUntil)) + ' years'      ELSE CASE   WHEN DATEDIFF(MONTH, n.UnManageFrom, n.UnManageUntil) > 3      THEN CONVERT(NVARCHAR(50), DATEDIFF(MONTH, n.UnManageFrom, n.UnManageUntil)) + ' month'      ELSE CASE      WHEN DATEDIFF(DAY, n.UnManageFrom, n.UnManageUntil) > 3      THEN CONVERT(NVARCHAR(50), DATEDIFF(DAY, n.UnManageFrom, n.UnManageUntil)) + ' days'      ELSE CASE      WHEN DATEDIFF(HOUR, n.UnManageFrom, n.UnManageUntil) > 3      THEN CONVERT(NVARCHAR(50), DATEDIFF(HOUR, n.UnManageFrom, n.UnManageUntil)) + ' hours'      ELSE CONVERT(NVARCHAR(50), DATEDIFF(MINUTE, n.UnManageFrom, n.UnManageUntil)) + ' min'      END      END      END     END AS 'FOR'  ,CASE      WHEN DATEDIFF(YEAR, getdate(), n.UnManageUntil) > 3      THEN CONVERT(NVARCHAR(50), DATEDIFF(YEAR, getdate(), n.UnManageUntil)) + ' years'      ELSE CASE   WHEN DATEDIFF(MONTH, getdate(), n.UnManageUntil) > 3      THEN CONVERT(NVARCHAR(50), DATEDIFF(MONTH, getdate(), n.UnManageUntil)) + ' month'      ELSE CASE      WHEN DATEDIFF(DAY, getdate(), n.UnManageUntil) > 3      THEN CONVERT(NVARCHAR(50), DATEDIFF(DAY, getdate(), n.UnManageUntil)) + ' days'      ELSE CASE      WHEN DATEDIFF(HOUR, getdate(), n.UnManageUntil) > 3      THEN CONVERT(NVARCHAR(50), DATEDIFF(HOUR, getdate(), n.UnManageUntil)) + ' hours'      ELSE CONVERT(NVARCHAR(50), DATEDIFF(MINUTE, getdate(), n.UnManageUntil)) + ' min'      END      END      END     END AS 'REMAINS'    ,n.UnManageFrom AS 'FROM'  ,n.UnManageUntil AS 'UNTIL'    ,r1.AccountID AS 'BY'
FROM Solarwinds.dbo.Nodes n WITH(NOLOCK)


--below two joints are joining last recorded "Node unmanaged" audit event (Event ID 27) for this node to be able to display who has unmanaged it
LEFT JOIN (
  SELECT NetObjectID, MAX([TimeLoggedUtc]) AS max_datetime  FROM Solarwinds.dbo.AuditingEvents WITH(NOLOCK)  WHERE ActionTypeID = '28'  GROUP BY NetObjectID) MaxDates ON MaxDates.NetObjectID = n.NodeID
LEFT JOIN Solarwinds.dbo.AuditingEvents r1 WITH(NOLOCK) ON (r1.TimeLoggedUtc = MaxDates.max_datetime AND r1.NetObjectID = MaxDates.NetObjectID AND r1.ActionTypeID = '28')


WHERE
  n.NodeID = '${NodeID}' AND  n.UnManaged = '1'

 

 

Have fun,

Alex Soul

www.pixace.com


Google Maps in Orion NPM - How to Video

$
0
0

I've made some changes to the original Google Maps that I introduced about this time last year. This version provides a status icon on the map for each unique latitude and longitude value in the database. I'm leaving the old one up as it is better for environments where a large number of sites exist, and would simply be too cluttered with a status icon at each site.

 

Prerequisites:

1) Obtain Google API Key for Maps v3

2) Create and populate Custom Properties:

  • Country
  • City
  • Latitude
  • Longitude

 

Installation:

Copy files to the c:\inetpub\SolarWinds\Orion\GoogleMap\

Update your connection string and API key

Create a view in NPM using the Custom HTML resource, configure iFrame

 

See the movie (how to install the mod):

2013-07-25_10-43-25 - YouTube

 

Read the book (asp files, readme, notes on GitHub):

https://gist.github.com/BarefootAtomic/a396a12541ff97a2ce1f

 

map.png

 

 

Enjoy!

 

Andrew LaGrone, SCP#1368

What We're Working on for NPM (Updated July 28, 2015)

$
0
0

Since the release on NPM 11.5 we've been hard at working building the next round of exciting functionality and improvements in existing functionality.  I'm excited to share the following list of items we're working on:

 

 

Ongoing Initiatives:

  • Increased scalability per SolarWinds instance (target of 250k elements / instance)
  • Improved performance and decreased resource load times via analysis with SolarWinds DPA
  • Increased number of pollers possible per instance

Nokia Checkpoint IPSO

Database transaction log is full - Recovery ( Simple Mode vs Full Mode )

$
0
0

Growth is either down to 2 reasons:
1 NO DISK SPACE
2 LDF Autogrowth restriction has been reached

First thing I would do is Change Recovery from FULL to SIMPLE if not done so already


http://knowledgebase.solarwinds.com/kb/questions/1359/Changing+Recovery+Model+of+database+back+to+Simple

Here is Good explanation of Simple VS Full Recovery:

http://msdn.microsoft.com/en-us/library/ms189275.aspx

tttt.PNG

 

 

Transaction Log Size

The transaction log should be sized based on the amount of data modifications made to a database and the frequency of the log backups.
Large data modifications, such as data loads or index rebuilds should be taken into account when calculating a log file size.

In simple recovery model the transaction log should not grow as the interval between checkpoints (which truncate the log) is based on the amount of data modifications made.
If the log does grow, it may be that there are long-running transactions or transactions that have been left open. Either may indicate a problem with the application.

In full or bulk-logged recovery model, if the transaction log grows it may indicate that the frequency of data modifications has increased and as such,
the interval between log backups should be decreased. It may also indicate long running transactions or that the log backup jobs are not running properly.



RESOLUTION STEPS :-


.LDF file grows out of control, How to recover:
1.) Make sure recovery model is set for SIMPLE  and NOT FULL

http://knowledgebase.solarwinds.com/kb/questions/1359/Changing+Recovery+Model+of+database+back+to+Simple
2.) Backup the database, this will mark the data in the transaction logs as committed and no longer necessary.
3.) Shrink the database again to reclaim the log space. (PLEASE NOTE YOU MUST HAVE SOME FREE SPACE ON THE DISK IN ORDER TO RUN THE SHRINK )


How to: Shrink a Database (SQL Server Management Studio)


How to: Shrink a File (SQL Server Management Studio)

 

  1. 4.) If above doesn’t work as last resort is to detach the database (do not force it to detach if it gives an error that it can not detach, this will damage the database)
    once detached delete the .LDF file and reattach the database.
  2. 4.) Stop Orion Services.
    5.) In the SQL Mgt Studio or Orion Database Manger, right-click on the NetPerfMon database and choose "Detach".
    6.) Navigate to that directory where the MDF and the LDF files are stored, and delete ONLY the LDF file.
    7.) Go back into the database manager, right-click on your SQL server, and choose "Attach Database."

         at.JPG


        8.) Select the MDF file, and hit okay.

           mdf.JPG


         9) Remove the LDF file entry hit OK
     detach.JPG


It will recreate will 0KB LDF File automatically.

 

Future Proof so it doesn’t recoccur
After above all should be fine, but have you check LDF File growth doesnt reoccur.

Also once set to SIMPLE Recovery, LDF file should never really be over 1GB if all running smoothly.
But can also configure LDF to Restricted Growth, so say LDF File on Drive over 100GB Free,

  You could restrict LDF to few dozen GB just to be safe,
in case LDF growth reoccurred and LDF goes 100GB and brings down server due lack disk space.

log.JPG

SNMP - Write

$
0
0

Have any of you used Orion to push a change to a device using SNMP Write?

I am wanting to know if I will be able to push a change to a Windows XP / 7 machine from Orion and have a value changed from FALSE to TRUE for example, so the next time a custom poller runs and sees a TRUE statement an action can occur.

From what I can work out so far, NCM might be the only thing that uses SNMP write.

  Thank you


This document was generated from the following discussion: SNMP - Write

How to create a simple custom view of multiple interfaces' bandwidth utilization

$
0
0

I've used custom views to show clients and my Team many different things that NPM monitors, and those folks really appreciate the service.  You can be a rock star in their eyes when you give them something that helps them improve how they and their clients understand their systems and their performance.

 

Here's how to build a custom View that shows current and recent WAN interface utilization between routers connecting six different data centers.  Remember, your new View doesn't have to be of just interfaces on the same switch, or on the same router.

 

You can build this kind of report for as many interfaces as you'd like, from any switch or router or device interface that's monitored by your NPM.  This one shows a single WAN interface on six different routers that connect into the same MPLS cloud:

 

Here's how to do it:

 

Create the view:

 

1. From NPM, go to Settings > Manage Views > Add

2. Customize the new view:

  • Name it intuitively
  • Select Summary (there are MANY types of views.  Read up on them, test some to get a feel for the extreme versatility of NPM)
  • Click Submit

3. Edit the View.

  • You can change its name if you want.
  • I chose not to enable Left Navigation--this will be simple, and won't load a lot of info.
  • I added a Custom HTML Resource to Column 1, then cloned it three times.  Next I moved one instance into Column 2, and then cloned that one twice.  I ended up with three Custom HTML Resources in each column.
  • I set the width to 500 px for each
  • I set No View Limitation (but you can add one in if you need it)
  • Click Done or Preview.  Preview lets you see it right away, without assigning it to any Menu Bar.  Plus, you can edit those custom HTML fields.

4. Here's the sweet spot to make you rock in the eyes of your boss & peers because it gives you the power to make a really useful view:

 

5. Edit your new View in Preview, or assign it to a Menu Bar and open it

  • Click Edit in the top left Custom HTML window
  • Give it an intuitive Title
  • Fill in the Subtitle if that helps you better identify the interface or feature you're displaying
  • Copy and paste this into the html window:

 

<img src="/Orion/Netperfmon/Chart.aspx?ChartName=MMAvgBps&Title=&SubTitle=&SubTitle2=&Width=640&Height=0&NetObject=I:XXXX&CustomPollerID=&SampleSize=1H&Period=Last 10 Days&FontSize=1&NetObjectPrefix=I&SubsetColor=&RYSubsetColor=&Printable=true&ShowTrend=True&ResourceID=27" />

 

  • Where I've put in the X's, remove them and enter in the NetObject ID number you wrote down from the previous step
  • Click Submit

 

 

The new page should open, but this time the top left window won't say Custom HTML, it'll show the bandwidth used by that router's WAN interface for the last 10 days:

 

Now repeat this for every Custom HTML entry you've made, but change the NodeID info to the Node ID that's shown in the Interface Details page URL for new/different WAN routers and interfaces.

 

OK, you've made a new View.  But your team can't access it easily until you assign your new View to the Menu Bar they use.  If you don't know how to do that . . .

 

Here's how to define a new View to add to a Menu Bar:

  1. Go to NPM > Settings > Customize Menu Bars
  2. Edit the Menu Bar you or your team will use to access your new View
  3. Find your new View in the Available Items column on the left
  4. Drag it to the right column, drop it in where you want it.

 

 

If you can't find your new View, you'll need to discover its URL.  Follow this process:

    1. Open a second browser window and Edit the View by clicking the Preview open
    2. Copy the URL for the new View when you're previewing it
    3. Go back to the original browser window from step 3 and click Add
    4. Type in the Name of your View, paste in the URL address, give it a good Description
    5. I clicked the option to Open in a New Window.  It's your choice.
    6. Click OK

 

Now go back to NPM's Home Page, find the new View in the Menu Bar, and click on it.

    

Voila!

 

Tweaking and tuning:

If you're not afraid of a little keyboard editing of html, you can easily change the 10 days to show the last 7 days or last 23 hours or last 17 minutes or last pretty-much-anything.  Here's how:

 

Look for "SampleSize" and "Period" in the code you copied & pasted

<img src="/Orion/Netperfmon/Chart.aspx?ChartName=MMAvgBps&Title=&SubTitle=&SubTitle2=&Width=640&Height=0&NetObject=I:XXXX&CustomPollerID=&SampleSize=1H&Period=Last 10 Days&FontSize=1&NetObjectPrefix=I&SubsetColor=&RYSubsetColor=&Printable=true&ShowTrend=True&ResourceID=27" />

 

Note the SampleSize is 1H, or One Hour.

Node the Period is the Last 10 Days

 

Edit each window in your view and change the SampleSize and Period to whatever works best for you.  Keep in mind that some combinations of SampleSize and Period don't go well together (e.g.:  SampleSize=1M and Period=Last 10 Months) because NPM needs to have you be reasonable.  If you want a graph showing changes every 1 minute, you have to be polling & collecting the data pretty frequently.  Pick a Period that's reasonable for seeing good granularity of 1 minute points, like Last 20 Minutes.  If you just see points instead of a line in the chart, you've picked a combination of sample size & period that's too granular for what your NPM has polled.  Adjust until you've got something that meets your needs.

 

Remember to keep the spacing in the html code exactly the same as the example I show above.  If you add a space between words, or remove one, you risk breaking the pretty graph output.

 

 

Some examples:

 

Show the Last 3 Hours, in 10-minute increments uses this code:

 

<img src="/Orion/Netperfmon/Chart.aspx?ChartName=MMAvgBps&Title=&SubTitle=&SubTitle2=&Width=640&Height=0&NetObject=I:XXXX&CustomPollerID=&SampleSize=10M&Period=Last 3 Hours&FontSize=1&NetObjectPrefix=I&SubsetColor=&RYSubsetColor=&Printable=true&ShowTrend=True&ResourceID=27" />

 

Note how the graph automatically changed "Last 10 Days" to "Last 3 Hours" in the title.  Sweet!

 

 

 

Suppose you like the 10 minute samples, but want to show the last 24 hours.  Just change "Last 10 Hours" to "Last 24 Hours":

 

<img src="/Orion/Netperfmon/Chart.aspx?ChartName=MMAvgBps&Title=&SubTitle=&SubTitle2=&Width=640&Height=0&NetObject=I:25091&CustomPollerID=&SampleSize=10M&Period=Last 24 Hours&FontSize=1&NetObjectPrefix=I&SubsetColor=&RYSubsetColor=&Printable=true&ShowTrend=True&ResourceID=27" />

 

 

 

 

If it looks great, fire off an e-mail to your Team or your Boss and show off the new functionality you've provided to the organization.

 

If it doesn't look great, spend a little time fixing it up.  Look for typos, fix spelling & punctuation--this is your baby, and folks will judge you by your work.

 

Swift Packets!

 

Rick Schroeder

RouterOS


McAfee Sidewinder

Blue Coat ProxySG

How to import a map

$
0
0

When I click on the link to "Download Network Atlas" it is greyed out so it must already be installed.  I do not see a link anywhere to say, import a URL or link to a local file.

How do I import a map?


fonestar--

I'm moving this to the NPM forum where it will get more visibility.

M


This document was generated from the following discussion: How to import a map

Network Performance Monitor - Licensing Refresher!

$
0
0

Hi all,

 

In my line of work, I'm often asked the following question by my clients:

 

"Jez, what's the deal with licensing and NPM? What license do I need for my environment?"

 

For those new to SolarWinds NPM, this can be a bit of a thorny question, especially when thinking ahead during planning for a new deployment. To help you guys, who will no doubt have the same question asked of you during your time using NPM, I thought it may be useful to post this basic refresher on how NPM is licensed.

 

Here, we'll be using a customer which has a SL2000 license. This license provides you with 2000 NPM elements. What is an element in NPM? Well, let me explain:

 

In Network Performance Monitor, an element can be one of:

 

  • A device
  • An interface
  • A volume (a logical drive on a device, such as your C: drive)

 

The SL2000 license is this example, means our client can monitor a maximum of 2000 devices, 2000 interfaces and 2000 volumes. If they want to monitor more than 2000 of any of these three element types, they’ll need to upgrade their license to the SLX, or unlimited, license, which is the next tier up. The SLX gives them the ability to monitor an unlimited number of these elements (up to the polling engine maximum, and/or limit of their hardware).

 

Practical example: If they had 1000 devices, but wanted to monitor two interfaces on each one, then they’ll need the SL2000 license, and hence will be fine with what they already have. However, If they have the same number of devices, but want to monitor 4 ports on each, then they’ll need the unlimited license, as they’ll be trying to monitor 4k interfaces, which is above the limit of the SL2000 license.

 

Hope that clears things up, should you ever have to answer the NPM licensing question in your workplace!

2000 Thwack Points for Your Feedback

$
0
0

I'm on the User Experience (UX) team at SolarWinds and am looking for people who can spend one hour the week of October 26-29 for a feedback session. We're working on a new feature to help with troubleshooting root cause, and need people to review designs and give us their thoughts.

 

You must have Network Performance Monitor (NPM)and be free to meet for an hour through GoToMeeting. The actual time and day will be determined as we hear from users, but we will be relatively flexible.


Please note that we are running testing sessions out of one of our European offices that week, thus we will be targeting users primarily in Europe, as there will be a  time difference for our US users.


You'll get 2000 thwack points for participating.

 

Please email me at par.axelsson@solarwinds.com if you're interested in participating.

 

Thanks!


Pär Axelsson

All IP Addresses on a node - potential replacement resource

Some Things Solarwinds Admins Can't Live Without

$
0
0

Here are some SQL queries as doing weekly Solarwinds Maintenance and creating custom alerts that we as an MSP can't live without. I will most likely update this often but here are some I store in my evernote for now but I will update this frequently when i start looking through everything I use.

 

This first one isn't a SQL query but good for everyone use FoE to know:

 

 

From a command prompt :

cd C:\Program Files\SolarWinds\FoE\r2\bin\


nfpktfltr getstate

 

The failover should be set to Filter and the active should be PassThru


The nfpktfltr has a lot of good options to play with including forcing a set for filter or passthru in emergencies

 

Checking Ghost or Unknown Interfaces


selectInterfaceName,Nodes.CaptionfromInterfaces

 

innerjoinNodesonNodes.NodeID=Interfaces.NodeID

whereInterfaces.Status=0

 

Checking Nodes Not in Groups

 

 

selectCaption fromNodes

 

where

  not Caption in(

   SELECTdistinctFullName

   FROM ContainerMemberSnapshots

   where EntityDisplayName ='Node'

)


Checking Total Number of Elements for Custom Value


 

selectCOUNT(*)fromNodes

 

LEFTjoinVolumesonVolumes.NodeID=Nodes.NodeID

LEFTjoinInterfacesonInterfaces.NodeID=Nodes.NodeID

LEFTJOINAPM_ApplicationonAPM_Application.NodeID=Nodes.NodeID

whereCustom= 'somethinghere'

 

Getting IP list for Weekly Sonar Discovery by polling engine

 

selectIP_Address,Caption from Nodes

 

where

ObjectSubType ='SNMP'

andEngineID =_Engine ID Here_

andStatus<>'9

 

To get a list of your current engines with their ID number just simply run

selectEngineID,ServerName,IP fromEngines

Cleaning up bad hardware alerts manually

 

DECLARE@NodeID int

 

SET@NodeID =_NODE ID HERE_

DELETEFROMAPM_HardwareInfo WHERE NodeID =@NodeID

DELETEFROMAPM_HardwareCategoryStatus WHERE NodeID =@NodeID

DELETEFROMAPM_HardwareItem WHERE NodeID =@NodeID



Alerting Variables for Statistical Data


 

${SQL:selectc.Name from APM_DynamicEvidenceColumnSchema c

 

innerjoinAPM_DynamicEvidence_DetailData d on c.ID =d.ColumnSchemaID andc.ComponentID = ${ComponentID}

wherec.ThresholdWarning < d.NumericData groupby c.ID,c.Name} isinWARNING at

${SQL:selectMAX(d.NumericData)from APM_DynamicEvidenceColumnSchema c

innerjoinAPM_DynamicEvidence_DetailData d onc.ID =d.ColumnSchemaID andc.ComponentID = ${ComponentID}

where c.ThresholdWarning <d.NumericData groupbyc.ID,c.Name }



Alerting URL on HTTP Components that is being pulled

This can be used to get any of the values simply changing the [Key] condition to whatever your looking for. Also make sure you set your component type in your trigger condition to 6 to avoid non-http applications sending this alert off.


${SQL:selectValue fromAPM_ComponentSetting

  where [Key] ='Url'and ComponentID ='${ComponentID}'}




Nice Heads up Display Board

I've created 2 reports for this, Critical Items and Action Items.


This is the script for Critical Items (This also gives a status of how long its been critical)


 

selectNodeID,MAX(VendorIcon)asvimg,MAX(GroupStatus)as simg,Caption,MAX(Events.Message)as Issue,IP_Address,

 

  convert(varchar(10),(DATEDIFF(d,0,GETDATE()-MAX(Events.EventTime))))+' Days '+

  convert(varchar(10),(DATEDIFF(HH,0,GETDATE()-MAX(Events.EventTime))%24 ))+' Hours '+

  convert(varchar(10),(DATEDIFF(mi,0,GETDATE()-MAX(Events.EventTime))%60))+' Mins 'as'DD:HH:MM:SS'

  from AlertStatus WITH (NOLOCK)

innerjoinEventsWITH (NOLOCK)onSUBSTRING(CONVERT(VARCHAR,AlertStatus.TriggerTimeStamp),0,19)=SUBSTRING(CONVERT(VARCHAR,Events.EventTime),0,19)

ANDAlertStatus.ActiveObject =Events.NetObjectID

INNERJOINNodes WITH (NOLOCK)onNodes.NodeID =Events.NetworkNode

WHERE (ObjectType <>'Custom Node Poller'AND ObjectType <>'Custom Node Table Poller')

AND(

  (Events.MessageLIKE'%NO SNMP%')

  OR(Nodes.Status=2 AND(Events.EventType = 1 OREvents.MessageLIKE'%down%'))

)

groupbyNodeID,IP_Address,Caption

OrderbyMAX(Events.EventTime)DESC


SWQL Version

select '<img src=/NetPerfMon/images/Vendors/' + MAX(e.Nodes.VendorIcon) + '/>' as vimg

,'<img src=/NetPerfMon/images/small-' + MAX(e.Nodes.GroupStatus) + '/>' as simg

,'<a href=/Orion/NetPerfMon/NodeDetails.aspx?NetObject=N%3a' + ToString(MAX(n.nodeid))+ '>' + n.Caption + '</a>' as Caption

,MAX(e.Message) as Issue

,n.IP_Address

,MAX(a.TriggerTimeStamp) as AlertTime

,ToString(DayDiff(0,GETUTCDATE() - MAX(EventTime))) + ' Days ' +

  ToString(Ceiling((HourDiff(0, GETUTCDATE() - MAX(EventTime)) / 24.0 - Floor(HourDiff(0,GETUTCDATE() - MAX(EventTime)) / 24.0)) * 24 )) + ' Hours ' +

  ToString(Ceiling((MinuteDiff(0, GETUTCDATE() - MAX(EventTime)) / 60.0 - Floor(MinuteDiff(0,GETUTCDATE() - MAX(EventTime)) / 60.0) ) * 60 )) + ' Minutes ' AS DownTime

from Orion.AlertStatus(nolock=true) as a

inner join Orion.Events(nolock=true) as e on SUBSTRING(ToString(a.TriggerTimeStamp),0,19) = SUBSTRING(ToString(e.EventTime),0,19)

inner join Orion.Nodes(nolock=true) as n on n.NodeID = e.NetworkNode

inner join Orion.NodesCustomProperties(nolock=true) as nc on nc.NodeID = n.NodeID

AND a.ActiveObject = e.NetObjectID

WHERE (a.ObjectType <> 'Custom Node Poller' AND a.ObjectType <> 'Custom Node Table Poller')

AND (n.Status = 2 AND (e.EventType = 1 OR e.Message LIKE '%down%'))

group by n.IP_Address,n.Caption



This is the script for Action Items

 

Select

Nodes.NodeID,Nodes.GroupStatus ,Nodes.VendorIcon,Nodes.Caption,TriggerTimeStamp,Message,EventTime,Nodes.IP_Address,Nodes.CRM_Account

from AlertStatus WITH(NOLOCK)

innerjoinEventsWITH(NOLOCK)ONDATEADD(MINUTE,DATEDIFF(MINUTE,0,AlertStatus.TriggerTimeStamp),0)=DATEADD(MINUTE,DATEDIFF(MINUTE,0,Events.EventTime),0)

      ANDCONVERT(varchar(255), AlertStatus.ActiveObject)=convert(varchar(255),Events.NetObjectID)

INNERJOIN Nodes WITH(NOLOCK)on Nodes.NodeID =Events.NetworkNode

UNION

Select

Nodes.NodeID,Nodes.GroupStatus ,Nodes.VendorIcon,Nodes.Caption,TriggerTimeStamp,Message,EventTime,Nodes.IP_Address

from AlertStatus WITH(NOLOCK)

leftouterjoin CustomPollerStatusTable as cps WITH(NOLOCK)on cps.UniqueID = AlertStatus.ActiveObject

Leftouterjoin CustomPollerAssignmentView as cpa WITH(NOLOCK)onconvert(varchar(255),cpa.CustomPollerAssignmentID)= AlertStatus.ActiveObject

innerjoinEventsWITH(NOLOCK)ONDATEADD(MINUTE,DATEDIFF(MINUTE,0,AlertStatus.TriggerTimeStamp),0)=DATEADD(MINUTE,DATEDIFF(MINUTE,0,Events.EventTime),0)

      AND( cps.NodeID =Events.NetworkNode

                  OR

            cpa.NodeID =Events.NetworkNode

           )

INNERJOIN Nodes WITH(NOLOCK)on Nodes.NodeID =Events.NetworkNode

WHERE  Nodes.Status<> 9

AND AlertStatus.Acknowledged <> 1



SWQL Version

Select '<img src=/NetPerfMon/images/Vendors/' + ToString(n.VendorIcon) + '/>' as Vendor

,'<a href=/Orion/NetPerfMon/NodeDetails.aspx?NetObject=N%3a' + ToString(n.nodeid)+ '>' + n.Caption + '</a>' as Node_Name

,'<img src=/NetPerfMon/images/small-' + ToString(n.GroupStatus) + '/>' as Status

,e.Message

,ToLocal(e.EventTime) as EventTime

,n.IP_Address as IP_Address from Orion.AlertStatus(nolock=true) as a

inner join Orion.Events(nolock=true) as e on MINUTEDIFF(0,a.TriggerTimeStamp) = MINUTEDIFF(0,e.EventTime) AND ToString(a.ActiveObject) = ToString(e.NetObjectID)

inner join Orion.Nodes(nolock=true) as n on n.NodeID = e.NetworkNode

inner join Orion.NodesCustomProperties(nolock=true) as nc on nc.NodeID = n.NodeID

n.Status NOT IN  (2,9)

AND a.Acknowledged <> 1



That's all I can muster at the moment while trying to get some work done but I will try to update this as often as possible.


APC SmartUPS Universal Device Pollers

Node SLA Availability Report Last Month

Node SLA Availability Report - Last Month - Business Hours/Days

Monitoring 101

$
0
0

Despite the relatively maturity of monitoring and systems management as a discrete IT discipline, I am asked - year after year and job after job - to give an overview of what monitoring is.

 

This document was my attempt to address that question in a more structured form.

 

Originally intended as guide to help bring new team members (often fresh out of college or a technical program) up to speed with monitoring concepts quickly, this document (or portions of it) can serve as a good introduction for a variety of audiences.

 

Excerpt:

"If you have worked in the IT field for more than 15 minutes, the situation described above is neither unique nor rare, even if it is somewhat colorful. Systems crash unexpectedly, users make bizarre claims about how “the internet is slow”, and managers ask for historical statistics that leave you scratching your head wondering how to collect in a way that is meaningful and doesn’t consign you to the hell of hitting “refresh” and writing down numbers on a paper for half a day, just to get a baseline for a report.

The answer to all these challenges lies in effectively monitoring your environment – collecting statistics and/or checking for error conditions so that you can act or report effectively when needed."

NimbleStorage.UnDP

Viewing all 1956 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>