Answered Repeat alert for Server Down

  • Tuesday, December 11, 2012 12:04 AM
     
     

    Hi,

    For 2012 (or even 2007R2) is there a way to get repeat alerts if a server is down?

    Thx,

    John Bradshaw

All Replies

  • Tuesday, December 11, 2012 1:35 AM
     
     

    scom has two monitor health service heartbeat and machine pingable monitor to monitor whether the server is down but it is not send repeat alert.

    One of the way is to create a custom pingable alert rule which we generate alert when a service is not pingable.

    Roger

  • Tuesday, December 11, 2012 8:49 AM
     
     Answered

    By design this is not possible as microsoft hopeless guy already pointed out.

    There are 2 things which you could do:

    1. Put the servers automatically in maintenance mode for 15 minutes once a day. This will cause all the monitors to be recalculated when they get out of maintenance mode and will alert again when the machine is still down. But this is more of a brute force approach.

    2. A far more gentle approach is to use powershell to reset the health of the monitor via a scheduled task or a timed rule. A nice example can be found here: http://www.blogmynog.com/2010/12/08/resetting-logical-disk-fragmentation-monitor-via-powershell/

    This particular example is closing the logical disk fragmentation but can be easily adapted to reset both health service heartbeat failure and Computer not reachable monitors.

     


    It's doing common things uncommonly well that brings succes.

    • Marked As Answer by bradje Wednesday, December 12, 2012 7:51 PM
    •  
  • Tuesday, December 11, 2012 9:11 AM
     
     
    Hi, dont recommend to create additional alerts in Console to achieve this goal expecially if you have a lot of servers, a lot of server down situation and need frequently repeat similar alert (twice or more). If you need to be informed in that situation ..Better to get all alerts you are interested (with server is down) (via schedulated PS script) and send them to e-mail as many times as you need... but why to fill SCOM Console with the same alerts? increasing SCOM DBs and slowing many procesess..
  • Tuesday, December 11, 2012 7:33 PM
    Moderator
     
     Answered

    Would agree with Alexis although I'd go the Orchestrator route (I'll get you to deploy sooner or later John!).

    Would be very straight forward to setup.

    1) A schedule activity e.g. every hour

    2) A get alert activity from the SCOM IP - http://technet.microsoft.com/en-us/library/hh830713.aspx 

    - title = Name of the alert e.g. Health Service Heartbeat Failure or Failed to Connect to Computer with a resolution state of 0 (New)

    3) SMTP mail activity - you can either send a mail per alert or flatten the results and one email with a list of the servers with the problem.

    Cheers

    Graham 


    Regards Graham New System Center 2012 Blog! - http://www.systemcentersolutions.co.uk
    View OpsMgr tips and tricks at http://systemcentersolutions.wordpress.com/

    • Marked As Answer by bradje Wednesday, December 12, 2012 7:50 PM
    •  
  • Wednesday, December 12, 2012 7:50 PM
     
     

    Thx all.

    For now I'm just going to set a rule on the server service. orchestrator may yet win the day though :)

    JB

  • Wednesday, December 12, 2012 9:00 PM
     
     Answered

    I use a PowerShell script ran every 5 mins as a scheduled task to remind our guys that a web site is down.

    Works perfectly. No Orchestrator necessary at all.

    #Script to Set WebMon alerts to new
    Add-PSSnapin "Microsoft.EnterpriseManagement.OperationsManager.Client" -ErrorVariable errSnapin;
    Set-Location "OperationsManagerMonitoring::" -ErrorVariable errSnapin;
    new-managementGroupConnection -ConnectionString:'YOUR-RMS-SERVER'  -ErrorVariable errSnapin;
    set-location 'YOUR-RMS-SERVER'  -ErrorVariable errSnapin;

    #Simple WebMon Alerts
    $SimpleAlerts = get-alert -criteria "ResolutionState=0" | where-object {$_.MonitoringObjectName -like "http*" -and $_.MonitoringObjectPath -eq "YOUR-RMS-SERVER"}
    if($SimpleAlerts -eq $null){"No Alerts Exist"} else{ForEach($Alert in $SimpleAlerts){$Alert.Update("")}}

    #Complex WebMon alerts
    $ComplexAlerts = get-alert -criteria "ResolutionState=0" | where-object {$_.MonitoringObjectFullName  -like "WebApplication*"}
    if($ComplexAlerts -eq $null){"No Alerts Exist"} else{ForEach($Alert in $ComplexAlerts){$Alert.Update("")}}

    • Marked As Answer by bradje Thursday, January 03, 2013 6:40 PM
    •