URLGenie Management Pack for SCOM - An Easy, Powerful Solution for Bulk Website Monitoring

 

2018.12.10: Version 2.0.0.36 available. Fixed the clientcert group population.
2018.10.23 Update: Version 2 now available!  

Current version: 2.0.0.36 (this does require a rip and replace of previous versions before v2.x) Management pack and Guide available for download here. (the guide has been fully updated )

 

Let me start by first saying that I was inspired to start this project after dissecting a very cool solution by Kristopher Bash. Without this excellent example, I would have never set out on this authoring journey.

A few years ago I was working for a large eCommerce company and I was responsible for monitoring a very large number of sites. I was tired of using the slow and cumbersome (although complex and powerful) built-in Web Application Transaction Monitoring wizard and wanted something faster and easier. My MCS buddy, Boklyn, suggested WebMon. Although that solution is definitely streamlined, I needed to be able to post SOAP messages to web services using authentication in addition to testing forms-based logins. I decided to build my own solution. This MP has been a work in progress for over 2 years. I have been slowly chipping away at my lengthy "to do" list for this pack only when my schedule would allow. The hardest part was finding the time to build a lab in Azure, followed by load testing, followed by extensive documentation with tutorials. After no small amount of testing, I finally feel like it's ready for the community to use. See the MP guide for tutorials and load testing results. I hope this management pack makes your life easier. Enjoy.

Overview

The URL Genie Management Pack provides a fast and easy way to implement monitoring for a large numbers of URL instances from only a few instances up to many thousands! In addition there are some special features which allow monitoring sites which require client certificates in addition to pages that use forms-based authentication. With URLGenie you can easily configure monitoring for thousands of standard URL instances in less than a minute.

The URL instances and their respective monitoring criteria get instantiated on any number of “watcher” nodes from one or more XML configuration files. Any managed Windows computer can be activated as a watcher node with a simple Console task during which the watcher nodes get configured with a path to where it should look for configuration files. There can exist any number of configuration files, each with any number of requests defined within. Typically the configuration files will be centrally located in a single shared network folder. A decent place for the shared configuration folder is on management server or the data warehouse server with all watcher nodes configured with the same shared folder path. This is the most simple and scalable configuration.

*Please make note of the supported limit of URLs here.

There are standard monitors which target the http and https class types. Each individual monitor will alert with plenty of alert specific context information. This is significantly different than the Operations Manager standard Web Availability or Synthetic Transaction monitoring which will only alert on the rollup and contain no specific or useful alert context information.

The standard monitors all support the various types of http authentication: None, Basic, NTLM, Digest, and Negotiate. In addition, there are special monitor types which can be enabled for URLs that require a client certificate or even for web sites that use forms-based authentication, a first for SCOM (to my knowledge)!

 

Setup Overview: (from the URLGenie Management Pack Guide)

  1. Import Management Pack
  2. Decide where you want to store your configuration files. URL instances get discovered from one or more configuration files. You can store files locally on each watcher node but my suggestion is to create a shared folder on your management server, data warehouse server, or other file server where you can read/write your configuration files. This way any URL instances that you define in your configuration files can be discovered by any/all watcher nodes depending on how you configure the <watchers> tags. See Parameters and Instance Properties section of the MP Guide.
  3. Activate 1 or more Watcher nodes. See "URLGenie EnableWatcherNode" task section of the MP Guide. Use the path from step 2 above.
  4. Create one or more configuration files. See Configuration File Examples section of the MP Guide. Once you activate 1 or more Watcher nodes, the instance discovery (http) will run on the activated Watcher node(s). The discovery will attempt to gather instance info from the config files (if the <watchers> tag matches the server name), then create the URL instances which will become automatically monitored within a few minutes after the group population workflows complete. Https discovery will occur once the initial http instances have been discovered.
  5. Profits.

 

Monitors

URLGenie DNS Resolution Failure Monitor
URLGenie Reachable Monitor
URLGenie Certificate Expires Soon Monitor
URLGenie Error Code Monitor
URLGenie Certificate Expired Monitor
URLGenie Status Code Monitor
URLGenie IE Login Scripted Monitor
URLGenie Scripted Monitor
URLGenie Content Monitor
URLGenie Certificate Invalid Monitor
URLGenie CA Untrusted Monitor
URLGenie WatcherNode ConfigFile Path Test Monitor
URLGenie Response Time Monitor

URLGenie Watcher Request Dependency Monitor
URLGenie Aggregate Health Monitor

Rules

URLGenie Scripted Request ResponseTime Collection Scripted PerfRule
URLGenie HTTP ContentSize Collection PerfRule
URLGenie HTTP Scripted IE Login ResponseTime Collection Scripted PerfRule
URLGenie HTTP DNS Resolution Time Collection PerfRule
URLGenie HTTP Days to Certificate Expiration PerfRule
URLGenie HTTP Time To Last Byte Collection PerfRule
URLGenie HTTP Download Time Collection PerfRule
URLGenie HTTP Time To First Byte Collection PerfRule
URLGenie HTTP ResponseTime Collection PerfRule

 

Screenshots

Load test with 6000 URL instances on one watcher node; a management server. Configured in minutes. (see MP guide for more detail)

 

 

Enable Watcher Node

1)  Execute EnableWatcherNode task

 

2)  Watcher node activation success

The output is verbose but we are looking for the success and verification of the config file path as shown below.

 

3) Watcher node is discovered.

 

Generate Configuration File

1) Start with a basic text file of URLs/addresses

 

2)  Run the task to generate the config file from this basic list.

 

3)  Config file is created successfully

 

4)  The configuratoin file is created with default parameters. Feel free to modify the settings as needed.
Notice the <watchers> tag contains "MS02". Any watcher nodes that contain "ms02" (not case sensitive) in their name (FQDN) will be able to discover these instances.

 

URL Instances

 

 Health Explorer

 

 

Critical Context Info

 

 

Alert View

 

 

Get Certificate Info Task (for https instances)

 

Forms Login Test

The Scripted IE Login monitor is able to simulate a login, even a 2-page login sequence (1:username, 2:password) like the example below.

Overview: To configure the IE Login Scripted Monitor

You will need to find the HTML IDs of the elements designated below. You can find the element IDs by enabling “developer mode” (Internet Explorer: F12, Chrome: CTRL+SHFT+I ) and selecting the objects to find the section of source code that defines the element properties. See the management pack guide for full tutorial.

Developer Mode (Internet Explorer)

Once you identify the form fields and buttons, you can override the monitor with the necessary values.

 

Below is an example of a login test with a TWO URL sequence:
https://login.live.com/login.srf^https://account.microsoft.com/devices

The first URL will open the login page (the first of two login pages; 1 for username, 2 for password).
The second URL is the actual target page that will be monitored for a content match: "find my device".

 

Forced content match error:

 

IE Login Test ContentMatch Failure Alert

The alert description indicates that the login test was successful but there was a content match error.

 

IE Login Monitor Healthy

After the ContentMatch field is set to a value that is expected to appear on the target page, the monitor returns to healthy and you can see the expected site text in the context area of Health Explorer.

 

 

 

 

 

 Example Email Notification (See this blog post for more details)

 

Severity: Critical Error

Severity:

Critical Error

Alert Description:

Content Validation Error

Monitor Settings:URL: https://www.qnap.comContentMatch String: hGroupID: URLGenie_DefaultDNSResolutionTime: 0Interval: 300RetryCount: 1Wiki: No link providedDescription: URL address to monitor.******* Request Headers *******GET / HTTP/1.1User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT; Windows NT 6.1; en-US)Content-Type: text/xml;charset=utf-8Accept-Language: en-USAccept-Charset: utf-8From: SCOM@yourdomain.comConnection: Keep-Alive******* End Request Headers ************** Response Headers *******ResponseHeaders: HTTP/1.1 200 OKConnection: keep-aliveDate: Sat, 09 May 2015 00:09:25 GMTContent-Length: 1996Content-Type: text/html; charset=UTF-8Last-Modified: Tue, 21 Apr 2015 13:25:30 GMTETag: "4236f2-7cc-5143bfafc0680"Server: Apache******* End Response Headers *******

Command Channel:

MyDev

Source:

https://www.qnap.com

Path:

MS02.Contoso.com;\\Db01.contoso.com\scom_do_not_touch\URLGenie

Principal Name:

MS02.Contoso.com

Alert Name:

HTTP Request Error: Content Validation Error

Alert Resolution State:

New (0)

Alert Monitor Name:

URLGenie Content Monitor

Alert Monitor Description:

None

Time Raised:

5/8/2015 5:09:25 PM

Alert ID:

b1980341-a92d-453a-8fa7-75bc8e8fc003

SCOM Operations Console Info:

Operations Console Login Info

Web Console

Research It:

Bing It!

ADMIN DIAGNOSTIC INFO

--------------------

**Use this command to view the full details of this alert in SCOM Powershell console:

get-SCOMalert -Id "b1980341-a92d-453a-8fa7-75bc8e8fc003" | format-list *

This email sent from:

MS01.Contoso.com

CF1: Alert.NetBIOSName:

MS02

CF2: Alert.NetBIOSDomain Name:

CONTOSO

CF3: Alert.PrincipalName:

MS02.Contoso.com

CF4: SubscriberList:

Subscribers:TEST Subscriber;

CF5: Management Pack Name:

URLGenie Management Pack

CF6: Alert Class Name:

URLGenie.HttpRequest

CF7: Alert.Category

AvailabilityHealth

CF8: Workflow Type

MONITOR

CF9:

RESERVED

CF10: Helpful POSH Command

get-SCOMAlert -ID "b1980341-a92d-453a-8fa7-75bc8e8fc003" | format-list *

Context: Note: This context data is only relevant to the moment/time at which this alert was sent.

type : Microsoft.SystemCenter.WebApplication.WebApplicationDatatime : 2015-05-08T17:09:25.0005666-07:00sourceHealthServiceId : 120875E8-C79E-91CA-E3AC-EA09A391F4BDRequestResults : RequestResultsTransactionResponseTime : 0.0024875TransactionResponseTimeEvalResult : 0CollectPerformanceData : CollectPerformanceData

Knowledge Article:


Summary

The context information for these alerts is not always helpful. To see more detailed information about this alert log into the console for the management group.

Wiki


Note:

The context information provided in this notification is limited and is not always helpful. To see more detailed information about this alert, log into the appropriate SCOM console for the applicable datacenter (SCOM management group) and use the Health Explorer to find more details about the state change event for the object.

 

 

 

Please let me know if you have any suggestions for improvements.

Page History:

2018.10.23: Updated screenshots and content to reflect the version 2 updates.

2017.3.16.1330: Added updated MP version info.

2015.11.6: Fixed a typo.

Comments

  • Anonymous
    June 03, 2015
    Thanks, Tyson! Looks like a very useful solution. I'll be trying this out very soon!

  • Anonymous
    June 22, 2015
    Hi Paul, I'm using (or better want to use ;) )  a Windows 7 machine as a watcher node, even after Updating PowerShell to V 3.0 I'm not able to add the windows 7 machine as a watcher (Still gives the error wrong PowerShell version) I know this is a know SCOM issue (you need to start PowerShell again from the SCOM script) , but as it works on the servers; I'm not sure if it is the same issue. Greetings Marc

  • Anonymous
    June 24, 2015
    @Powershell Guy: I've run into this problem before with another client. They were able to update the Windows Management Framework to v4.0 on the Windows 7 machine, and this solved the problem. www.microsoft.com/.../details.aspx Please let me know your findings. If you still encounter problems, please email screenshots to me.

  • Anonymous
    July 06, 2015
    Thanks. Will be testing this soon.

  • Anonymous
    July 23, 2015
    Looks really good but i'm having trouble with a scripted IE monitor trying to log into a forms authenticated site  - the submit button doesn't have an ID just <input name="login" class="submit button-1" type="submit" value="Login"> Is there any way to get this to work?

  • Anonymous
    July 27, 2015
    PaulO,   I've run into this before and I was able to get it to work correctly by simply using the input name which, in your case, is "login".  Let me know if you still have problems. -Tyson

  • Anonymous
    July 28, 2015
    Thanks Tyler, I gave that a shot, still no joy the page being returned is the login page (rather than the logn failed try again page). Just to rule out the login profile I overrode the username/password in the monitor to the actual strings  (still no good). Just to make things harder I'm trying to monitor a service that is hosted by a third party so I don't have access to access logs - I suspect i'll be firing up fiddler or similar on watcher node. Cheers PaulO

  • Anonymous
    July 28, 2015
    PaulO,   Can you try to see if you have Mshtml.dll registered correctly on your watcher node? Try running this command from an elevated Powershell console: Get-ChildItem C:Windows -include "Microsoft.mshtml.dll*" -Recurse

  • Anonymous
    July 28, 2015
    Thanks again Tyler, Output is below  - the probe is honouring the contnetmatch  - so I suspect this isn't the problem PS C:Windowssystem32> Get-ChildItem C:Windows -Include "Microsoft.mshtml.dll" -Recurse    Directory: C:WindowsassemblyGACMicrosoft.mshtml7.0.3300.0__b03f5f7f11d50a3a Mode                LastWriteTime     Length Name ----                -------------     ------ ---- -a---        15/05/2015  10:32 AM    8013664 Microsoft.mshtml.dll Cheers, Paul O

  • Anonymous
    August 21, 2015
    The comment has been removed

  • Anonymous
    September 01, 2015
    if i need to monitor the url via proxy, how can i configure it

  • Anonymous
    September 01, 2015
    Steven,  See the management pack guide. I've copied/pasted some of the configuration file element definitions below. You must configure these within the configuration file(s).Proxy [string, URL]Default: <blank>Description: Optional. Address of your proxy server.ProxyAuthenticationScheme [string] <"None" | "Basic" | "Digest" | "NTLM" | "Negotiate">Default: "None"Description: If authentication method other than None is used, you will have to specify a username (see ProxyUser) and also configure a Basic account type in the Console, then assign that account to the object instance with the "URLGenie Proxy Account".ProxyPass [Basic Account Type, configured in the Console]Default:Description: THIS IS NOT CONFIGURED IN THE .XML CONFIG FILE. However, this parameter is overrideable for most monitors. If ProxyAuthenticationScheme authentication method other than None is used, you will have to specify a username (see ProxyUser) and also configure a Basic account credential type in the Console, then assign that account to the object instance with the URLGenie Proxy Account profile. Only the password from this credential object is used.ProxyUser [string]Default: <blank>Description: Username for use with Proxy authentication. Note: the password must be configured in the Console with a Basic Account type. Here is an example of what your elements might look like in the configuration file when using a proxy with NTLM:<url><![CDATA[http://www.somewebsite.com]]></url>......<proxy><![CDATA[http://proxy.contoso.com:8080]]></proxy><proxyauthenticationscheme>NTLM</proxyauthenticationscheme><proxyuser>contosoksmith</proxyuser>     You would create a Basic Account:name: KSmith Proxy Access Accountusername: <doesn't matter, use anything>password: <password for domain user account: contosoksmith >The domain user account "KSmith" must exist in Active Directory.Add the "KSmith Proxy Access Account" to the URLGenie Proxy Account profile and apply it to the Object:http://proxy.contoso.com:8080 http://www.somewebsite.com Here's an example of what your elements might look like in the configuration file when using a proxy with no authentication (None).<url><![CDATA[http://www.somewebsite.com]]></url>......<proxy><![CDATA[http://proxy.contoso.com:8080]]></proxy><proxyauthenticationscheme>None</proxyauthenticationscheme><proxyuser></proxyuser>    

  • Anonymous
    September 02, 2015
    it is a must to include <![CDATA? . my proxy is not in internet url format.

  • Anonymous
    September 02, 2015
    @Steven:  CData is not required but is helpful when your URL contains special characters.

  • Anonymous
    September 02, 2015
    The comment has been removed

  • Anonymous
    September 02, 2015
    i can't get it working with or withput CData. How long would it take effect after edited the .xml. The proxy is with None authentication.

  • Anonymous
    September 03, 2015
    @tyson, i still not able to get it working for proxy and web which require password by follow the guide

  • Anonymous
    September 03, 2015
    @Steven:  Use the "Email Blog Author" link above and I will do my best to assist you directly via email.

  • Anonymous
    October 27, 2015
    First off, this is GREAT!  Being able to whip up monitoring on a list of URLs almost instantly is a huge time saver.  I have a question regarding monitoring the same URL multiple times though.  I have multiple websites that are hosted on multiple servers for redundancy.  So I'd like to check Website A and Website B both on Server 1 and Server 2.  How I currently have it setup is to check "http://Server1" and send the HOST header of "www.WebsiteA.com" on 1 request and "www.WebsiteB.com" on another.  It looks like the URL Genie views this as 2 checks for the same URL so it only sends 1.  Example being I see the monitor for Website B on Server 1, but not for Website A. Is there a better way of doing this, or a way of doing this at all?  Any help would be great.  Thanks so much!

    • Anonymous
      June 22, 2016
      Keegs, Is this still an issue for you? If so, let me know.
      • Anonymous
        August 24, 2016
        @Tyson.Paul yes this is still a thing. Any help would be much appreciated.
        • Anonymous
          August 24, 2016
          @Keegs, Will you please send me your email address by using the "contact author" link that should be somewhere on this page? I have a solution for you.
          • Anonymous
            August 24, 2016
            Huh. Just got home and tried to find the "contact author" link. It no longer seems to be available after the recent blog migration. You can find my contact info at the top of the management pack guide. Send me an email. I can help.
  • Anonymous
    November 16, 2015
    Great tool thx, it could save us a lot of time :-) The only challenge we have is, that it seems that the "retry count" doesn't seem to work. We expected with the setting in the xml, for a url :

  • Interval: 120
  • RetryCount: 3 that a alert will not be fired until the watcher node measures 3x unavailability (with a interval of 120 seconds) In our environment, with this setting, a alert is generated directly (after first sample), so it seems it ignores the "RetryCount" setting... As a result our dashboard has to much alerts, without having a serious problem, because it happens often that it misses a sample (reboot etc.) We only would like a alert if there is a real problem. Are you aware of this problem, or do we miss something. Thanks for your help and keep up the good work!
  • Anonymous
    November 17, 2015
    @Marcel,   The retry count problem is a known bug in the underlying module.

  • Anonymous
    November 17, 2015
    @Paul Thanks for your quick answer, unfortunately it's not the answer we hoped for :o) Is there any development going on for the urlgenie pack? Can it be fixed within the pack, or can we better focus on another solution? thx again!

  • Anonymous
    November 17, 2015
    Trying to find if I can monitor for statuses >399.  I need to monitor a subset of sites that use IP filtering, and I need to see anything more than 399 as a success, rather than a failure, is this possible? Thanks

  • Anonymous
    November 17, 2015
    @Marcel,   Unfortunately it is the product group that must fix the underlying code of the module. When I get a chance I'll revisit that issue and see if I can get update on the bug status.

  • Anonymous
    November 17, 2015
    @Hales,  I can look into other possibilities but as of now the comparison logic will only use > for an error detection. Ping me next month and I may have good news for you.

    • Anonymous
      August 24, 2016
      @Hales, I've been working on porting over the MP into VSAE. I'm about halfway done. So far I've added some improvements: scripted monitor, unique instance names, and working on the "retry count" issue.
  • Anonymous
    November 25, 2015
    Also, using the IE scripted login - is there a way to handle ADFS logins? i.e: Go to a website, click on a button, authentication pops up redirecting through ADFS before reaching page

  • Anonymous
    November 26, 2015
    @Paul. great MP. We now have 98 URL's to monitor. All "simple" URL-checks. So far so good. Now we need to insert 15 URL's that need a client-side certificate. I extracted the thumbprint and entered it into the xml-entry. unfortunately there's an error. No certificate found on server... Provider of the certificate is 100% sure it's the right certificate... Any idea??? Grtz.  Rene

  • Anonymous
    December 09, 2015
    @Paul - And one final thing, is there any way for changing the display name so it's not just the URL? Thanks

  • Anonymous
    December 12, 2015
    @Hales:   Nope. However, you can use the "Description" field for this purpose.

  • Anonymous
    December 12, 2015
    @Rene: Override the workflow, set WriteToEventLog parameter to 2 then check the event log on the watcher node for more detail.

  • Anonymous
    January 21, 2016
    Why is my watcher node trying to connect to 93.184.221.200? Aliases:  download.gigabyte.eu          gigabytestorage.azureedge.net          gigabytestorage.ec.azureedge.net

    • Anonymous
      August 24, 2016
      @Dave, I have no idea. It's not related to URLGenie unless you're watching some site at that address.
  • Anonymous
    January 21, 2016
    Paul, sorry for the late respone..Due to other work, I wasn't able to test htis earlier... Again Sorry. Message I get in event-log: The term 'Invoke-WebRequest' is not recognized as the name of a cmdlet Check on the watcher-node says: Powershel version 4 -1 -1 invoke-webrequest in Powershell ISE works localy on watchernode. Certificate is found when I logon localy on watchernode... Any other Idea what I'm doing wrong?? Thanx.......  Rene

  • Anonymous
    January 24, 2016
    Paul, thnx for the advise. Error I see in eventlog is: The term 'Invoke-WebRequest' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. When I enter the same invoke-webrequest on the watcher-node localy it works fine. PSversion = 4..

  • Anonymous
    January 27, 2016
    Hi, we made our first tests with URLGenie and it looks great. But we have one Problem to solve, so that we can use ist for all our checks. We send a XML to a secific URL and get a Response back. We check the returning XML by ContentMatch. The Problem now ist, that there are two or more allowed strings, that may come back. We only can check one string, so the other positive strings get an negative result. Is there a possibility to have more strings or regular expressions allowed? Thanks, Jörg

  • Anonymous
    February 09, 2016
    Hi Paul, How can I remove monitored URLs? I have some test URLs going on with URLGenies but not be able to remove them. Thanks, X

  • Anonymous
    February 09, 2016
    @X,  rename the config file(s) to Requests_whatever.xml.BAK. Or you could delete them but I think renaming is better. As long as the discovery workflow can still access the configured shared folder path, it should undiscover the URLs when it finds zero config files.

  • Anonymous
    February 09, 2016
    @Keegs,   I don't have an easy workaround for you at this time. Perhaps add a trailing slash to make the second URL unique. 1). www.something.com 2). www.something.com/

  • Anonymous
    February 09, 2016
    @Paul, I have removed them in configuration file but it won't go away, I will follow your instruction to rename or delete Request file. It is awesome MP with a lot of manual steps, haha. We are going to save x,000 dollars from it. Thank you, X

  • Anonymous
    February 09, 2016
    @Paul, yes, it worked. Removed all URLs. Thanks.

  • Anonymous
    February 09, 2016
    @Jörg:   You can override the ContentMatch monitor. Override this parameter: ContentMatchRegExOperator with this value: DoesNotMatchRegularEspression Use a regular expression for the ContentMatch value; something like this:  s*(firststring|second|third) For more content matching operator options see  "ContentMatchRegExOperator" in the "Parameters and Instance Properties" section of the management pack guide.

  • Anonymous
    February 09, 2016
    @Marcel,    I think I might have a way to solve the RetryCount issue but I won't have time for this side project until a few months down the road.

    • Anonymous
      July 06, 2016
      Any idea when the RetryCount bug will be fixed? Only asking since we get a significant number of errors per day that aren't really an issue if it were just to perform some retries.
      • Anonymous
        July 13, 2016
        Hi Oz, In order to fix this (I do think it is possible) I have to port the MP over to Visual Studio (from the 2007R2 Authoring Console). This will take a significant amount of effort to do it cleanly and correctly. I have actually begun this endeavor though I have much left to do. As for an estimate.... I can only promise to chip away at it as my free time permits and free time is in very short supply. Though I have been known to move much faster if those of you who ask for things are willing to make donations to charity. (just some suggestions: https://chivecharities.org/ or http://www.alsa.org/ ).
  • Anonymous
    March 11, 2016
    I am sorry for asking this, but How can I remove the URLGenie MP? I couldn't make it work, and I would like to remove it properly  from SCOM

  • Anonymous
    March 11, 2016
    @Juan,   I'm happy to help you get it configured. However, if you want to remove it, simply delete the management pack.

  • Anonymous
    March 23, 2016
    The comment has been removed

    • Anonymous
      March 23, 2016
      Hi Christanya, I can see how this change could prove to be helpful. This is a project that I've been slowly developing over a few years as time permits. I travel a LOT and free time doesn't exist. At Microsoft there is an endless (yes endless) list of things that I need to do, have to do, could do, and want to do. There is no team, just a man on a mission to make the world a little bit better for nice folks like you. That being said, if you would agree to do something nice for someone else (like a child or veteran) then I would be inclined to make this code modification a priority for you. I'll make a suggestion: https://chivecharities.org/Your move.-T
      • Anonymous
        March 28, 2016
        Paul, I love your challenge but this solution is for my employer, not me personally, and to cut through the red tape with procurement / HR to allow me to do this without a firm commitment when representing them will be a daunting effort. If you want to take this conversation into private email, I can prove that I, personally, have been a continual donor to 3 children's hospitals in Texas for over 10 years and my employer has a large giving presence that is publically verifiable. Again, I'm not familiar with SCOM and management packs so if you can let me know if your sealed MP can be edited by anyone to achieve the desired results (allowing non-unique URLs), then we can go that route and I would be open to sharing our results with you with no quid pro quo involved.
        • Anonymous
          March 28, 2016
          Ok Christanya, sounds legit. I'll do it. Give me a few days to find some time. Maybe this Friday. Glad to hear you are helping to make the world a better place. ;-)
          • Anonymous
            March 31, 2016
            Thank you, Paul!
  • Anonymous
    April 07, 2016
    Tyson first off thanks for creating this wonderful MP this will be truly helpful (if I can get it to work ; ) which is why I'm reaching out to you. I'm very very new to SCOM but I have installed and configured a new 2012 R2 environment and I have deployed your MP per your thorough instructions. However I can't seem to produce any url monitoring traffic which tells me something is wrong somewhere I just don't know where. Watcher node is present, xml file created, permissions are all set. Haven't noticed any errors in Ops log reference this MP. Any suggestions would be greatly appreciated.

    • Anonymous
      April 07, 2016
      Hi Ken, Check your hotmail inbox.
  • Anonymous
    April 14, 2016
    I was able to successfully configure URL monitor for website answering on port 80, but getting errorcode violation "2147500037" for other URLs which include port non-standard port numbers within the URL.Example: http://server.domain.com/test - SuccessExample: http://server.domain.com:7777/test - Errorcode "2147500037"

  • Anonymous
    June 15, 2016
    The comment has been removed

    • Anonymous
      July 13, 2016
      @Yousef, I have seen this problem before. I believe it is related to this library: Microsoft.mshtml.dll . Let me know if you are still having this problem and I'll do my best to help you find a solution.
    • Anonymous
      December 05, 2016
      In regards to the "Microsoft.mshtml.dll" problem. Here's how I solved the problem in my lab. I suggest you test this in a lab environment first. Overview:Locate "Microsoft.mshtml.dll " on a server where the script is working as expected. Use PowerShell to copy the DLL; create a copy on your problem server. Use Gacutil.exe to reinstall the assembly on the problem server.Finding the DLL was a little weird because you can’t use File Explorer to navigate directly to the folder for some reason. I finally located the Microsoft.mshtml.dll on my "good" Win2012R2 server (where the script was working as expected). I had to use PowerShell to find the DLL and then to copy it to another location (C:\temp). Once I could see the DLL file, I copied it to my test server (also Win2012R2). I also grabbed a copy of Gacutil.exe from my workstation located at this path on my Win8.1 workstation at the time: C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64 . I then copied Gacutil.exe to my test server and ran this command in PowerShell to reinstall the DLL: .\gacutil.exe /i .\Microsoft.mshtml.dllThis solved the problem for me. Test this in your lab before production.
  • Anonymous
    June 15, 2016
    Scripted IE login portion does not work. The first URL will work but all others fail. Deleting MP.

    • Anonymous
      July 13, 2016
      @Someone, The IE Login monitor DOES work for most sites when configured correctly. If you are trying to monitor more than one URL with a single monitor (a multi-URL sequence like: www.web1.com^www.web2.com ) this is not supported at this time so ya, I would expect the others to fail. The other "scripted" monitor type will monitor a multi-URL sequence. I've recently made significant improvements to the "scripted" type to handle N number of URLs. I plan to make this available sometime in the next few months after further enhancements and testing. But as for the IE Login type, it's not perfect as noted in the MP guide which I recommend reading: "This type of monitor is experimental. I've had great success in my lab environment and in a handful of production environments but this monitor type is not perfect. It simulates user interaction with the web browser. Any interactive prompts resulting from unpredictable configurations will produce unreliable results."PS. I'll be sure to issue a full refund. :-/
  • Anonymous
    July 13, 2016
    Hi there Tyson,Thanx for this MP. I am trying to get form login working for the same webpage from your tutorial: https://login.live.com. The UsernameElementID, PasswordElementID and ClickButtonID is still the same. However I get this message:There is a problem with the site/login process. See message below. Monitor Status: SuccessResponse Time: 12944Monitor Message: Response time [ 12944 ] exceeded threshold: [120 seconds.]..while attempting to fetch: [https://login.live.com/]____InnerText:Navigation to the webpage was canceledWhat you can try:Refresh the page.Refresh the page. ____ErrorData below:Any ideas? I do not get any popups etc when logging in manually from the concerning watcher.Thanx in advance.Regards,Chris

    • Anonymous
      July 13, 2016
      The comment has been removed
      • Anonymous
        July 14, 2016
        It appears the response time problem was caused by a language issue. The SCOM MS server and SQL server were using other number formats than US number formats (comma instead of dot for decimals and dots instead of comma for digit grouping). I just changed every language setting to US language and now it works:There is a problem with the site/login process. See message below. Monitor Status: FailureResponse Time: 3.4905Monitor Message: Content match failure for [fgjfgijfg]! ..while attempting to fetch: [https://login.live.com/]____InnerText:Sign inUse your Microsoft account. What's this?Please enter your phone number or your email address in the format someone@example.com.Email or phonePlease enter the password for your Microsoft account.PasswordKeep me signed inNo account? Create one!Forgot my passwordSign in with a single-use codeSign in with a different Microsoft accountTerms of UsePrivacy & Cookies____ErrorData below:However still no login takes place as you can see. I also executed the script manually as you described, but no errors were detected:PS C:\temp> .\urlgenieloginPSscript.ps1ResponseTimeSeconds: 3.9107FAILURE: Content match failure for [fgdddd] !Content match failure for [fgdddd]!..while attempting to fetch: [https://login.live.com/]____InnerText:Sign inUse your Microsoft account.What's this?Please enter your phone number or your email address in the format someone@example.com.Email or phonePlease enter the password for your Microsoft account.PasswordKeep me signed inNo account? Create one!Forgot my passwordSign in with a single-use codeSign in with a different Microsoft accountTerms of UsePrivacy & Cookies____ErrorData below:System.__ComObjectPerforming cleanup...Exiting...PS C:\temp>
        • Anonymous
          July 14, 2016
          Any ideas left Tyson?Regards,Chris
        • Anonymous
          July 14, 2016
          The comment has been removed
  • Anonymous
    August 26, 2016
    Hi Paul,we have a proxy problem when implementing your MP.we must create a user for proxy account (OK), associate this account to profile (OK) and associate this profile to proxy object (NOK)in step :Add the "KSmith Proxy Access Account" to the URLGenie Proxy Account profile and apply it to the Object:http://proxy.contoso.com:8080We haven't proxy object defined in scom. so, how can we do?How to create this object??? (sorry, we are newbee in scom :-) ).Laurent

    • Anonymous
      August 26, 2016
      @Laurent, Forgive me but the object is 'http://www.somewebsite.com' and the proxy address is just a property of the object. I have edited the comment to reflect that change. I'm sorry for the confusion. If you are still having problems with the proxy authentication then please notify me again. I will do my best to help you.
      • Anonymous
        August 29, 2016
        Thanks for this quick reply :-)
  • Anonymous
    August 29, 2016
    The comment has been removed

    • Anonymous
      September 14, 2016
      @Chris20052005, There could be a number of reasons why this is happening. There are many steps and prereqs required to enable the workflow to run successfully. These steps are described in the MP guide. Please make sure that you have followed the guidelines carefully. Next I would suggest logging into the watcher node (either Console or RDP) as the designated RunAs account (the account context which will run the workflow on the watcher node) and attempt to open the website with Internet Explorer. Make sure you are not presented with ANY popups that might hinder the workflow. Finally, I would cut/extract the PowerShell script from the MP and try to run it manually (again, as the RunAs account) with hardcoded values on the watcher node to see what the script is doing. This last option is a bit advanced and might not be for everyone. But do what you can. Please keep in mind that, as the MP guide states, this monitor type is experimental and I have had good success with it in my lab and so have many other users. It's not perfect and you shouldn't expect it to be perfect in every environment on every watcher node. There are bound to be some unexpected roadblocks that I can't predict.
  • Anonymous
    October 05, 2016
    Hi Paul,Any way to set up different recovery tasks for each URL?Thanks!

    • Anonymous
      October 05, 2016
      Hi JB, Not easily. The recovery is for the monitor type, not per URL instance. I suppose you could write a script with a bunch of conditional statements; If (thisURL) {Then do stuff}; Else {Do other stuff}. That would be a bit of a pain. I'm curious what type of recovery you would attempt to perform on a watched URL.
      • Anonymous
        October 06, 2016
        Hey Paul,Specifically we want to restart web services if the URL is not responding.
  • Anonymous
    October 21, 2016
    The comment has been removed

    • Anonymous
      December 05, 2016
      @Manoj, Not really.
  • Anonymous
    October 21, 2016
    Hi Paul,Great work! Thank you!Testing https://login.live.com/ - what do you use for AuthenticationScheme? I read every page of your MP guide. I am trying your test on https://login.live.com/; however, I get the same result as Chris.Many thanks,Martin

    • Anonymous
      October 23, 2016
      @Martin, You wouldn't use "AuthenticationScheme" for a site that requires input into a username and password fields. You would have to configure the IE Scripted monitor. AuthenticationScheme is used for HTTP authentication methods (None, Basic, Digest, Negotiate, NTLM)Can you send me an email (address should be in the MP guide) and I can assist you directly.
      • Anonymous
        October 27, 2016
        The comment has been removed
        • Anonymous
          October 27, 2016
          @Daniel Hobbs, I think your authuser value in the config file should be NetbiosDomainName\WEBMON. So if my domain were Contoso.com with Netbios domain name of "Contoso" this would be my authuser value:Contoso\WEBMONThe RunAs account should be configured as a "Basic Authentication" account type, not Windows. The account should be added to the URLGenie Proxy Profile for the URL instance/object.If you continue to have problems, send me email. My address can be found in the MP guide. -T
  • Anonymous
    December 05, 2016
    Hi Tyson. Thank you for this great addition to SCOM.After using it for a while, were moving to SCOM 2016, can you confirm that URLGenie will work without any issues, or should we do some extra testing on it?

    • Anonymous
      December 05, 2016
      @Martin, I just tested with my latest build (successfully) however it should work with the version that you have.
      • Anonymous
        December 06, 2016
        Thanks, i will try :)
  • Anonymous
    December 15, 2016
    Hi PaulI need to monitor the availability SharePoint from internet. We have a two-tier authentication - with certificate and user login. The first step after entering the url is checked user certificate, then the user login using MS TMG and finally the welcome page of the SharePoint Portal. This can be monitored by your MP?

    • Anonymous
      December 15, 2016
      @ Wazik: That's a tall order. I've never tested a scenario as you have described. I think it is unlikely.
  • Anonymous
    December 16, 2016
    Thanks for the reply, Paul!

  • Anonymous
    December 21, 2016
    Hi Paul,I've set up this MP in our environment because of the client certificate capabilities, but I'm running into some issues. I've followed the guide, but when I create an XML file with the correct certthumbprint and place it in our URLGenie folder, it doesn't create a URLGenie.HttpsRequest monitor. Instead it just makes a regular URLGenie.HttpRequest monitor even though the URL is https://server.domain.net:1234/index.html. I haven't changed any of the other default settings so I'm wondering if there's a step I'm missing along the way.Any advice would be appreciated.

    • Anonymous
      December 21, 2016
      @Alex.McNabb: Hi McNabb, the httpS discovery relies on the httP discovery to run first. Therefore it takes a little longer to eventually discover the httpS instance. If you have populated the CertThumbprint element in the config file then the instance should eventually get added to the URLGenie.URL.ClientCert.Group group after group calc runs on the mgmt server(s). Once a member of that group, all normal http monitoring will become disabled/inactive. You will then have to manually override the client cert monitor (URLGenie.URLGrabScripted.ClientCert.Monitor) for the instance to enable it. Please see the tutorial, "Enable Monitoring a URL Instance with a Client Certificate" in the MP guide. If you continue to have trouble after reading the guide, please contact me directly. My email address is contained in the MP guide.
  • Anonymous
    December 27, 2016
    Hi Paul,Do you have a release date for the next version of this MP?I'm looking forward to the retry count feature that you mentioned a couple of months ago.Kind regards,J.

    • Anonymous
      December 30, 2016
      The comment has been removed
  • Anonymous
    February 09, 2017
    Great job Tyson: congrats and thanks for sharing!

  • Anonymous
    February 16, 2017
    Tyson, I have a question that I may have missed being answered in this post/comments. However how can I prevent duplicate notifications, or rather only send (or raise) an alert if one of the watcher nodes fail? The goal is simply to ensure on a failure that the 'end user' for the alert only receives one notification, instead of one for each watcher node that reported the failure.For our setup, if we have the Requests xml on a server that two nodes access, and the configuration for the websites is via the (.) period, to ensure all watcher nodes in the event we add/remove watcher nodes that this is easily picked up.I have a feel there is something simple that I am missing, but help from you or anyone else would be greatly appreciated.Thank you!

    • Anonymous
      February 16, 2017
      In this situation the URLs, although they look similar, are actually two different instances (one owned/hosted by each watcher). Therefore there is not a good way to avoid receiving duplicate alerts. If the MP were redesigned to use unhosted classes, then the mgmt servers would share them and this would solve your specific problem. However, that would introduce different drawbacks.
  • Anonymous
    March 12, 2017
    Hey Tyson,Great MP, have used it at many of my customers. Just some minor feedback, I would change the way the targetting of the tasks work.Right now it is targetted to Logical Entity, so it's showing up for each alert/object you select in the console.Other than that, keep up the good work!

  • Anonymous
    September 24, 2017
    HiI was wondering about the content monitoring. How come you have "hidden" the DoesNotContain in an override? One of the stronger sides of this MP is that it shows the properties in the config file in the alert. This makes it easier to see what the configuration is for the website you are checking. Since the DoesNotContain isn't in the property files it makes it a bit confusing.

    • Anonymous
      November 14, 2017
      To make this management pack as flexible and scalable as possible (using instance properties for the monitor configuration/criteria) I had to be very creative with hard-coded overrides due to schema restrictions for certain parameters. To add the functionality that you are describing it would take a significant amount of work to add additional groups for every content criteria logic operator multiplied by every monitor type (to not break cookdown, every monitor must use precisely the same configuration). It could be done however the use of the various other content match operators (aside from the most common/default) is rare and I didn't feel that it was worth the extra effort and group calc expense on the mgmt servers.
  • Anonymous
    October 23, 2017
    I don't know if I missed this note anywhere, but I've discovered that all the config files can not share the same index value/range otherwise it stays unmonitored state forever.

    • Anonymous
      November 14, 2017
      I disagree. I have multiple URLs all with the same index number in my lab. The index property is a basic string and not the KEY property of the class so you can have as many duplicates as you want.
      • Anonymous
        November 15, 2017
        It also resolved a lot of problems that I had with false positives alerts by using different indexes.
  • Anonymous
    November 14, 2017
    I continuously get this critical alert in the Operations Manager log. What exactly is wong here? All of my monitors are working and there are 0 alerts in the SCOM console.Log Name: Operations ManagerSource: Health Service ScriptDate: 11/14/2017 5:20:00 PMEvent ID: 9999Task Category: NoneLevel: ErrorKeywords: ClassicUser: N/AComputer: scomDescription:Script_798ac417fb2e429fbca5f6b9e85e4bdd : Message: Problem with URL! [] Skipping.Username: SCOM$ThisScript: RequestDiscovery.ps1TimeStamp: 20171114172000206SourceID: {A165AC7C-8271-148D-4AEC-961FB1CAAB55}ManagedEntityID: {AC8E907B-2A68-0CEF-F28D-1831323F7C9B}PrincipalName: scomThisComputer: [scom]ConfigFilesPath: [ \scom\SCOM_DO_NOT_TOUCH\urlgeniefiles ]ThisFile: [ \scom\SCOM_DO_NOT_TOUCH\urlgeniefiles\Requests_List_of_URLs.xml ]url: LowerDiscoveryPercentage: 0UpperDiscoveryPercentage: 100Total number of objects detected in path: 18Subset of objects to be discovered: 1 .. 18Subset total count: 18index: watchers: []groupid: headercontenttype: header1name: header1value: header2name: header2value: header3name: header3value: responsetimeout: 0retrycount: 0interval: 0statusthreshold: 0contentmatch: proxy: wiki: authenticationscheme: warningtime: 0errortime: 0certthumbprint: body: Any Errors: Event Xml: 9999 2 0 0x80000000000000 423433 Operations Manager scom Script_798ac417fb2e429fbca5f6b9e85e4bdd Message: Problem with URL! [] Skipping.Username: SCOM$ThisScript: RequestDiscovery.ps1TimeStamp: 20171114172000206SourceID: {A165AC7C-8271-148D-4AEC-961FB1CAAB55}ManagedEntityID: {AC8E907B-2A68-0CEF-F28D-1831323F7C9B}PrincipalName: scomThisComputer: [scom]ConfigFilesPath: [ \scom\SCOM_DO_NOT_TOUCH\urlgeniefiles ]ThisFile: [ \scom\SCOM_DO_NOT_TOUCH\urlgeniefiles\Requests_List_of_URLs.xml ]url: LowerDiscoveryPercentage: 0UpperDiscoveryPercentage: 100Total number of objects detected in path: 18Subset of objects to be discovered: 1 .. 18Subset total count: 18index: watchers: []groupid: headercontenttype: header1name: header1value: header2name: header2value: header3name: header3value: responsetimeout: 0retrycount: 0interval: 0statusthreshold: 0contentmatch: proxy: wiki: authenticationscheme: warningtime: 0errortime: 0certthumbprint: body: Any Errors:

    • Anonymous
      November 14, 2017
      It appears that one of your elements has a formatting problem. Here's the clue: "Message: Problem with URL! [] Skipping.". Normally the actual URL would appear within the square brackets however that field is empty. Have another close look at your request blocks to check for anything irregular. I prefer to use Notepad++ with the language set to XML. It will help to identify any formatting snafus for you.
      • Anonymous
        November 15, 2017
        Thanks Tyson. I do see 2 blank lines at the bottom of my text file. I deleted those with Notepad ++ and clicked on the generate task again. I'm still getting the error. Should I disable the watcher node, delete the xmls in the folder and try fresh?
        • Anonymous
          November 15, 2017
          Another thing to add...all of the urls are reporting properly so that should tell us that the actual lines of text with the urls listed is correct. It seems like it's those 2 lines.
          • Anonymous
            November 20, 2017
            @Gary, Did you get it worked out? Blank lines would probably cause empty request blocks to get created. I'll address this in my next update. For now, remove any blank lines from your txt file.
          • Anonymous
            December 04, 2017
            The comment has been removed
            • Anonymous
              December 04, 2017
              Hi Gary, The error code you are getting is 2147954402 (ERROR_WINHTTP_TIMEOUT). This can happen for a few reasons:•The page is unreachable. If behind a proxy, check if the proxy settings are correct.•Unexpected API call failures. Multiple reasons could cause this, for instance a memory allocation error.•The site or URL is not accessible or is down.Also, the site may be hosted on a pod of servers behind a load balancer. You might randomly get a sick server which would cause the flapping of the health state (Similar to what this guy found here: https://social.technet.microsoft.com/Forums/ie/en-US/0b410bf0-43c7-4aa7-bfd8-cad16b4dd74d/web-application-availability-test-the-url-probe-returned-error-code-80072f78-reason-0x80072f78?forum=operationsmanagergeneral . Personally, I think this is most likely the problem.). Make sure your Interval for the instance isn't too aggressive; I suggest nothing lower than 60 (assuming your watcher node is not overloaded and that your Warning and Critical thresholds AND Retry setting don't conflict). When testing with a web browser, be sure you are testing from your actual watcher node. If you still don't trust that the monitor is behaving then I would suggest setting up a basic PowerShell script to automate the loading of the target website and loop through for 100 iterations on a 2 minute interval; logging the success/failure of the request. See if you encounter any similar failures. If, after the PowerShell test, you prove that a browser is 100% successful, then you can conclude that something else is going on to cause the problem. This MP uses the same, standard 'Microsoft.SystemCenter.WebApplication.UrlProbe' that the OotB Web Availability monitor creates so it's not likely something specific to the MP. If all else fails, you can add a ^ to the url so all standard monitoring becomes disabled automatically for the instance (via auto group membership overrides that exist). (example: ^http://company.webex.com ). Then, override the Scripted monitor (= Enabled), see if that monitor type will cooperate with you.
          • Anonymous
            December 04, 2017
            Ok. Well my watcher node was one of my management servers so I could suspect it may be getting overloaded. It's also set to 60. I'll increase it and possibly move watcher nodes to a less active management server and see if this helps. If that fails I'll do some more manual testing as you suggest.
  • Anonymous
    November 20, 2017
    The comment has been removed

    • Anonymous
      November 20, 2017
      The comment has been removed
  • Anonymous
    December 04, 2017
    Has anyone tried this with SCOM 2016? Works fine except it seems the retry count is back to being broken. I am using the latest version where it had been fixed. It's still working fine in my 2012 R2 environment, but the retry count is not working in my 2016 environment.

    • Anonymous
      December 05, 2017
      @Heather, In my testing I found that the Retry <retrycount> value is only effective if the monitor detects a failure (matches an error/critical condition) organically, so to speak. If you override one of the criteria to force an error condition OR if you change a criteria property in the config file to force an error condition (which results in new discovery data submission) then the monitoring workflow is executed immediately upon loading of the new configuration by the agent and the RetryCount is ignored which makes the health state flip immediately. I believe this is by design. For normal monitoring whereby the behavior of the watched instance changes, and not the criteria, RetryCount works perfectly as designed. In conclusion, it still works "correctly" in SCOM 2016.
  • Anonymous
    December 12, 2017
    The comment has been removed

    • Anonymous
      December 14, 2017
      @ Detniels, Unfortunately it is difficult for me to tell you precisely what to use or how to configure the monitor because I don't know which URL you are using. What I can tell you is that if you are up to the challenge, you can extract the .ps1 from the MP and tweak it until you figure out which parameters will work with your site. Run it manually, set IE visibility to True. Once you figure out what parameter values will work, then configure the override for the instance accordingly. If you want to provide me with the URL and possibly a test account I can try to assist. Otherwise... there's not much I can do from here to help you.
  • Anonymous
    March 09, 2018
    Hi TysonYes, we read this! ;)We would be very interested in testing the newest version of URLGenie! More so as we recently discovered that in alerts raised by the "URLGenie CA Untrusted Monitor" unit monitor, the alert description still contains the placeholders and not the data:Certificate Authority ErrorMonitor Settings:URL: {0}GroupID: {1}DNSResolutionTime: {2}Interval: {3}RetryCount: {4}Wiki: {5}Description: {6}******* Request Headers {7} End Request Headers ************** Response Headers ResponseHeaders: {8} End Response Headers *******Did we miss a configuration step here or is a bug?Greetings,Raphael

    • Anonymous
      March 09, 2018
      ;-)Raphael, Send me an email.(in the mp guide)
  • Anonymous
    May 01, 2018
    Hi, I'm interested in this MP. Please let me know how to test. Thanks.

  • Anonymous
    June 14, 2018
    Hi Tyson,thanks for this MP, as it is exactly what i was looking for.I want to monitor a website using a client certificate, but the event log keeps telling me, that NO matching certificate has been found.What i already did:I generated the config file with the integrated task out of a .txt file and did not change anything except the certthumbprint section. I read, that you removed the "URLGenie.URLGrabScripted.ClientCert.Monitor" but integrated the functionality into the "URLGenie.URLGrabScripted.MT". I did override this monitor, to enable it. The monitored URL correctly shows up in the "HTTPS Requests" view in SCOM and the Health Explorer tells me, that "URLGenie Scripted Monitor" is the only enabled monitor. Sadly, the status is critical, as "no matching certificate was found"The client cert, whose thumbprint i added to the config file, correctly shows up on the Watcher node when entering "gci Cert:\LocalMachine\my".I checked, whether the config file is UTF-8 and whether the SYSTEM Account (which is my OMAA) has access rights to the private key in the certificate. But everything seems to be configured just fine.What am i missing?Thanks a lot in advance!Torsten

    • Anonymous
      June 14, 2018
      I've seen behavior like this in the past and it was due to there being hidden encoded characters in whatever was copy/pasted into the certthumbprint field in the config file. The offending char was only visible if you copy/pasted from the config file into a PowerShell console; then it would appear as a block (little square) as it was unrecognized by the console. Here's an example of what I'm talking about: Invisible Encoded CharactersAnother troubleshooting approach would be to use the script demonstrated here to compare the actual thumbprint retrieved by the GCI command in PowerShell and whatever value you have in your config file. The latest version of the management pack has significant enhancements in the error checking logic to prevent this kind of thing (ultimately the hidden chars amount to user error, if we're being completely honest). The latest version that I speak of is ... let me check... 2018.4.12.1346. I have been delaying the release of this as I wanted to improve the IEScriptedLogin monitor type but if I wait for that, I may never release the update. The biggest hurdle at this point is updating the documentation. I suppose it would be better to release the updated MP without the doc instead of no MP at all. I'll decide this week.
      • Anonymous
        June 18, 2018
        Hi Tyson,that's been the right hint! Indeed, there was a hidden character in front of the thumbprint. I removed it and the certificate is now being corrctly used.Thanks a lot!Regarding your updated MP:I'd always prefer a well documented MP instead of just having the newest features without docs. But that's only my oppinion.Torsten
  • Anonymous
    June 21, 2018
    The comment has been removed

    • Anonymous
      June 21, 2018
      DJP1990, send me an email. Find my address in the MPguide.
      • Anonymous
        July 03, 2018
        Will do! And it has been sent.
    • Anonymous
      November 14, 2018
      @DJP1990, The newest version (scripted monitor type) supports TLS 1.0, 1.1, 1.2. I suspect that this will solve the issue.
  • Anonymous
    August 07, 2018
    The comment has been removed

    • Anonymous
      September 07, 2018
      Hi Tyson,we are still interested in using URLGenie with multihomed clients. Any way to make this work or is it currently impossible? In this case, we would set up a second watcher node.Thanks in advance!Torsten
      • Anonymous
        November 14, 2018
        @Tecki110, The newest version DOES support multihomed agents. The discovery is mgmt group aware. Enjoy!-Tyson
        • Anonymous
          December 10, 2018
          Hi Tyson,thanks a lot! I am currently switching all of our environments to the new version. Until now it works perfectly fine.Torsten
    • Anonymous
      January 15, 2019
      @Tecki110, Version 2.0.0.35 or later supports multihomed watcher nodes. Enjoy!
  • Anonymous
    November 14, 2018
    The comment has been removed

    • Anonymous
      November 14, 2018
      Hi Janez_B, This is expected behavior. I made significant changes (improvements) to the service model (class structure) which would require a replacement of the previous version. This is an unfortunate side effect of making significant modifications to the schema. The good news is that if the pack is working just fine now and you don't need or want to use the updated "scripted" monitor types in the newest version, then just leave the existing version in place. However, if there are specific features/fixes in the new pack that you want...
      • Anonymous
        November 14, 2018
        The comment has been removed
  • Anonymous
    January 10, 2019
    Hi Tyson,sorry to bother you again. I'm not asking you to solve the following problem for me, but perhaps you already saw such a behavior elsewhere:Since we recycle our IIS AppPools every night, which led to a flood of alerts, i set up a maintenace schedule in our SCOM 2016 for 1 hour during which these recycles are done. But every night, after the maintenance schedule ends, many websites are reported as "critical" just to become healthy one minute later. e.g. the maintenance ends at 4 am. 6 minutes later, a website is reported as "critical" (Content, Reachable and Error Code monitors). Another minute later, the monitor switches back to healthy.This leads to hundreds of mails every night, so the maintenance schedule is causing more mails, than we would get without it. And only URL Genie is affected. We struggled with this problem for several months now and i did not yet have any idea how to solve that.Might this be a bug or am i just not understanding the way maintenance mode works?Thanks in Advance!RegardsTorsten

    • Anonymous
      January 15, 2019
      @Tecki110, Which objects are you putting into MM? You must include any URLGenie URL instances in addition to your IIS servers/app pools etc. In addition, you might also consider increasing the "RetryCount" on your instances. Also, you might increase the delay on your email subscription so that emails don't send instantly. Maybe use a 2 or 3 minute delay.
  • Anonymous
    January 11, 2019
    Hi Paul,we are just starting to use your wonderful management pack and have come across a site that throws errors. Actually two alerts are raised it:1. HTTP Request Error: ErrorCode Exceeded ThresholdErrorCode Exceeded ThresholdErrorCode: 2147954444Monitor Settings: URL: https://nwpo.GroupID: SomeGroupTagDNSResolutionTime: 0RetryCount: 0Wiki: No link providedDescription: URL address to monitor. Request Headers ******GET /startPage HTTP/1.1User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT; Windows NT 6.1; en-US)Content-Type: text/xml;charset=utf-8Accept-Language: en-USAccept-Charset: utf-8From: SCOM@yourdomain.comConnection: Keep-AliveThat error code translates into ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED. The second alert is:HTTP Request Error: Content Validation ErrorThis one does not show anything in the response headerMonitor Settings: URL: https://ContentMatch String: hGroupID: SomeGroupTagDNSResolutionTime: 0Interval: 300RetryCount: 0Wiki: No link providedDescription: URL address to monitor. Request Headers *******GET /irj/portal HTTP/1.1User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT; Windows NT 6.1; en-US)Content-Type: text/xml;charset=utf-8Accept-Language: en-USAccept-Charset: utf-8From: SCOM@yourdomain.comConnection: Keep-AliveCan you point is in a direction on how to solve that ? We can open the URL ok in a browserThanks Thorsten

    • Anonymous
      January 11, 2019
      ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDEDSounds like your target site requires a client cert which your browser already uses to authenticate. See the MP guide for how to use a client cert.
      • Anonymous
        January 15, 2019
        That has worked ok. Although it was a little tricky to find out that we also need to prefix the URL with the caret ^ symbol to have it treated as a special URL. With just the CertThumbprint it didn't work.
        • Anonymous
          January 15, 2019
          @T_Schneider, If you have version 2.0.0.36 or later, it should automatically be discovered as 'Special' if the CertThumbprint is populated. It's built into the discovery script to detect this.
      • Anonymous
        January 15, 2019
        I just came across another issue: the HttpsSpecial URLs are missing the DaysToCertificateExpire rule. Is there a way how to get that as a performance counter as well ? Thanks
        • Anonymous
          January 15, 2019
          @T_Schneider, There is no DaysToCertificateExpire monitor for the 'Special' URL types. That is something that I will build into the next version. Until then... in theory, for any URL which requires a client cert, you could discover the URL as normal and disable all monitors for the instance except the DaysToCertificateExpire monitor and that single monitor type should work normally. I have not tested this.
          • Anonymous
            January 16, 2019
            Hi Paul,I tried that for one of the URLs but it doesn't seem to work.I've disabled all monitors except for the "URLGenie Certificate Expired Monitor" and "URLGenie Certificate Expires Soon Monitor" but it wouldn't gather any numbers for the days to certificate expire counter nor any of the other counters, not even the reponse time. All alerts have gone away though.Do you have a rough idea on when you will be able to work on the new version ? We are a little bit under pressure with that since our old monitoring solution is about to be decommissioned and so we need to get the cert monitoring moved into SCOMThanks a lot for your support on this ! Thorsten
            • Anonymous
              February 19, 2019
              @T_Schneider, Enabling monitors has nothing to do with collecting performance counters. The previous suggestion was simply to provide "make-shift" cert expiration monitoring for a 'client cert' URL situation. After re-reading your previous message I see that it is perf counters that you are most interested in. Sorry for the confusion. There's a good chance that I'll get around to adding additional perf counters for the 'special' url type this week. (no promises)
          • Anonymous
            April 08, 2019
            Hi Tyson,I wanted to follow back on your last comment:"There’s a good chance that I’ll get around to adding additional perf counters for the ‘special’ url type this week. (no promises)"We are still struggeling with that and hence why I want to see if you had a chance to look into adding the perf counters to the special URLs ? That would really help a lot.Thank you
  • Anonymous
    February 19, 2019
    Really struggling with getting the IE Scripted PowerShell script to run on Server 2016, IE 11.I have extracted the script from the MP, and have populated the test variable with the relevant data. Debugging the script in ISE, gets up to where the script block is ran via invoke-command. I'm sure the script block is being executed, because ProblemDetected function is called. $InnerText just doesn't contain anything??? Is there anything I can do, to break it down, simplify the invoked script block piece to ascertain where the failure\error is occurring?If I run it on Server 2012 R2, IE11 we are gold!

    • Anonymous
      February 19, 2019
      @LukePWilkins, This is a very difficult thing to troubleshoot with this type of monitor. What I've done in the past is to simply cut out the scriptblock used in the Invoke-Command and run it separately. You will have to hardcode your variables for testing but at least you should be able to get the IE com object (set Visible to True so you can watch the IE window) and inspect it to figure out why it's not behaving as you would expect. Keep in mind there are a ton of little things that have to be configured just right in order for the workflow to be successful; lots of IE settings, RunAs account/profile, PowerShell remoting, etc. These are documented in the MP Guide. Very tedious I know. Imagine how miserable it was to develop and test this thing.
  • Anonymous
    March 07, 2019
    Hello Tyson, I am new to this MP but I can't seem to get this example to work that you gave. Where do I change the overrides below? I can't see these overrides in the scripted monitor. Goal: To ignore 402 and 404 but anything else over 400 will result in Critical In the config file: ...400402,404...Override the monitor:ErrorOnNoContentMatch = 0CheckErrorData = 1

    • Anonymous
      March 07, 2019
      @TX.Nick, See my update to the original advice/example comment to which you have referred.
  • Anonymous
    April 08, 2019
    Hi Paul,I would like to kindly ask you for a feedback in the scenario below.One of the watcher nodes stopped to record the additional performance for all HTTP URLs but all HTTPS URLs are recorded properly.There is no change in the override settings and the same URLs are fine for the rest of the watchers.Clearing the cache of the agent does not help.Any suggestion would be highly appreciated.Thank you. Nicu

    • Anonymous
      April 08, 2019
      The comment has been removed
      • Anonymous
        April 10, 2019
        The comment has been removed