Supported Versions
Validated the app by executing powershell script against "Microsoft Windows Server 2019 Datacenter 10.0.17763 Build 17763.3770"

Introduction

Virtual infrastructures, particularly in big data centers, must ensure high availability of services and applications and eliminate single points of failure. In order to do this, Microsoft offers the Failover Clustering technology, which can be applied to a Hyper-V environment to set up numerous Hyper-V hosts or nodes that can take over the workload in the event that one host fails.

Microsoft Failover Clustering can be used to safeguard virtual machines even though Hyper-V is host-bound and made to handle the resources of physical machines. Despite being a different technology, Failover Clustering can be used in conjunction with Hyper-V to reduce the amount of time that virtual machines are unavailable in the case of a failure. Its own administrative tool is Failover Cluster Manager.

Key Use cases

Discovery Use cases

  • It discovers the Windows Hyper-V Cluster components.
  • Publishes relationships between resources to have a topological view and ease of maintenance.

Monitoring Use cases

  • Provides metrics related to job scheduling time and status etc.
  • Concern alerts will be generated for each metric to notify the administrator regarding the issue with the resource.

Pre-Requisites

  • OpsRamp Classic Gateway 12.0.1 and above.
  • Powershell cmdlets have the following prerequisites:
    • Windows domain User should be able to do powershell remoting
      Enable-PSRemoting -Force
    • Windows domain user should be added to “Remote Management users” group
      net localgroup “Remote Management Users” /add < user >
    • Windows domain user should be added to “Performance monitor users” group
      net localgroup “Performance monitor users” /add < user >
  • Granting Remote DCOM Rights
    • To grant users DCOM rights, log on to each monitored system and complete the following procedure:
      • Go to command prompt and enter dcomcnfg
      • Navigate to component services > computers > My computer and then right click and select Properties. Then go to the COM Security tab.
      • Under Access Permissions, go to edit limits and add the domain non-admin user and enable both local and remote access then click OK.
      • In Launch and Activation permissions, go to edit limits, add the domain non-admin user and check all boxes, and click OK.
  • Windows domain user should be granted read-only access to cluster
    Grant-ClusterAccess -User <domain\user> -Readonly
  • Open ports and add user in all nodes and cluster**
    • Opsramp gateway should be able to access cluster and nodes.
    • Ports to be opened are 5985 and 5986.
      Note: By default, WS-Man and PowerShell remoting use port 5985 and 5986 for connections over HTTP and HTTPS, users should be present in nodes and cluster.

Hierarchy of Windows Hyper-V Cluster

    - Windows HyperV Cluster
          - Windows HyperV Server
                  - Windows HyperV Virtual Switch
                  - Windows HyperV Host Disk
                  - Windows HyperV Guest VM
          - Windows HyperV Cluster Role
          - Windows HyperV Cluster Shared Volume
          - Windows HyperV Cluster Disk

Default Monitoring Configurations

Windows-hyper v-cluster has default Global Device Management Policies, Global Templates, Global Monitors and Global metrics in OpsRamp. You can customize these Default Monitoring configurations as per your business use cases by cloning respective Global Templates and Global Device Management Policies. OpsRamp recommends performing the below activity before installing the application to avoid noise alerts and data.

  1. Default Global Device Management Policies

    OpsRamp has a Global Device Management Policy for each Native Type of Windows HyperV Cluster. You can find those Device Management Policies at Setup -> Resources -> Device Management Policies, Search with suggested names in global scope. Each Device Management Policy follows below naming convention:

    {appName nativeType - version}

    Ex: windows-hyperv-cluster Windows HyperV Cluster - 1 (i.e, appName = windows-hyperv-cluster, nativeType =Windows HyperV Cluster, version = 1)

  2. Default Global Templates available

    OpsRamp has a Global template for each Native Type of NetApp StorageGRID. We can find those templates at Setup -> Monitoring -> Templates, Search with suggested names in global scope. Each template follows below naming convention:

    {appName nativeType 'Template' - version}

    Ex: windows-hyperv-cluster Windows HyperV Cluster Template - 1 (i.e, appName = windows-hyperv-cluster , nativeType = Windows HyperV Cluster, version = 1)

  3. Default Global Monitors available

    OpsRamp has a Global Monitors for each Native Type which has monitoring support. You can find those monitors at Setup -> Monitoring -> Monitors, Search with suggested names in global scope. Each Monitors follows below naming convention:

    {monitorKey appName nativeType - version}

    Ex: Windows HyperV Cluster Monitor windows-hyperv-cluster StorageGRID 1 (i.e, monitorKey = Windows HyperV Cluster Monitor, appName = windows-hyperv-cluster , nativeType = Windows HyperV Cluster 1 , version= 1

Configure and install the integration

  1. From All Clients, select a client.
  2. Go to Setup > Integrations and Apps.
  3. Click Manage Apps.
    Notes:
    • If there are already installed applications, it will redirect to the INSTALLED APPS page where all the installed applications are displayed.
    • If there are no installed applications, it will navigate to the ADD APP page.
Hpe3par
  1. Click + ADD on the INSTALLED APPS page. The AVAILABLE INTEGRATIONS AND APPS page displays all the available applications along with the newly created application with the version.
    Note: You can even search for the application using the search option available. Also you can use the All Categories option to search.
Hpe3par
  1. Click ADD in the Windows HyperV Cluster application.
  2. In the Configuration page, click + ADD. The Add Configuration page appears.
  3. Enter the below mentioned BASIC INFORMATION:
FunctionalityDescription
NameEnter the name for the configuration.
IP Address/Host Name of Hyper-V clusterEnter the Host name or the IP address.
Windows Cluster CredentialsSelect the credentials from the drop-down list.
Note: Click + Add to create a credential.

Note: Select App Failure Notifications: if turned on, you will be notified in case of an application failure that is, Connectivity Exception, Authentication Exception.

  1. Select the below mentioned Custom Attribute:
FunctionalityDescription
Custom AttributeSelect the custom attribute from the drop down list box.
ValueSelect the value from the drop down list box.

Note: The custom attribute that you add here will be assigned to all the resources that are created by the integration. You can add a maximum of five custom attributes (key and value pair).

  1. In the RESOURCE TYPE section, select:
    • ALL: All the existing and future resources will be discovered.
    • SELECT: You can select one or multiple resources to be discovered.
  2. In the DISCOVERY SCHEDULE section, select Recurrence Pattern to add one of the following patterns:
    • Minutes
    • Hourly
    • Daily
    • Weekly
    • Monthly
  3. Click ADD.
Hpe3par
  1. Now the configuration is saved and displayed on the configurations page after you save it. From the same page, you may Edit and Remove the created configuration..
  2. Click NEXT.
  3. In the Installation page, select an existing registered profile, and click FINISH.
Hpe3par

The application is now installed and displayed on the Installed Integration page. Use the search field to find the installed application.

Modify the Configuration

View the Windows HyperV Cluster details

The discovered resource(s) are displayed in Infrastructure > Resources > Cluster, with Native Resource Type as Windows HyperV Cluster. You can navigate to the Attributes tab to view the discovery details, and the Metrics tab to view the metric details for Windows HyperV Cluster.

Hpe3par
Hpe3par

Supported Metrics

Native TypeMetric NamesMetric Display NameUnitDescription
Windows HyperV Clusterwindows_hyperv_cluster_network_Statewindows HyperV Cluster Network StateHyperV cluster network state.Possible states are: Unavailable: 0, Down: 1, Partitioned: 2, Unknown: 3, Up: 4
windows_hyperv_cluster_OnlineNodesCountWindows HyperV Cluster Online Nodes CountcountHyperV cluster online nodes count
windows_hyperv_cluster_NodeHealthWindows HyperV Cluster Node Health%HyperV cluster node health.
Windows HyperV Serverwindows_hyperv_server_IdleCPUUtilizationWindows HyperV Server Idle CPU Utilization%HyperV server idle cpu utilization
windows_hyperv_server_GuestCPUUtilizationWindows HyperV Server Guest CPU Utilization%HyperV server guest cpu utilization
windows_hyperv_server_HypervisorCPUUtilizationWindows HyperV Server Hypervisor CPU Utilization%HyperV server hypervisor cpu utilization.
windows_hyperv_server_TotalCPUUtilizationWindows HyperV Total CPU Utilization%HyperV server total cpu utilization.
windows_hyperv_server_system_services_HealthStateWindows HyperV System Services Health StateHyperV system services health state.Possible values are: ""0"" = ""Unknown""; ""5"" = ""OK""; ""10"" = ""Degraded/Warning""; ""15"" = ""Minor failure""; ""20"" = ""Major failure""; ""25"" = ""Critical failure""; ""30"" = ""Non-recoverable error""; "".."" = ""DMTF Reserved""
windows_hyperv_server_AvailableMBytesWindows HyperV Server Available MBytesMBHyperV server available Mbytes.
windows_hyperv_server_PageFileUsageWindows HyperV Server Page File UsageGBHyperV server page file usage.
windows_hyperv_server_VirtualTLBPagesWindows HyperV Server Virtual TLB PagescountHyperV server virtual TLB pages.
windows_hyperv_server_DepositedPagesWindows HyperV Server Deposited PagescountHyperV server deposited pages.
windows_hyperv_server_TotalPhysicalMemoryWindows HyperV Server Total Physical MemoryGBHyperV server total physical memory.
windows_hyperv_server_Virtual_MemoryWindows HyperV Server Virtual MemoryGBHyperV server virtual memory
windows_hyperv_server_TotalRemotePhysicalPagesWindows HyperV Server Total Remote Physical PagescountHyperV server total remote physical pages.
windows_hyperv_server_NetworkAdaptersBytesReceivedWindows HyperV Server Network Adapter BytesReceivedPerSecBpsHyperV network adapter bytes received per second.
windows_hyperv_server_NetworkAdaptersPacketsSentWindows HyperV Server Network Adapter Packets SentBpsHyperV network adapter bytes received per second.
windows_hyperv_server_NetworkAdaptersBytesSentWindows HyperV Server Network Adapter Bytes SentBpsHyperV network adapter bytes sent.
windows_hyperv_server_NetworkAdaptersPacketsReceivedWindows HyperV Server Network Adapter Packets Receivedpackets/secHyperV network adapter packets received.
windows_hyperv_server_NetworkAdaptersPacketsWindows HyperV Server Network Adapter Packetspackets/secHyperV network adapter packets per second.
Windows HyperV Virtual Switchwindows_hyperv_server_VirtualSwitchPacketsReceivedWindows HyperV Server Virtual Switch Packets Receivedpackets/secHyperV virtual switch packets received per second.
windows_hyperv_server_VirtualSwitchBytesReceivedWindows HyperV Server Virtual Switch Bytes ReceivedBpsHyperV virtual switch bytes received per second.
windows_hyperv_server_VirtualSwitchPacketsWindows HyperV Server Virtual Switch Packetspackets/secHyperV virtual switch packets per second.
windows_hyperv_server_VirtualSwitchBytesSentWindows HyperV Server Virtual Switch Bytes SentBpsHyperV virtual switch bytes sent per second.
windows_hyperv_server_VirtualSwitchBytesWindows HyperV Server Virtual Switch BytesBpsHyperV virtual switch bytes per second.
windows_hyperv_server_VirtualSwitchPacketsSentWindows HyperV Server Virtual Switch Packets Sentpackets/secHyperV virtual switch packets sent per second.
Windows HyperV Host Diskwindows_hyperv_disk_PhysicalDiskTransferPerSecWindows HyperV Disk Physical Disk Transfer Per SecIOPSHyperV physical disk transfers per second.
windows_hyperv_disk_PhysicalDiskQueueLengthWindows HyperV Disk Physical Disk Queue LengthHyperV physical disk queue length.
windows_hyperv_disk_PhysicalDiskBytesPerSecWindows HyperV Disk Physical Disk Bytes Per SecBpsHyperV physical disk bytes per second.
windows_hyperv_disk_PhysicalDiskReadBytesPersecWindows HyperV Disk Physical Disk Read Bytes Per SecBpsHyperV physical disk read bytes per second.
windows_hyperv_disk_PhysicalDiskReadsPersecWindows HyperV Disk Physical Disk Reads Per SecBpsHyperV physical disk reads per second.
windows_hyperv_disk_PhysicalDiskWritesPersecWindows HyperV Disk Physical Disk Writes Per SecBpsHyperV physical disk writes per second.
windows_hyperv_disk_PhysicalDiskWriteBytesPersecWindows HyperV Disk Physical Disk Write Bytes Per SecBpsHyperV physical disk write bytes per second.
windows_hyperv_disk_HealthStatusWindows HyperV Disk Health StatusHyperV disk health status. Possible states are: 'Unknown': 0 ,'Failing' : 1, 'Failed' : 2, 'Healthy' : 3
windows_hyperv_disk_OperationalStatusWindows HyperV Disk Operational StatusHyperV disk operational status. Possible statuses are: 'Unknown': 0, 'Not Ready': 1, 'No Media' : 2, 'Offline' : 3, 'Failed': 4, 'Missing' : 5, 'Online': 6
Windows HyperV Guest VMwindows_hyperv_guestvm_CpuUtilizationWindows HyperV GuestVM CPU Utilization%HyperV guest VM cpu utilization.
windows_hyperv_guestvm_StateWindows HyperV GuestVM StateHyperV guest VM state.Possible values are: Off : 0 Other: 1 Stopping: 2 Saved: 3 Paused: 4 Starting: 5 Reset: 6 Saving: 7 Pausing: 8 Resuming: 9 FastSaved: 10 FastSaving: 11 ForceShutdown: 12 ForceReboot: 13 Hibernated: 14 RunningCritical: 15 OffCritical: 16 StoppingCritical : 17 SavedCritical: 18 PausedCritical: 19 StartingCritical: 20 ResetCritical: 21 SavingCritical: 22 PausingCritical: 23 ResumingCritical: 24 FastSavedCritical: 25 FastSavingCritical: 26 Running: 27
windows_hyperv_guestvm_diskUsageWindows HyperV GuestVM Disk UsageMBHyperV guest VM disk usage
Windows HyperV Cluster Rolewindows_hyperv_role_RunningStatusWindows HyperV Role Running StatusHyperV cluster role running status.Possible values: Online : 0 Offline : 1 Failed : 2 PartialOnline : 3 Pending : 4 Unknown : 5
windows_hyperv_role_FailoverStatusWindows HyperV Role Failover StatusHyperV cluster role failover status. Possible values: Failedover: 0, No Failover: 1
Windows HyperV Cluster Shared Volumewindows_hyperv_csv_UtilizationWindows HyperV CSV Utilization%HyperV cluster shared volume utilization.
windows_hyperv_csv_UsageWindows HyperV CSV UsageGBHyperV cluster shared volume usage.
windows_hyperv_csv_OperationalStatusWindows HyperV CSV Operational StatusHyperV cluster shared volume operational status. Possible values: Offline : 0 Failed : 1 Inherited : 2 Initializing : 3 Pending : 4 OnlinePending : 5 OfflinePending : 6 Unknown : 7 Online : 8.
windows_mssql_cluster_totalServerMemoryTotal Server MemoryKBTotal amount of dynamic memory the server is currently consuming.
Windows HyperV Cluster Diskwindows_hyperv_clusterdisk_StateWindows HyperV Cluster Disk StateHyperV cluster disk state.Possible values : Offline : 0 Failed : 1 Inherited : 2 Initializing : 3 Pending : 4 OnlinePending : 5 OfflinePending : 6 Unknown : 7 Online : 8
windows_mssql_cluster_databaseStatusDatabase Status0 = ONLINE 1 = RESTORING 2 = RECOVERING SQL Server 2008 and later 3 = RECOVERY_PENDING SQL Server 2008 and later 4 = SUSPECT 5 = EMERGENCY SQL Server 2008 and later 6 = OFFLINE SQL Server 2008 and later 7 = COPYING Azure SQL Database Active Geo-Replication 10 = OFFLINE_SECONDARY Azure SQL Database Active Geo-Replication
windows_mssql_cluster_databaseActiveUsersDatabase Active UserscountMonitors the number of active user transactions per database
windows_mssql_cluster_datafilesFreeSpaceData Files Free Space%Monitors datafiles free space regardless of auto-growth.
windows_mssql_cluster_databaseFreeSpaceDatabase Free Space%Monitors Database Freespace in Percentage.
windows_mssql_cluster_dbLogCacheHitRatioDB Log Cache Hit Ratio%Monitors MSSQL database log cache-hit ratio.
windows_mssql_cluster_dbLogfilesFreeSpaceDB Logfiles Free Space%Monitors MSSQL database LogFiles free space.
windows_mssql_cluster_minsSinceLastLogBackupMins since Last Log BackupmMonitors Database transaction log backup in minutes.
windows_mssql_cluster_minsSinceLastLogFullBackupMins since Last Log Full BackupmMonitors Database Backup status in Minutes since Last Full Backup.
windows_mssql_cluster_fileGroupFreespaceWithAvailableDiskFile Group Free Space with Available Disk%Monitor MSSQL DB Filegroup Freespace with Available Disk.
windows_mssql_cluster_dbFileGroupFreespaceDB File Group Free Space%Monitors MSSQL DB Filegroup Freespace.
windows_mssql_cluster_longRunningQueriesLast5minCountLong Running Queries Last 5min CountcountMonitors MSSQL Database Long Running queries count Last 5 minutes.
windows_mssql_cluster_serverIOBusyServer IO Busy%Monitors MSSQL DB Server IO Busy.
windows_mssql_cluster_dbWorkspaceMemoryDB Workspace Memory%Monitors MSSQL Database Workspace Memory in Percentage.
windows_mssql_cluster_dbInstanceCpuUtilizationDB Instance CPU Utilization%Monitors MSSQL Database Instance CPU Utilization in percentage.
windows_mssql_cluster_logfileFreespaceWithAvailableDiskLogfile Free Space with Available Disk%Monitors MSSQL DB Logfile Freespace with Available Disk in percentage.
windows_mssql_cluster_instanceFreeConnectionsInstance Free Connections%Monitors MSSQL Database Instance Free Connections in percentage
windows_mssql_cluster_daysSinceLastFullBackupDays since Last Full BackupDaysMSSQL DB Backup Days Since Last Full Backup.
windows_mssql_cluster_daysSinceLastLogBackupDays since Last Log BackupDaysMSSQL DB Backup Days Since Last Log Backup.
windows_mssql_cluster_daysSinceLastDifferentialBackupDays since Last Differential BackupDaysMSSQL DB Backup Days Since Last Differential Backup.
windows_mssql_cluster_alwaysOnDBAvailabilitySyncHealthAlwaysOn DB Availability Sync HealthMSSQL AlwaysOn DataBase Availability Synchronization Health - Below are the possible states:0 : NOT_HEALTHY 1 : PARTIALLY_HEALTHY 2 : HEALTHY
windows_mssql_cluster_alwaysOnAGSyncHealthAlwaysOn AG Sync HealthMSSQL AlwaysOn Availability Group Synchronization Health - Below are the possible values: 0 : NOT_HEALTHY 1 : PARTIALLY_HEALTHY 2 : HEALTHY
windows_mssql_cluster_alwaysOnListenerStateAlwaysOn Listener StateMSSQL AlwaysOn Listener State - Below are the possible values: 0 : OFFLINE 1 : ONLINE 2 : ONLINE_PENDING 3 : FAILED
windows_mssql_cluster_cpuBusyCPU BusymicrosecMSSQL CPU Busy
windows_mssql_cluster_cpuIdleCPU IdlemicrosecMSSQL CPU IDLE
windows_mssql_cluster_cpuIOBusyCPU IO BusymicrosecMSSQL CPU IoBusy
windows_mssql_cluster_alwayson_database_replicaStateMSSQL AlwaysOn availability Group Replica StateIt monitors the MSSQL Always On Database Replica synchronization state along with role description.

Below are the possible states:

PRIMARY_NOT SYNCHRONIZING - 0
PRIMARY_SYNCHRONIZING - 1
PRIMARY_SYNCHRONIZED - 2
PRIMARY_REVERTING - 3
PRIMARY_INITIALIZING - 4
SECONDARY_NOT SYNCHRONIZING - 5
SECONDARY_SYNCHRONIZING - 6
SECONDARY_SYNCHRONIZED - 7
SECONDARY_REVERTING - 8
SECONDARY_INITIALIZING - 9

Risks, Limitations & Assumptions

  • Application can handle Critical/Recovery failure notifications for below two cases when user enables App Failure Notifications in configuration:
    • Connectivity Exception
    • Authentication Exception
  • Application will not send any duplicate/repeat failure alert notification until the already existing critical alert is recovered.
  • Using metrics for monitoring the resources and generating alerts when the threshold values are breached.
  • Application cannot control monitoring pause/resume actions based on above alerts.
  • This application supports only Classic Gateway and NextGen Gateway. Not supported with Cluster Gateway.
  • No support of showing activity log and applied time.
  • The minimum suggested monitoring frequency is 5mins to avoid load on the target machine.