Windows Azure Pack SCOM Management Pack V2

Before going into details, this version is NOT upgradable from V1.

Sorry for this, simply redesign of the class structure is something I needed to do to prepare this pack for more sophisticated monitoring.

And yes this is something which could have been avoided, take full blame here! Sad smile

But I hope you will like the results !

 

  • Update the entire pack and have written some knowledge to some monitors to give more details on what is being monitored and why.
  • Another addition is now the pack is supported on WAP environments which have the roles separated.
  • Add some more visual stuff Icons which where “Stolen” from the visio stencils by Kevin Green, Awesome job there Kevin, Thanks! Winking smile
  • Below a better description of the management pack and understand the dependencies.
  • Added overrides to the web monitors where you can override the URL if necessary.
  • Plan and Subscription support.
  • Usage collection on Subscriptions

Reference used:

The following managements packs need to be in place:

Management Pack Version
Microsoft.SQLServer.Library 6.3.173.1
Microsoft.Windows.InternetInformationServices.CommonLibrary 7.0.10165.0
SCOM Default MP’s
Microsoft.SystemCenter.InstanceGroup.Library 7.5.8501.0
Microsoft.SystemCenter.Library 7.0.8433.0
Microsoft.SystemCenter.ServiceDesigner.Library 7.0.8433.0
Microsoft.SystemCenter.Visualization.Library 7.1.10226.0
Microsoft.SystemCenter.WebApplication.Library 7.1.10226.0
Microsoft.Windows.Library 7.5.8501.0
System.Health.Library 7.0.8433.0
System.Image.Library 7.5.8501.0
System.Library 7.5.8501.0
Microsoft.SystemCenter.DataWarehouse.Library 7.1.10226.0
System.Performance.Library 7.0.8433.0

 

After having above management packs you should be able to go!

Below are a how to and a section how to get more out of this management pack. Although this mentions Integration of SCVMM it is NOT required for using this MP!

image  

 

image

Contents

Classes

The following classes are defined in the management pack

Class Display Name Property ID Property Display Name
WindowsAzurePack.Library.Server Windows Azure Pack Server Namespace Name
WindowsAzurePack.Library.WAPSite.* Windows Azure Pack Website – * Binding Binding
PhysicalPath Physical Path
UniqueKey Unique Name
WindowsAzurePack.Library.WAPPlan Windows Azure Pack Plan ID ID
State State
SubScriptionCount Subscription Count
MaxSubscriptionsPerAccount Max Subscriptions Per Account
WindowsAzurePack.Library.WAPSubscription Windows Azure Pack Subscription AdminEmail Admin Email
SubScriptionID Subscription ID
Cores Limit Number of Cores
RAM Limit RAM (MB)
VMS Limit Virtual Machines
Storage Limit Storage (GB)

* There are a total of 14 classes each representing a WAP Web Service. (AdminAPI, AdminSite, ConfigSite, Monitoring, MYSQL, SQLServer, TenantAPI, TenantPublicAPI, Usage, UsageCollector, WebAppGallery, WindowsAuthSite, TenantSite)

 

Discoveries

The following Discoveries are used and defined in the management pack

Discovery Name Target Interval in seconds Sort Discovery Enabled
Windows Azure Pack Server Discovery Windows!Microsoft.Windows.Computer 7200 (2 hours) Registry based
SOFTWARE\Microsoft\MgmtSvc
If Exist
True
Windows Azure Pack Websites Discovery WindowsAzurePack.Library.Server 86400 (Daily) PowerShell Script
using get-website / Get-WebBinding
True
Windows Azure Pack Plan Discovery WindowsAzurePack.Library.WAPSite.WindowsAuthSite 86400 PowerShell False
Windows Azure Pack Subscription Discovery WindowsAzurePack.Library.WAPSite.WindowsAuthSite 7200 PowerShell False

 

Monitors

The following Monitors are defined in the management pack

 

Monitor ID Monitor Name Target Interval
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.Error200.AdminSite Windows Azure Pack Unit Monitor AdminSite Availability Error 200 WindowsAzurePack.Library.WAPSite.AdminSite 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.Error200.AuthSite Windows Azure Pack Unit Monitor AuthSite Availability Error 200 WindowsAzurePack.Library.WAPSite.AuthSite 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.Error200.TenantSite Windows Azure Pack Unit Monitor TenantSite Availability Error 200 WindowsAzurePack.Library.WAPSite.TenantSite 1800
WindowsAzurePack.Monitor.WebConfigEncrypt.AdminAPI Windows Azure Pack Unit Monitor AdminAPI Configuration WindowsAzurePack.Library.WAPSite.AdminAPI 7200

WindowsAzurePack.Monitor.WebConfigEncrypt.AdminSite

Windows Azure Pack Unity Monitor AdminSite Configuration WindowsAzurePack.Library.WAPSite.AdminSite 7200

WindowsAzurePack.Monitor.WebConfigEncrypt.AuthSite

Windows Azure Pack Unit Monitor Authsite Configuration WindowsAzurePack.Library.WAPSite.Authsite 7200

WindowsAzurePack.Monitor.WebConfigEncrypt.ConfigSite

Windows Azure Pack Unit Monitor ConfigSite Configuration WindowsAzurePack.Library.WAPSite.ConfigSite 7200

WindowsAzurePack.Monitor.WebConfigEncrypt.Monitoring

Windows Azure Pack Unit Monitor Monitoring Configuration WindowsAzurePack.Library.WAPSite.Monitoring 7200

WindowsAzurePack.Monitor.WebConfigEncrypt.MYSQL

Windows Azure Pack Unit Monitor MYSQL Configuration WindowsAzurePack.Library.WAPSite.MYSQL 7200

WindowsAzurePack.Monitor.WebConfigEncrypt.SQLServer

Windows Azure Pack Unit Monitor SQLServer Configuration WindowsAzurePack.Library.WAPSite.SQLServer 7200

WindowsAzurePack.Monitor.WebConfigEncrypt.TenantAPI

Windows Azure Pack Unit Monitor TenantAPI Configuration WindowsAzurePack.Library.WAPSite.TenantAPI 7200

WindowsAzurePack.Monitor.WebConfigEncrypt.TenantPublicAPI

Windows Azure Pack Unit Monitor TenantPublicAPI Configuration WindowsAzurePack.Library.WAPSite.TenmantPublicAPI 7200

WindowsAzurePack.Monitor.WebConfigEncrypt.Usage

Windows Azure Pack Unit Monitor Usage Configuration WindowsAzurePack.Library.WAPSite.Usage 7200

WindowsAzurePack.Monitor.WebConfigEncrypt.UsageCollector

Windows Azure Pack Unit Monitor UsageCollector Configuration WindowsAzurePack.Library.WAPSite.UsageCollector 7200

WindowsAzurePack.Monitor.WebConfigEncrypt.WebAppGallery

Windows Azure Pack Unit Monitor WebAppGallery Configuration WindowsAzurePack.Library.WAPSite.WebAppGallery 7200

WindowsAzurePack.Monitor.WebConfigEncrypt.WindowsAuthSite

Windows Azure Pack Unit Monitor WindowsAuthSite Configuration WindowsAzurePack.Library.WAPSite.WindowsAuthSite 7200

WindowsAzurePack.Monitor.WebConfigEncrypt.TenantSite

Windows Azure Pack Unit Monitor TenantSite Configuration WindowsAzurePack.Library.WAPSite.TenantSite 7200
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.AdminAPI Windows Azure Pack Unit Monitor AdminAPI Availability Error 404 WindowsAzurePack.Library.WAPSite.AdminAPI 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.AdminSite Windows Azure Pack Unit Monitor AdminSite Availability Error 404 WindowsAzurePack.Library.WAPSite.AdminSite 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.Authsite Windows Azure Pack Unit Monitor Authsite Availability Error 404 WindowsAzurePack.Library.WAPSite.Authsite 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.ConfigSite Windows Azure Pack Unit Monitor ConfigSite Availability Error 404 WindowsAzurePack.Library.WAPSite.ConfigSite 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.Monitoring Windows Azure Pack Unit Monitor Monitoring Availability Error 404 WindowsAzurePack.Library.WAPSite.Monitoring 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.MYSQL Windows Azure Pack Unit Monitor MYSQL Availability Error 404 WindowsAzurePack.Library.WAPSite.MYSQL 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.SQLServer Windows Azure Pack Unit Monitor SQLServer Availability Error 404 WindowsAzurePack.Library.WAPSite.SQLServer 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.TenantAPI Windows Azure Pack Unit Monitor TenantAPI Availability Error 404 WindowsAzurePack.Library.WAPSite.TenantAPI 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.TenmantPublicAPI Windows Azure Pack Unit Monitor TenmantPublicAPI Availability Error 404 WindowsAzurePack.Library.WAPSite.TenmantPublicAPI 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.Usage Windows Azure Pack Unit Monitor Usage Availability Error 404 WindowsAzurePack.Library.WAPSite.Usage 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.UsageCollector Windows Azure Pack Unit Monitor UsageCollector Availability Error 404 WindowsAzurePack.Library.WAPSite.UsageCollector 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.WebAppGallery Windows Azure Pack Unit Monitor WebAppGallery Availability Error 404 WindowsAzurePack.Library.WAPSite.WebAppGallery 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.WindowsAuthSite Windows Azure Pack Unit Monitor WindowsAuthSite Availability Error 404 WindowsAzurePack.Library.WAPSite.WindowsAuthSite 1800
WindowsAzurePack.WAPSite.Monitor.WebSiteAvailability.TenantSite Windows Azure Pack Unit Monitor TenantSite Availability Error 404 WindowsAzurePack.Library.WAPSite.TenantSite 1800
WindowsAzurePack.ManagementPack.Monitoring.WAP.Subscription.StateMonitor WAP Subscription State Monitor WindowsAzurePack.Library.WAPSubscription 3600
       
       

 

Rules

 

Besides the already mentioned rules in V1 there is a new rule for collecting Subscription usage

 

Rule Id Rule DisplayName Target Interval
WAP.Subscription.PerfCollection.Rule Windows Azure Pack Subscription Performance Collection Rule WindowsAzurePack.Library.WAPSubscription 3600

image

 

Plans and Subscriptions Monitoring.

This version includes monitoring of subscriptions, where we collect usage data to be able to simply create an overview of resources being used by a subscription (currently only SystemCenter Service).

Since the subscriptions and plans need to “live” on an agent in order to properly target the subscriptions for data collection.

I have created the discovery rules turned off by default, if they are enabled on all servers subscriptions and plans will be discovered on each server which is unwanted.

(currently have no clever other solution but his works like a charm, open for suggestions).

Runas Account

To be able to start discovering and monitoring subscriptions you need to create a runas account.

The runas Account needs to have WAP Admin privileges since we are going to use Windows Azure pack PowerShell which requires authentication.

Secondly the account needs local admin on the server.

First Create A Runas Account:

image

Secondly we are going to distributed the account to the appropriate servers:

image

Select The WAP Discovery and Monitoring Account role

Since we only need to distribute this account to the WAP servers select :

image

 

After this we need to enable the discovery on one of the WAP Servers.

(Another solution would be to have a separate server with an agent where the WAP PowerShell modules are installed.)

 

You need to override 2 discoveries:

 

image

 

You need to override these to enabled for the WAP server (site) of your choice:

 

image

 

image

Set the override to enabled and safe the setting in a custom management pack.

Do the same for the Subscriptions Discovery.

 

After activating the discoveries wait for the components to be discovered!

 

Subscription Groups

Why is adding the functionality of subscriptions really cool?

 

Extra Functionalities and Ideas

After you have discovered all subscriptions they are being monitored for their health. Which is default. Smile

Now wouldn’t it be cool to have an overview of a subscription and all related VM’s ?

 

Like below:

image

 

 

In order to get to this you will require the SCVMM management pack, since this MP discovers the VM’s running on the Tenants.

There is no other way since we cannot run agents on these VM’s and connect them to the Management SCOM environment.

 

But after you have connected SCVMM you can make really cool dashboards Smile

Besides grouping the VM’s you can also drill down in the properties on the vm  and see the status of the tenant vms as derived from SCVMM.

 

Another great solution is you can create groups per subscription for vms.

This provides you the ability to use the SCVMM report to show per subscription based information:

Easy overview of vms per subscription:

image

 

I have created a Empty management pack with the correct references and a script to automatically create these groups based on subscription as example.

 

Off course it is up to you what you can build but for the dashboard shown above :

 

Subscriptions Dashboard

First Create a Dashboard Grid with 3 Panes.

 

After this populate the first with a PowerShell widget and use the script below:

$class = Get-SCClass -Name WindowsAzurePack.Library.WAPSubscription

$tenants = Get-SCOMClassInstance -Class $class

 

foreach ($tenant in $tenants )

{
$Email = ($tenant.'[WindowsAzurePack.Library.WAPSubscription].AdminEmail’).Value

$dataObject=$ScriptContext.CreateFromObject($tenant ,”Id=Id,HealthState=HealthState,DisplayName=DisplayName”,$null)
$dataObject[“Email”]=$Email

    $ScriptContext.ReturnCollection.Add($dataObject)

}

 

This will add all subscriptions, you can add collumns as you want for other properties of the subscription class.

 

Secondly again create a powershell widget, this widget will be used based on the selection of the first subscriptions widget.

Use the following PowerShell Script:

 

Param($globalSelectedItems)
foreach ($globalSelectedItem in $globalSelectedItems)
{
$globalSelectedItemInstance = Get-SCOMClassInstance -Id $globalSelectedItem[“Id”]
$Email = ($globalSelectedItemInstance.'[WindowsAzurePack.Library.WAPSubscription].AdminEmail’).Value

$vclass = get-scclass -Name Microsoft.SystemCenter.VirtualMachineManager.VirtualMachine
$vms = Get-SCOMClassInstance -Class $vclass

foreach ($vm in $vms)
{
$owner = ($vm.'[Microsoft.SystemCenter.VirtualMachineManager.VirtualMachine].Owner’).Value
if ($owner -eq $Email)
{
$dataObject=$ScriptContext.CreateFromObject($vm,”Id=Id,HealthState=HealthState,DisplayName=DisplayName”,$null)
$dataObject[“Host”]=($vm.'[Microsoft.SystemCenter.VirtualMachineManager.VirtualMachine].HostName’).Value
$dataObject[“OperatingSystem”]=($vm.'[Microsoft.SystemCenter.VirtualMachineManager.VirtualMachine].OperatingSystem’).Value
$dataObject[“CPUCount”]=($vm.'[Microsoft.SystemCenter.VirtualMachineManager.VirtualMachine].CPUCount’).Value
$dataObject[“Dynamic Memory”]=($vm.'[Microsoft.SystemCenter.VirtualMachineManager.VirtualMachine].DynamicMemory’).Value
$dataObject[“Current Memory”]=($vm.'[Microsoft.SystemCenter.VirtualMachineManager.VirtualMachine].TotalRAM’).Value
$dataObject[“Max Memory”]=($vm.'[Microsoft.SystemCenter.VirtualMachineManager.VirtualMachine].MaxMemoryMBytes’).Value
$dataObject[“NoOfVirtualDisks”]=($vm.'[Microsoft.SystemCenter.VirtualMachineManager.VirtualMachine].NoOfVirtualDisks’).Value
$dataObject[“Total DiskSize”]=($vm.'[Microsoft.SystemCenter.VirtualMachineManager.VirtualMachine].TotalVirtualDiskSizeMBytes’).Value

NoOfVirtualDisks
TotalVirtualDiskSizeMBytes

$ScriptContext.ReturnCollection.Add($dataObject)
}
}
}

And last create a Object performance widget targeted at the subscription and use the collected performance of the subscriptions.

and you are done Smile

 

Based on this solution I have been working on a more sophisticated solution, this will require more PS and coding but results will be epic.

Besides this version I am also working on an idea to get more from the tenant VM’s than just the information from SCVMM.

 

Before I forget the Management Pack, including Group Script and MP can be found at :

 

https://gallery.technet.microsoft.com/SCOM-Management-Pack-3855607d

 

 

 

Cheers,

 

Oskar Landman

3 thoughts on “Windows Azure Pack SCOM Management Pack V2

  1. Andres

    Hi Oskar

    Thank you for that wonderful mgmt pack and good overview.

    Unfortuantely I’m having hard time to get this pack working. More precisely I did the installation of this pack, but it doesn’t collect any of the data.

    The pack installation went well, but I didn’t find most of the mgmt packs what was in your prerequisites list. Do you have some guess why I didn’t find most of the packs? I guess this might be the reason why the pack doesn’t work or collect any of the data.

     

    Thanks in Advance!

    Andres

  2. loeke

    Hey Oskar, thanks for the wonderful MP!

    Everything works like a charm except the discovery for the plan and subscription. I’ve enabled this for the admin auth site but no discoveries are made. I’ve looked into the event logs of the monitoring agents, wap, management server, nothing special to see.

    Our environment is a full blown wap environment with SCVMM MP installed.

    Any advice?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.