Forum Discussion

Casey_Walgren's avatar
3 years ago

How do you group your VM's with large VM environments?

I am working on grouping and organizing our LM deployment. We have around 2,000 VMs total, many of those are non-essential user VM's and dev machines. For much of our critical infrastructure and application servers we plan on bringing them in as individual devices (50-75 or so) I can group those however I want. My question is: Have you found a good way to group your VM's from the single Vmanage device? With so many VM's we want baseline monitoring for, I just dont see a good way of organizing them without paying for licensing for each individual VM and that is a no go for so many.

3 Replies

  • My suggestion would be to clone the DataSource for VM Performance and rename it appropriately for what you are looking for; i.e VMware_vCenter_VMPerformance_DevServers and Displayed as VMware VM Performance - DEV Servers

    Then you can create a filter that would narrow down only the Dev servers, which I would guess you could do by name with something like ##WILDALIAS## RegExMatch DEV, so it would look for the word "DEV" in every VM name.

    That would give you a grouping of Developer servers under VM Performance.

    Cloning the DataSource again and creating a filter that gives you the individual VMs would be the next task.  Then you have them grouped, can report on them, and have separate thresholds for them.

  • Anonymous's avatar

    Cloning is one option, but a cleaner option may be to group the instances under that DataSource. 

    It looks like there are several properties that should get discovered by default for every VM instance:

    'auto.config.alternate_guest_os_Name': vmConfig?.alternateGuestName,
    'auto.config.annotation'             : vmConfig?.annotation,
    'auto.config.firmware'               : vmConfig?.firmware,
    'auto.config.guest_os_full_Name'     : vmConfig?.guestFullName,
    'auto.config.guest_os_id'            : vmConfig?.guestId,
    'auto.config.managed_by'             : vmConfig?.managedBy?.type ?: "false",
    'auto.config.modified'               : vmConfig?.modified?.getTime(),
    'auto.config.template'               : vmConfig?.template,
    'auto.guest.guest_os_family'         : vmGuest?.guestFamily,
    'auto.guest.guest_os_full_name'      : vmGuest?.guestFullName,
    'auto.guest.guest_os_id'             : vmGuest?.guestId,
    'auto.guest.hostname'                : vmGuest?.hostName,
    'auto.guest.tools_version'           : vmGuest?.toolsVersion,
    'auto.guest.tools_version_status'    : vmGuest?.toolsVersionStatus2,
    'auto.resource_pool'                 : vm?.resourcePool?.name,
    'auto.resource_pool_full_path'       : resource_pool_array.reverse().join(' -> '),
    'auto.snapshot_count'                : vm?.layoutEx?.snapshot?.size(),
    'auto.cluster'                       : esxhost?.parent?.name,
    'auto.cluster_full_path'             : cluster_path_array.reverse().join(' -> '),
    ''                  : esxhost?.name

    You could group by any of these by simply setting the "Group method" to "Instance Level Property" and then choosing which property to group by.

    Alternatively, you could choose "Regular Expression" as the Group method and define each group with its own regular expression:

    For example, if your dev VMs started with "D" and prod VMs started with "P", you would do this:

    Development="D.*" Production="P.*"


  • Anonymous's avatar

    Of course, you can always manually create instance groups and sort the items into them manually.