Monitoring and reporting for Veeam Backup & Replication, VMware vSphere and Microsoft Hyper-V in a single System Center Operations Manager Console
Post Reply
vBPav
Expert
Posts: 181
Liked: 13 times
Joined: Jan 13, 2010 6:08 pm
Full Name: Brian Pavnick
Contact:

VMguest, Windows Computer, Health Service Watcher, OH MY!

Post by vBPav » 2 people like this post

Expanding on Anders Bengtsson's Blog Post on Windows Computer and associated Health Service watcher in a dynamic group, what if we wanted to include VMGuest Virtual Machine objects as well?

It turns out, this is a pretty simple task with the Veeam MP for VMware v5.7.

Within the same MP you have created from Anders blog, simply add the following:

Reference

Code: Select all

      
      <Reference Alias="nworksVMwareVEM5701022">
        <ID>nworks.VMware.VEM</ID>
        <Version>5.7.0.1022</Version>
        <PublicKeyToken>65c40f14a98ce59b</PublicKeyToken>
      </Reference>
MembershipRule

Code: Select all

        <MembershipRule>
              <MonitoringClass>$MPElement[Name="nworksVMwareVEM5701022!nworks.VMware.VEM.VMGUEST"]$</MonitoringClass>
              <RelationshipClass>$MPElement[Name="MSSystemCenterIGLib7585010!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
              <Expression>
                <Contains>
                  <MonitoringClass>$MPElement[Name="MicrosoftWindowsLib7585010!Microsoft.Windows.Computer"]$</MonitoringClass>
                  <Expression>
                    <Contained>
                      <MonitoringClass>$Target/Id$</MonitoringClass>
                    </Contained>
                  </Expression>
                </Contains>
              </Expression>
            </MembershipRule>
Should yield the following results!
Untitled picture.png
Untitled picture.png (28.12 KiB) Viewed 8294 times
Brian Pavnick | Cireson| Solutions Architect

- Follow me on Twitter @ vbpav
- Reach me on e-mail @ brian.pavnick@cireson.com
vBPav
Expert
Posts: 181
Liked: 13 times
Joined: Jan 13, 2010 6:08 pm
Full Name: Brian Pavnick
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by vBPav »

Hello everyone,

Please keep in mind that the VM and OpsMgr Agent Integration (on pg 14 of the Veeam MP Operations Guide) is necessary for this level of integration to work.
Brian Pavnick | Cireson| Solutions Architect

- Follow me on Twitter @ vbpav
- Reach me on e-mail @ brian.pavnick@cireson.com
vBPav
Expert
Posts: 181
Liked: 13 times
Joined: Jan 13, 2010 6:08 pm
Full Name: Brian Pavnick
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by vBPav »

One more thing to point out, please keep in mind that in the code examples above, I am using the following MP Aliases:

nworksVMwareVEM5701022 for nworks.VMware.VEM
MSSystemCenterIGLib7585010 for Microsoft.SystemCenter.InstanceGroup.Library
MicrosoftWindowsLib7585010 for Microsoft.Windows.Library

These aliases may differ from the MP you will be merging this code with. I recommend changing the code posted above, rather than the aliases on your MP. Changing your MP aliases will force you to change those aliases for the rest of your XML. Not fun!
Brian Pavnick | Cireson| Solutions Architect

- Follow me on Twitter @ vbpav
- Reach me on e-mail @ brian.pavnick@cireson.com
pommemd
Lurker
Posts: 2
Liked: never
Joined: Jul 26, 2014 2:39 am
Full Name: MD
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by pommemd »

Is anyone able help provide the Membership rule for the Veeam Management pack version

<Reference Alias="VMware">
<ID>Veeam.Virt.Extensions.VMware.Monitoring</ID>
<Version>6.0.0.1421</Version>
<PublicKeyToken>65c40f14a98ce59b</PublicKeyToken>
</Reference>

<MembershipRule>
<MonitoringClass>$MPElement[Name="VeeamVEVMwareLib!Veeam.Virt.Extensions.VMware.VMGUEST"]$</MonitoringClass>
<RelationshipClass>$MPElement[Name="MSSystemCenterIGLib7585010!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
<Expression>
<Contains>
<MonitoringClass>$MPElement[Name="MicrosoftWindowsLib7585010!Microsoft.Windows.Computer"]$</MonitoringClass>
<Expression>
<Contained>
<MonitoringClass>$Target/Id$</MonitoringClass>
</Contained>
</Expression>
</Contains>
</Expression>
</MembershipRule>
sergey.g
Veteran
Posts: 452
Liked: 76 times
Joined: May 02, 2012 1:49 pm
Full Name: Sergey Goncharenko
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by sergey.g »

Sorry for a delay,

We are investigating the question. But from the first look this XML code that you specified should work, could you confirm that it doesn't?

Thanks.
pommemd
Lurker
Posts: 2
Liked: never
Joined: Jul 26, 2014 2:39 am
Full Name: MD
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by pommemd »

Nope, i'm afraid it still doesn't work.
sergey.g
Veteran
Posts: 452
Liked: 76 times
Joined: May 02, 2012 1:49 pm
Full Name: Sergey Goncharenko
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by sergey.g »

Hello,

We've noticed a couple of errors in your code (VMguest object is located in the VMware.Library MP, while you sent us a reference to the monitoring maangement pack), so we've decided we need to test this configuration once again. The following code proved to be working on Veeam MP v7, should work for 6.x as well. I'll drop here a code for Health Service Watcher as well.

Veaem MP Reference (only this one is required):

Code: Select all

      <Reference Alias="VMware">
        <ID>Veeam.Virt.Extensions.VMware.Library</ID>
        <Version>6.0.0.1421</Version>
        <PublicKeyToken>65c40f14a98ce59b</PublicKeyToken>
      </Reference>
Membership Rules (in addition to the first one which filters out Windows Computers):

Code: Select all

<MembershipRule>
              <MonitoringClass>$MPElement[Name="SystemCenter!Microsoft.SystemCenter.HealthServiceWatcher"]$</MonitoringClass>
              <RelationshipClass>$MPElement[Name="MicrosoftSystemCenterInstanceGroupLibrary7585010!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
              <Expression>
		   <Contains>
			<MonitoringClass>$MPElement[Name="SystemCenter!Microsoft.SystemCenter.HealthService"]$</MonitoringClass>
			<Expression>
			<Contained>
			   <MonitoringClass>$MPElement[Name="MicrosoftWindowsLibrary7585010!Microsoft.Windows.Computer"]$</MonitoringClass>
   			   <Expression>
			   <Contained>
				<MonitoringClass>$Target/Id$</MonitoringClass>
			   </Contained>
			   </Expression>
   		   	</Contained>
			</Expression>
   		   </Contains>
              </Expression>
            </MembershipRule>
	    <MembershipRule>
		<MonitoringClass>$MPElement[Name="VMware!Veeam.Virt.Extensions.VMware.VMGUEST"]$</MonitoringClass>
		<RelationshipClass>$MPElement[Name="MicrosoftSystemCenterInstanceGroupLibrary7585010!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
		<Expression>
		   <Contains>
			<MonitoringClass>$MPElement[Name="MicrosoftWindowsLibrary7585010!Microsoft.Windows.Computer"]$</MonitoringClass>
			<Expression>
			   <Contained>
				<MonitoringClass>$Target/Id$</MonitoringClass>
			   </Contained>
			</Expression>
   		   </Contains>
		</Expression>
	     </MembershipRule>
Full version of example Management Pack can be downloaded here (keep in mind that I wasn't using SLA filtering, just filtered Windows Computers by name pattern)

If this code still doesn't work for you, could you check if group is being populated with at least Windows Computers? If Windows Computers aren't there, then there is an issue with SLA filtering rule, because the rest of Membership rules depend on this core one about SLA.

Thanks.
keithkleiman
Enthusiast
Posts: 42
Liked: never
Joined: May 23, 2011 8:38 pm
Full Name: Keith Kleiman
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by keithkleiman »

This doesn't seem to be working for me although I had this working in the past. Not sure exactly when things stopped. Here is my code. Can you validate? I have validated that Windows computer objects are being populated in the group too. Provided my code looks ok, which I think it does, can you suggest any other reasons that may be preventing the population of virtual machine objects in this group?

Thanks!
Keith

<MembershipRule>
<MonitoringClass>$MPElement[Name="VeeamVirtExtensionsVMwareLibrary7001862!Veeam.Virt.Extensions.VMware.VMGUEST"]$</MonitoringClass>
<RelationshipClass>$MPElement[Name="MicrosoftSystemCenterInstanceGroupLibrary6172210!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
<Expression>
<Contains>
<MonitoringClass>$MPElement[Name="Windows!Microsoft.Windows.Computer"]$</MonitoringClass>
<Expression>
<Contained>
<MonitoringClass>$Target/Id$</MonitoringClass>
</Contained>
</Expression>
</Contains>
</Expression>
</MembershipRule>
</MembershipRules>
Alec King
VP, Product Management
Posts: 1445
Liked: 362 times
Joined: Jan 01, 2006 1:01 am
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by Alec King »

Hi Keith,

OK, I believe this group population will not longer work since we removed the relationship between virtual machine (Veeam VMGUEST class) and Windows Computer (Microsoft class)....
We had to make this change, because we discovered that this relationship could cause SCOM performance issues in the database, in large environments with many MPs installed.
(to share more detail, the large nested topology created by this relationship caused the RecursiveMembershipTable in SCOM Db to grow hugely...sometimes to several million rows, with resultant performance issues...and that's enough database deep-dive I think! :wink: )

Actually we made this change in MP v7.0 R2, but perhaps you upgraded straight from 7.0 to 8.0, skipping R2, so this is your first experience of the change....

Anyway, the good news is that we DO still, in MP 8.0, create some relationship to the Windows OS inside the VM. It took some R&D, but we were able to optimise the way we do that, so we could still keep that valuable link between VM and the WIndows OS, without breaking SCOM internals...
We now create a relationship between VM and the special Veeam object 'Ops Mgr Agent in vSphere VM'.
If you look in the All VMs state view, you will see that there is a column for this new contained object (it replaces the column for Windows Computer that we had before)
And, there is a brand new Dashboard, called 'Apps on this VM', which you can see in the Navigation pane. That will open a diagram view of the associated Ops Mgr agent - so you still have a way to browse to that Windows OS and see the MPs that run inside. So our 'App-to-Metal' story still works! :D

Bottom line, your desired group of all related objects should still be possible - we need to take a look and change the classes in there. I'll get my team to check it out. Watch this space! :)
Alec King
Vice President, Product Management
Veeam Software
sergey.g
Veteran
Posts: 452
Liked: 76 times
Joined: May 02, 2012 1:49 pm
Full Name: Sergey Goncharenko
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by sergey.g »

Hi Keith,

I've Figured this out very quickly. As Alec mentioend we've changed the relationship architecture a little bit, but everything is still in place to acheive what you need. Just change the Membership rule to the following:

Code: Select all

<MembershipRule>
<MonitoringClass>$MPElement[Name="VeeamVirtExtensionsVMwareLibrary7001862!Veeam.Virt.Extensions.VMware.VMGUEST"]$</MonitoringClass>
<RelationshipClass>$MPElement[Name="MicrosoftSystemCenterInstanceGroupLibrary6172210!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
<Expression>
   <Contains>
<MonitoringClass>$MPElement[Name="VMwareBaseDisc!Veeam.Virt.Extensions.VMware.VMwareVirtualMachine"]$</MonitoringClass>
<Expression>
   <Contained>
<MonitoringClass>$MPElement[Name="Windows!Microsoft.Windows.Computer"]$</MonitoringClass>
      <Expression>
   <Contained>
<MonitoringClass>$Target/Id$</MonitoringClass>
   </Contained>
   </Expression>
   </Contained>
</Expression>
      </Contains>
</Expression>
     </MembershipRule>
sergey.g
Veteran
Posts: 452
Liked: 76 times
Joined: May 02, 2012 1:49 pm
Full Name: Sergey Goncharenko
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by sergey.g »

Sorry, forgot to mention that for the above you'll need another reference in the MP

Code: Select all

      <Reference Alias="VMwareBaseDisc">
        <ID>Veeam.Virt.Extensions.VMware.BaseDiscovery</ID>
        <Version>6.0.0.1421</Version>
        <PublicKeyToken>65c40f14a98ce59b</PublicKeyToken>
      </Reference>
keithkleiman
Enthusiast
Posts: 42
Liked: never
Joined: May 23, 2011 8:38 pm
Full Name: Keith Kleiman
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by keithkleiman »

Alec thanks for the appropriate level of detail :wink: which I follow. Makes sense now. I do appreciate the way you have redesigned and improved the performance of the topology and subsequent database. I also agree that the tasks does allow us to selectively look at the metal to app detail via the task if needed and works very nicely I might add. I have updated the new code and it works as expected. Many thanks Sergey! Appreciate the quick responses from the experts as always.
keithkleiman
Enthusiast
Posts: 42
Liked: never
Joined: May 23, 2011 8:38 pm
Full Name: Keith Kleiman
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by keithkleiman »

I have a SCOM group containing virtual machines objects with a particular cluster name. I then want to add the associated Windows Computer objects. How can this be done? This is the reverse process of adding windows computer objects into a group and adding the associated vmware virtual machine objects. Here is my code for that ...

<MembershipRules>
<MembershipRule>
<MonitoringClass>$MPElement[Name="LFGCustomCommonMPObjectsDiscovery1004!Typeb8e2708e161448e7bc39796bf5eaa749"]$</MonitoringClass>
<RelationshipClass>$MPElement[Name="MicrosoftSystemCenterInstanceGroupLibrary7585010!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
<Expression>
<RegExExpression>
<ValueExpression>
<Property>$MPElement[Name="LFGCustomCommonMPObjectsDiscovery1004!Typeb8e2708e161448e7bc39796bf5eaa749"]/AttributeDiscoveryGeneratedByUIaa042e6cf9624569acb1b345f59b55eb$</Property>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>.*SG024.*</Pattern>
</RegExExpression>
</Expression>
</MembershipRule>
<MembershipRule>
<MonitoringClass>$MPElement[Name="VeeamVirtExtensionsVMwareLibrary7001862!Veeam.Virt.Extensions.VMware.VMGUEST"]$</MonitoringClass>
<RelationshipClass>$MPElement[Name="MicrosoftSystemCenterInstanceGroupLibrary7585010!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
<Expression>
<Contains>
<MonitoringClass>$MPElement[Name="VMwareBaseDisc!Veeam.Virt.Extensions.VMware.VMwareVirtualMachine"]$</MonitoringClass>
<Expression>
<Contained>
<MonitoringClass>$MPElement[Name="Af3e5d83c6f09483ba22c2c0d0fa547de!Microsoft.Windows.Computer"]$</MonitoringClass>
<Expression>
<Contained>
<MonitoringClass>$Target/Id$</MonitoringClass>
</Contained>
</Expression>
</Contained>
</Expression>
</Contains>
</Expression>
</MembershipRule>
</MembershipRules>
sergey.g
Veteran
Posts: 452
Liked: 76 times
Joined: May 02, 2012 1:49 pm
Full Name: Sergey Goncharenko
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by sergey.g »

Hi Keith,

I've created a sample Management Pack for you, just open it and change "*King*" wildcard to whatever is necessary for your cluster name (sorry didn't notice you were using regexp, but wildcard should work for your example too).

The thing is that Windows Computer itself doesn't have Cluster Name property - it contains In-Guest object which should have this property, but for some reason it doesn't have it - at least in the current version (I'll check if we can add it in the future). So I had to use contains->contained membership rules to find windows computers with in-guest objects which also contained in VMs on a particular cluster.

https://sites.google.com/site/sgonchare ... luster.zip

Let me know if you have issues with using this MP or if you have any other questions.

Update: Cleaned up a little bit, removed the folder view from MP
keithkleiman
Enthusiast
Posts: 42
Liked: never
Joined: May 23, 2011 8:38 pm
Full Name: Keith Kleiman
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by keithkleiman »

Thanks Sergey! I have not tried it yet, but will let you know if I have any issues.
PatrikHansson
Lurker
Posts: 2
Liked: never
Joined: Mar 20, 2018 10:31 am
Full Name: Patrik Hansson
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by PatrikHansson »

Is this still appliable in 8.0 update 4 ?
I'm populating a Group with my own extended class + HealthserviceWatcher (via target/id$) and trying to also get the VM's in there with the addition of your membergship rule.
Computer + Healthservicewatcher works, bot no VM's get populated.

/Patrik
sergey.g wrote:Hi Keith,

I've Figured this out very quickly. As Alec mentioend we've changed the relationship architecture a little bit, but everything is still in place to acheive what you need. Just change the Membership rule to the following:

Code: Select all

<MembershipRule>
<MonitoringClass>$MPElement[Name="VeeamVirtExtensionsVMwareLibrary7001862!Veeam.Virt.Extensions.VMware.VMGUEST"]$</MonitoringClass>
<RelationshipClass>$MPElement[Name="MicrosoftSystemCenterInstanceGroupLibrary6172210!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
<Expression>
   <Contains>
<MonitoringClass>$MPElement[Name="VMwareBaseDisc!Veeam.Virt.Extensions.VMware.VMwareVirtualMachine"]$</MonitoringClass>
<Expression>
   <Contained>
<MonitoringClass>$MPElement[Name="Windows!Microsoft.Windows.Computer"]$</MonitoringClass>
      <Expression>
   <Contained>
<MonitoringClass>$Target/Id$</MonitoringClass>
   </Contained>
   </Expression>
   </Contained>
</Expression>
      </Contains>
</Expression>
     </MembershipRule>
PatrikHansson
Lurker
Posts: 2
Liked: never
Joined: Mar 20, 2018 10:31 am
Full Name: Patrik Hansson
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by PatrikHansson »

Never mind, it works. Just takes a lot longer to populate the Group. The other Group members appear directly after Group population but the VM's take alot longer.
So patience...
PatrikHansson wrote:Is this still appliable in 8.0 update 4 ?
I'm populating a Group with my own extended class + HealthserviceWatcher (via target/id$) and trying to also get the VM's in there with the addition of your membergship rule.
Computer + Healthservicewatcher works, bot no VM's get populated.

/Patrik
Alec King
VP, Product Management
Posts: 1445
Liked: 362 times
Joined: Jan 01, 2006 1:01 am
Contact:

Re: VMguest, Windows Computer, Health Service Watcher, OH MY

Post by Alec King »

Hi Patrick,

Yes it does take longer for SCOM to evaluate the deeper hierarchy for group membership when using this code. It's internal to SCOM and not something we can control in Veeam MP.

Glad it's working for you now anyway. Thanks for the update! If you need any further assistance please let us know.

Cheers,
Alec
Alec King
Vice President, Product Management
Veeam Software
Post Reply

Who is online

Users browsing this forum: No registered users and 5 guests