WebMon: A SCOM Management Pack for Basic Web Site Monitoring, Configured with a Single XML File, Part II

The WebMon URL Monitoring management pack that I described in the previous post, can be downloaded here.    Notes on deploying and configuring the MP are as follows:

Overview:

This management pack for SCOM 2007, is intended to provide basic web monitoring for multiple web sites while being very easy to deploy.   All configuration for each monitored URL is performed by editing a single XML file on the Watcher Node.   The management pack implements three classes:  1) WebMon Watcher Node, which hosts 2) WebMon Request and 3) WebMon Secure Request classes.   The Request and Secure Request classes are identical, except the Secure Request class utilizes NTLM/Integrated authentication through a RunAs profile.   The monitors and rules implemented are as follows (for each of the two request clasess):

  • Monitors:
    • DNS Resolution Failure
    • Status Code (greater than a threshold)
    • Reachable
    • Error Code
    • CA Untrusted
    • Certificate Expired
    • Certificate Invalid
    • Response Time (greater than a threshold)
  • Rules:
    • Response Time Performance Collection

The monitors are rolled-up into an aggregate monitor used for alerting for each Request class.   A set of views are also created under the Web Application folder in the Monitoring section of the SCOM console.  These include state views for the Watcher Nodes, two Request classes, and a performance view displaying the historical response time for all requests. 

The advantage of this management pack over the SCOM the Web Application monitoring implementation for basic web monitoring is that it can be rapidly deployed and configured by simply editing the XML configuration file. 

Deployment and Configuration:

To deploy the WebMon URL Monitoring Management Pack:

  • Copy the sample webmonconfig.xml to a location on a local disk drive of each node intended to be a watcher node (the default path is C:\webmon\webmonconfig.xml)
  • Edit the configuration file with the desired settings (see the XML configuration section below)
  • Import the WebMon.xml file using the Import Management Pack function in the Operations Manager console, under administration
  • Access the Authoring section of the Opeartions Manager console, click the Change Scope link and limit the scope to WebMon Watcher Node. 
  • Right click the “WebMon Discovery” object under “Discovered Type: WebMon Watcher Node,” and choose Overrides->Override the Object Discovery->For a Specific Object of Class: Windows Server.   Select the server designated as Watcher Nodes, and override the object discovery to be “enabled.”
  • If the webmonconfig.xml file is deployed to a non-default location, override the script arguments and update the first parameter (c:\webmon\webmonconfig.xml) to reflect the actual script location.
  • The default interval for the object discovery is 15 minutes.  If this needs to be changes, edit the properties of the WebMon Discovery object, and adjust the schedule accordingly. 
  • If any sites are to be monitored with NTLM/Integrated authentication, a RunAs Profile must be configured.
    • Create a new RunAs account to be used by the watcher node, or determine an existing account to use.  
    • In the Administration section of the Operations Manager console, click RunAs Profiles.  Edit the properties of the WebMon Request RunAs Profile. 
    • Assign a RunAs account for the designated Watcher Node

Configuration

All configurable elements of the WebMon URL Monitoring Management Pack can be set in the webmonconfig.xml on the Watcher Node.   Multiple requests can be defined in the configuration file by adding another <request/> element.   The discovery script performs some basic validation, but the XML configuration should be edited carefully in order to prevent inadvertent errors due to invalid configuration.

The XML configuration file looks like:

 <?xml version=”1.0″ encoding=”utf-8″?>
<webmonconfig>
  <requests>
    <request>
      <requesturl>http://www.google.com</requesturl&gt;
      <responsetimethreshold>10</responsetimethreshold>
      <retrycount>1</retrycount>
      <pollinginterval>300</pollinginterval>
      <statuscodevalue>399</statuscodevalue>
      <usentlm>false</usentlm>
    </request>
    <request>
      <requesturl>http://www.microsoft.com</requesturl&gt;
      <responsetimethreshold>15</responsetimethreshold>
      <retrycount>0</retrycount>
      <pollinginterval>180</pollinginterval>
      <statuscodevalue>399</statuscodevalue>
      <usentlm>false</usentlm>
    </request>
    </request>
  </requests>
</webmonconfig>

The configuration elements are:

requests/request

  • requesturl:  the URL of the request, either http:// or https://
  • responsetimethreshold:  the response time threshold in seconds , if this is surpassed, a warning alert will be generated
  • retrycount:  the number of attempts to retry the request, 0 or greater
  • pollinginterval:  the interval in seconds between requests
  • statuscodevalue;  an error alert will be generated if the reponse status code is greater than this value
  • usentlm:  input true for this value if the site requires NTLM authentication.  The credentials used are defined in the WebMon Request URL RunAsProfile

Using the Management Pack

For both the WebMon Request and WebMon Secure Request classes, aggregate monitors are configured to generate alerts if any of the monitors trigger a warning or error health state.   Health states can be viewed in the Monitoring section of the Operations Manager Console, under the Web Application\WebMon URL Monitoring folder.   The views include state views for the WebMon Watcher Node, WebMon Request, and WebMon Secure Request classes as well as a view to display the collected response time data for all of the URL requests.  While overrides on the individual monitors can be configured, configuration should be performed in the webmonconfig.xml file. 

Notes on Editing the Management Pack

Prior to editing the management pack, please reference the link below to read more about the design of this management pack.   Due to some issues with the way the Authoring Console handles MonitorTypes and the use of variables in some configuration elements, all edits should be made in an XML editor. 

Support and More Info

This management pack is provided as-is, with no implied or explicit warranty.    For more info about the design and development of this management pack, reference:  https://operatingquadrant.com/2009/08/22/webmon-a-scom-management-pack-for-basic-web-site-monitoring-configured-with-a-single-xml-file-part-i/

Advertisements

About Kristopher Bash
Kris is a Senior Program Manager at Microsoft, working on UNIX and Linux management features in Microsoft System Center. Prior to joining Microsoft, Kris worked in systems management, server administration, and IT operations for nearly 15 years.

17 Responses to WebMon: A SCOM Management Pack for Basic Web Site Monitoring, Configured with a Single XML File, Part II

  1. John Bradshaw says:

    Thankyou again Kris. Your work is very helpful.
    One extra thing which would be helpful in this MP is provision for a Description or Name field for each entry. Sometimes the URL is not meaningful (especially after a few weeks of not needing attention).
    Cheers,
    John Bradshaw

  2. Phillip says:

    Yes, Thankyou Kris.

    I do have a question on the response time performance chart…. Can you please tell me what the value in time are: 0, 2, 4, 6, 8 etc? Is it seconds?

    cheers!
    Phillip

  3. Md Azam says:

    Thanx for the MP Kris,

    I have a small problem, after exporting the MP as per the doc and open the authoring section but i didnt find the “webmon Discovery” object under the webmon watcher node.

    can you please tell me where i went worng.

    regards

  4. Siddharth says:

    Hi, I have used and applied the WebMon MP in my PROD SCOM 2007 R2. I am seeing URLs showing Not Monitored State under WEBMON SECURE REQUEST TEST and seems due to this Alerts are not getting generated. Can you please throw some light to resolve the issue.
    Note: All URLs configured under webmonconfig.xml are appearing under Monitoring. But Alerts are not getting generated for URL going donw and so the emails..Please help.

  5. Christian says:

    Hi Kris,

    this MP is exactly what I was looking for. Anyways I was wondering if it’s possible to set a wait Time between each retry.

    Thanks in advance

    Christian

  6. Jason Scott says:

    Hi Kris

    great MP solves a lot of admin from my point of view, one issue i did have is that all of my environment is behind a firewall and all access to the internet is via our proxy. do the webmon requests leave via the default gateway on the server? or can the webmonconfig.xml be configured to go via a proxy server?

  7. Jason Scott says:

    Kris

    I have tried sealing your mp using the steps from http://blogs.technet.com/b/jonathanalmquist/archive/2008/08/19/seal-a-management-pack.aspx this works fine but then when i go to import it fails with the follow error:

    WebMon URL Monitoring could not be imported.
    If any management packs in the Import list are dependent on this management pack, the installation of the dependent management packs will fail.
    The requested management pack was invalid. See inner exception for details.
    Parameter name: managementPack

  8. Damir says:

    Hi Kris!

    Just wondering if it is possible to extend it by adding the content check of some kind. Like ” and alert if/not present

  9. dk says:

    hi all,

    someone please let me know how do we go about the installation. im a newbie. really need to test this.

    Thanks

  10. Jeremy Stevens says:

    Kris,

    Can this management pack crawl a website for specific words and if found through the alert? Similar to what I can do with the default one provided by SCOM. Difference with this one is I can put retry intervals in place, which I need.

    Thanks,

    Jeremy

  11. JB says:

    What is the diff between this and the IIS Mps from MS?

  12. John Anthony says:

    Great script – very easy to use and setup.

    Would find it useful to add in a true display name for each of the sites watched. Currently the WebMon Request State view simply repeats the “Request: “. Would like to add a meaningful description if possible?

    Thanks
    John

  13. manish says:

    hi,
    when my URL is running fine. the monitor is not resetting its state. is that intended behaviour.

    Thanks
    Manish

  14. Cory says:

    I am getting a 401 error (after setting the run as account) and the iis logs show that the user trying to connect is the machine account. Something doesnt seem to add up here.

  15. corymckee says:

    I am getting 401 errors (in the IIS log) and the script is trying to log on with the machine account. I have set the service account in the run as profile but this doesnt seem to matter. Am I doing something wrong?

  16. I have noticed that you don’t need a secure reference on the data source module. It doesn’t matter under which context the Url Probe runs, as long as the ProxyAuthenticationScheme and/or AuthenticationScheme reference the correct account. This is really nice, and makes it possible to implement different credentials for each authentication scheme on the same module.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: