Monitoring Windows Services with VMware vRealize Operations Manager (vROps)

Categories Monitoring, vRealize Operations, vRealize Suite
vROps Automatic Specific Services

Recently one of my customers asked me how to go about monitoring Windows services with VMware vRealize Operations Manager (vROps).  Nothing fancy… just CPU, Memory, Up/Down status.  Luckily they were licensed for vROps Advanced which according to the version comparison chart provides “Monitoring of OS resources (CPU, disk, memory, network)”.  This is really just a fancy way of saying they can leverage the End Point Operations (EPOPS) Agent to gain greater visibility into the Guest OS.  vROps Enterprise is required for visibility into the Application layer (SQL Server, IIS, Postgres, etc.) but still leverages the EPOPS Agent.  The great thing about this solution is that you can monitor both virtual AND physical systems… assuming you are licensed properly of course.

Getting Started

I won’t go into detail regarding how to install the EPOPS agent itself as I feel the VMware documentation is pretty thorough and can be found here for version 6.6.x.  Once you have the agent installed you can login to vROps and validate that it is connected to your environment by browsing to “Administration” –> “Configuration” –> “End Point Operations“.

vROps EPOPS Agents

A good way to validate that you are receiving data is to browse to one of your systems and check the metrics: “Environment” –> “Operating Systems” –> “Windows” OR “Linux” –> HOSTNAME –> “All Metrics”.

vROps EPOPS Metrics

Configuration

Now that you have agents installed and sending metrics to vROps you will need to configure which services you want to monitor.  There are a few options to perform this configuration:

  • Manually – One by One
  • Automatically – All Services
  • Automatically – Specific Services

vROps Manual Configuration – One by One

This option works great if you are only monitoring a handful of systems; however, it is by far the most time consuming method.  Go to “Environment” –> “Operating Systems” –> “Windows” –> HOSTNAME –> “Actions” –> “Monitor OS Object” –> “Monitor Windows Service“.

vROps Monitor Windows Service

Now simply give your new service a name and specify the “Service name” of the Windows Service.

vROps DNS Server

vROps Windows DNS Server

vROps DNS Service

vROps Automatic Configuration – All Services

Manual configuration (above) works well but can be extremely slow and tedious.  Another option is to modify the agent.properties config file on the remote system and add a specific line of configuration to trigger an automatic service discovery.  By default, the agent.properties file is located in the C:\ep-agent\conf\ directory.  Open this file and add the following line to the bottom, then restart the End Point Operations Management Agent service.

windows.services.discover=true

This will result in ALL the Windows Services being configured automatically in vROps; however, there are two caveats:

  1. This config change will have no effect on systems where you have already added a service to monitor manually within vROps.
  2. Windows services that have a Startup Type of “Manual” or “Disabled” will not be added via this config option… only “Automatic”, “Automatic (Delayed Start)”, or “Automatic (Triggered Start)” will be added.

vROps Automatica All Services

vROps Automatic Configuration – Specific Services

The final option is to add a specific line of configuration to the agent.properties file that specifies only certain Windows Services.  For example:

  • DNS Client
  • Print Spooler
  • DHCP Client
  • VMware Tools
  • VMware vRealize Log Insight Agent
  • Windows Time

windows.services.discover=Dnscache,Spooler,Dhcp,VMTools,LogInsightAgentService,W32Time

Again, a restart of the End Point Operations Management Agent service will be needed and the same two caveats apply here as well:

  1. This config change will have no effect on systems where you have already added a service to monitor manually within vROps or if the “windows.services.discover=true” config has been used previously.
  2. Windows services that have a Startup Type of “Manual” or “Disabled” will not be added via this config option… only “Automatic”, “Automatic (Delayed Start)”, or “Automatic (Triggered Start)” will be added.

vROps Automatic Specific Services

This is a great option if you have many VMs performing the same role, i.e. – SQL Servers, Domain Controllers, Print Servers, etc.  A post Agent install script could be ran to automate this configuration across your VMs.  Perhaps a vRO workflow that leverages vSphere Tags could be used.

The Automatic config options (modifying the agent.properties file) is where the EPOPS Agent shows its Hyperic roots.  The following KB article outlines these configurations specifically for vFabric Hyperic Server: Enabling auto-discovery for Windows Services when using VMware vFabric Hyperic 4.5/4.6 (1032736).

vROps Up/Down Alert Configuration

Now that we have our Windows Services defined in vROps we need to setup an Alert Definition with Alert Symptoms to alert us when a service goes down.  Start by navigating to “Alerts” –> “Alert Settings” –> “Symptom Definitions” and click the “Add” button.

vROps Alerts

Choose “Windows Service” as the Base Object Type and specify the metric “Resource Availability” as being less than 100 to define our symptom then click Save.

vROps Symptom Definition

Now create a new Alert Definition based on our new Alert Symptom.

vROps Alert Definition

The final step is to create a Notification Setting that defines the notification that will be triggered when an Alert is created.

vROps Notification Setting

Now we will receive an email alert whenever a defined Windows Service goes down.  Below is an example of the email alert:

vROps Email Alert

12 thoughts on “Monitoring Windows Services with VMware vRealize Operations Manager (vROps)

  1. Great article!

    I was wondering how would someone get the name of the VM in the email that gets sent out? I was able to replicate a similar output as yours but the alert seems kinda vague if you don’t know what is the source.

    1. Yeah I was wondering the same thing. Can’t seem to find much documentation on how to get that in the email.

  2. Any idea on how this could be replicated in vROps 7.5 with the new telegraf agents (application monitoring)?

  3. Hey Steve – This is a great way to get alerts for stopped services, but to re-ask the question – How can we get the name of the server added to the alert notification?

      1. Sorry guys… I missed your questions here. The only way I have been successful with adding the server/VM name to the alert email is to modify the Display Name of the Monitored Service in vROps. So rather than naming it “DNS Server”, try naming it “VM_Name – DNS Server”. This is easy to do when adding monitored services manually, but there will be a lot of rework involved if you are leveraging either of the Automatic methods outlined above.

    1. This can only be done by editing the service object and adding the server name with the service. E.g. Name of Service Discovered: DNS Client.. New Name: DNS Client_ xyz server

  4. Hi Steve
    I would like to know what is the syntax to discover the services on a linux server, in Windows I see that we will use the following syntax:
    windows.services.discover = true

    1. Unfortunately, there is no Linux equivalent for this… to monitor processes on Linux, you need to add them separately by navigating to the OS object and going into Actions -> Monitor OS Object -> Monitor Processes.

Leave a Reply

Your email address will not be published. Required fields are marked *

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