So, you want to monitor WebEx with WhatsUp Gold? Allow me to help by sharing my story of figuring this out. The first thing to consider here is that WhatsUp Gold can monitor anything you want, we just need to tell it to do so.
In the case of WebEx, it is a cloud solution with a status page. Cisco is already monitoring WebEx for us, which simplifies our job here. What if we just read the values from this page for each of the individual components? We would then be able to get notified immediately if any of the WebEx services were not functioning as expected and investigate the problem further as well as notify our end users of the issue that may impact them.
Don't have WhatsUp Gold? Download a free trial and try it out for yourself!
Where do I start?
Creating the monitor within WhatsUp Gold is typically the easy part of this process – the more difficult part is knowing which monitor to use within WhatsUp Gold. To figure this out, we have to first do some research. A quick google search with the terms “WebEx monitoring” produced wonderful results. The very first result is the WebEx status page. This is perfect, now we just need to configure WhatsUp Gold to read this data.
HTTP Content Monitor?
My initial thinking was to use WhatsUp Gold’s HTTP Content Monitor. This monitor can do to a page, read the source, and ensure certain content is loading. But, there is a catch: if the page requires Javascript to load, it won’t work.
…unfortunately, WebEx status page *DOES* require JavaScript. This means that we can’t use the HTTP Content Monitor, since the page won’t render the data we need unless JavaScript is enabled.
PowerShell Active Monitor?
I considered using a PowerShell Active Monitor that actually launches IE and finds the data we want. Although I was able to get the data successfully -- it was much more complex than I would like and could potentially cause performance problems depending on how many Internet Explorer windows we’d be launching every 60 seconds (the default active monitor polling interval)
End User Monitor?
Given the knowledge I gained through trying the other two, it dawned upon me that WhatsUp Gold’s End User Monitor (part of the Application Performance Monitoring addon) would do exactly what we need. The requirements were:
1. Open an actual browser to render the page
2. Be able to search for specific content on the page
WhatsUp Gold’s end user monitor accomplishes both with ease, now we’re talking! Note that, in order to use this option you need to be licensed for the Application Performance Monitoring addon.
To begin with the creation of the monitoring using this method, I would first need an end user monitor script to use. WhatsUp Gold’s end user monitor leverages another Progress solution called iMacros. iMacros is a complete browser automation suite that has many different uses aside from simply monitoring. Luckily, I already have some knowledge of the iMacros scripting language commands and knew the Search command was perfect for this. Since the Search command can also use regular expressions, I am in even more luck!
Using a web browser ‘Inspect’ feature, we can right-click the element we’re looking for (in this case, Access Webex URL) and select ‘Inspect’.
This allows you to see the HTML for that element. Using this information, I now knew exactly what to look for:
Access Webex URL </span><span data-v-72896e17="" class="font-body-small text-nowrap color-component-status-operational"> Operational |
So, we want to go to the WebEx status page URL, and then search the source for “Access WebEx URL” then do some wildcard matching using regular expressions in order to get what we’re looking for. I ended up using this end user monitor script:
URL GOTO=https://status.webex.com/service/status SEARCH SOURCE=REGEXP:"(Access Webex URL\\s*.*\\s.*Operational)" IGNORE_CASE=YES EXTRACT=$1 |
Note: within iMacros you must terminate your \ with another \ (in reality the regular expression here is “(Access Webex URL\s*.*\s.*Operational)". I made the mistake of *NOT* escaping my regular expression properly, which caused headaches for a bit.
Regular Expressions
Regular expressions are very useful and could be leveraged in various different areas on WhatsUp Gold. If you’re not familiar with regular expressions, don’t sweat it. I will try to roughly translate what the regular expression I specified above is doing. Bascially, it is running through, in order these 6 steps:
1. Access Webex URL – this will find “Access Webex URL” on the page
2. \s* – matches any proceeding whitespace, up to next character (no color for spaces)
3. .* – matches any characters
4. \s* – matches any proceeding whitespace, up to next character (no color for spaces)
5. .* -- match any characters
6. Operation – this will find “Operational” at the end of our string
Let’s color code this for easier translation..
Access Webex URL </span><span data-v-72896e17="" class="font-body-small text-nowrap color-component-status-operational"> Operational |
As you can see, the regular expression above is a match ONLY if we see this exact text in this exact order. This is exactly what we need to see if the service is ‘Operational’ or not – if anything other than ‘Operational’ is shown, it would not be a match and the script will fail and return a ‘down’ result. This is exactly what we want and need!
iDrone
If you already have an iDrone setup, the rest will be simple. We will proceed to the next steps to create an APM profile, add end user monitoring components, and adjust the script for each individual component listed under “Webex Meetings” from Cisco’s status page. If you have not already setup your iDrone, please refer to the document here to set it up and then continue on with these steps.
Creating the application profile
First, we need to create our application profile -- doing so is very easy. In your WhatsUp Gold environment, navigate to Settings > Application Monitoring > Application and Profile Setup.
Click to the ‘Application Profiles’ tab and then click the + sign.
In the “Application Profile Editor” dialog, give your profile a name and select a type. Once done, click the ‘Components’ tab.
On the ‘Components’ tab, I am going to add my End User Monitor Script component. Click the + sign, then click Component, highlight End User Monitor Script and click Select.
In the ‘Component Editor’ dialog, first we will give the component a name. I am going to use the name “Access Webex URL”. Take a look at what is pictured below. As we add the other components, we simply change the regular expression according to the service name (example: Access Webex URL, Start/join meetings, Video Platform, etc.)
Continue filling out the ‘Component Editor’ dialog by selecting an iDrone to Test with, Browser Type, and Script Text.
For the ‘Script Text’ section, you can use any of the following depending on which services of WebEx are important to you.
Component Name | Script Text |
Access Webex URL | URL GOTO=https://status.webex.com/service/status SEARCH SOURCE=REGEXP:"(Access Webex URL\\s*.*\\s.*Operational)" IGNORE_CASE=YES EXTRACT=$1 |
Join audio via Telephony | URL GOTO=https://status.webex.com/service/status SEARCH SOURCE=REGEXP:"(Join audio via Telephony\\s*.*\\s.*Operational)" IGNORE_CASE=YES EXTRACT=$1 |
Join audio via VoIP or share video | URL GOTO=https://status.webex.com/service/status SEARCH SOURCE=REGEXP:"(Join audio via VoIP or share video\\s*.*\\s.*Operational)" IGNORE_CASE=YES EXTRACT=$1 |
Schedule meetings | URL GOTO=https://status.webex.com/service/status SEARCH SOURCE=REGEXP:"(Schedule meetings\\s*.*\\s.*Operational)" IGNORE_CASE=YES EXTRACT=$1 |
Share content | URL GOTO=https://status.webex.com/service/status SEARCH SOURCE=REGEXP:"(Share content\\s*.*\\s.*Operational)" IGNORE_CASE=YES EXTRACT=$1 |
Start/join meetings | URL GOTO=https://status.webex.com/service/status SEARCH SOURCE=REGEXP:"(Start/join meetings\\s*.*\\s.*Operational)" IGNORE_CASE=YES EXTRACT=$1 |
Video Platform | URL GOTO=https://status.webex.com/service/status SEARCH SOURCE=REGEXP:"(Video Platform\\s*.*\\s.*Operational)" IGNORE_CASE=YES EXTRACT=$1 |
Once you have added all of your desired components, you can proceed to testing your profile.
Test your profile
After adding your components, you can test them by selecting them and clicking ‘Test’.
Instantiating the profile
We need to tell WhatsUp Gold to start monitoring using this profile. To do so, we simply create a new Application Instance and save it. Under Settings > Application and Profile Setup click to the ‘Monitored Applications’ tab and click the + sign.
In the ‘New Monitored Application’ dialog, select the profile you just made for WebEx as the application profile and *ANY* device as the endpoint. Since these monitors use the iDrone to run the scripts, it does not matter which device is associated to the profile. Once done, click ‘OK’.
In the ‘Monitored Application Editor’ dialog, click the ‘Application Detail’ tab and fill in a name. Once done, click Save. You are not monitoring WebEx Meetings!
Final notes
As you can see, WhatsUp Gold is very easily customized to monitor anything – including SaaS-based solutions, like WebEx. So long as we have some sort of way to populate the data to WhatsUp Gold, we can monitor that thing. Use your imagination and begin exploring other possibilities with custom monitors within WhatsUp Gold.
What else?
Well, you now have the ability to associate actions to your profile or components. Actions can include e-mails, text messages, and much more. Remember this is just *ONE* of *MANY* different ways to accomplish this type of monitoring within WhatsUp Gold. I could for example, use PowerShell as mentioned earlier in this post or even use VBscript/Jscript if need be. Since Internet Explorer can be called as a COM object, it makes scripting with it relatively simple.I can go on and on here, but we’ll leave it at that for now. Happy Monitoring!