{"id":2198,"date":"2025-10-01T19:01:23","date_gmt":"2025-10-01T18:01:23","guid":{"rendered":"https:\/\/thomas-kopton.de\/vblog\/?p=2198"},"modified":"2025-10-01T19:01:25","modified_gmt":"2025-10-01T18:01:25","slug":"monitoring-ha-vm-restarts-in-vcf-operations","status":"publish","type":"post","link":"https:\/\/thomas-kopton.de\/vblog\/?p=2198","title":{"rendered":"Monitoring HA VM Restarts in VCF Operations"},"content":{"rendered":"\n<p>Someone recently asked me if there&#8217;s a straightforward way to notify <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Virtual Machine<\/mark> owners as soon as their VMs were affected by an <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">HA Event<\/mark>. Apparently, suitable alarm definitions are not available out-of-the-box in<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"> <strong>VCF Operations<\/strong><\/mark>, and the customer asked for a solution.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Scenario<\/h5>\n\n\n\n<p>The scenario is therefore quite simple:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Each host can run VMs from different owners.<\/li>\n\n\n\n<li>Each VM has the owner recorded in its metadata, in this case as a vSphere Tag<\/li>\n\n\n\n<li>The owners want to be informed when their VMs are restarted by an HA event on a different ESX host.<\/li>\n\n\n\n<li>The owners should be notified via a REST Webhook.<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">First Approach<\/h5>\n\n\n\n<p>Initially, I considered how I could deduce the corresponding VMs that were running on an ESX host at the time of an HA alarm, and then inform their owners as simply as possible. Since there&#8217;s an alarm for ESX Host HA Events, my first thought was to experiment with this alarm and various methods of grouping VMs, essentially making them &#8216;dependent&#8217; on it. However, I quickly realized that this approach wouldn&#8217;t lead to the desired outcome. The relationship between an ESX Host and its VMs can already be different after an HA event, depending on how the VCF Operations Collection Cycle had just run. Not to mention other complexities or dependencies within Custom Groups. A different solution was needed.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Solution<\/h5>\n\n\n\n<p>Then I wondered if the actual vCenter Event might simply be deactivated in the settings of the VCF Operations Adapter, which would explain why there&#8217;s no Symptom\/Alert out-of-the-box. I quickly consulted my great VCF Operations expert friend Brock (<a href=\"https:\/\/www.brockpeterson.com\/post\/pulling-vcenter-events-into-aria-operations\">https:\/\/www.brockpeterson.com\/post\/pulling-vcenter-events-into-aria-operations<\/a>) to save myself the search for the config path.<\/p>\n\n\n\n<p>To my surprise, the corresponding event, <code>com.vmware.vc.ha.VmRestartedByHAEvent<\/code>, isn&#8217;t deactivated at all, it&#8217;s there, and it&#8217;s also being received, as my tests confirmed, and can therefore be used for alarms. From this point on, solving the task became relatively simple.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"247\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-1024x247.png\" alt=\"\" class=\"wp-image-2200\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-1024x247.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-300x72.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-768x186.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-1536x371.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-2048x495.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 01: HA Event in VCF Operations.<\/em><\/figcaption><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Event Based Symptom<\/h6>\n\n\n\n<p>The first step is our own <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Symptom Definition<\/mark><\/strong>, which is based on this event. In the following screenshot, we can see that we are using a <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Message Event<\/mark><\/strong> of type <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Change<\/mark><\/strong> and that the <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Event Message<\/mark><\/strong> itself must contain the text <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">vSphere HA restarted virtual machine<\/mark><\/em>. That&#8217;s it, we don&#8217;t need anything more.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-1-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"227\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-1-1024x227.png\" alt=\"\" class=\"wp-image-2203\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-1-1024x227.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-1-300x66.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-1-768x170.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-1-1536x340.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-1-2048x454.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 02: Symptom Definition.<\/em><\/figcaption><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Alert Definition<\/h6>\n\n\n\n<p>The next step is the actual <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>Alert<\/strong> <strong>Definition<\/strong><\/mark>, which, of course, only contains the single symptom we created in the first step. It&#8217;s all very simple. The next screenshot shows the definition.<br>As always when creating custom alerts and symptoms, do not forget to enable them in the corresponding <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">VCF Operations Policy<\/mark><\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"526\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-2-1024x526.png\" alt=\"\" class=\"wp-image-2204\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-2-1024x526.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-2-300x154.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-2-768x395.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-2-1536x789.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-2.png 1946w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 03: Alert Definition.<\/em><\/figcaption><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Webhook<\/h6>\n\n\n\n<p>Since the requirement is to send the notifications via REST to a target system, we naturally first need a <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Webhook Notification Plugin Outbound Instance<\/mark><\/strong> and a <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Payload Template<\/mark><\/strong>.<\/p>\n\n\n\n<p>For this blog post, I did not use a dedicated REST server. In real environments, there can be many different REST endpoints that expect their own specific payloads. For simplicity&#8217;s sake, I built a small Python REST server for testing purposes, implementing only one method,\u00a0<code>pushAlert<\/code>, which is sufficient for demonstration. The following image shows the configuration of the <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Outbound Instance<\/mark><\/strong>. As I&#8217;ve omitted a dedicated test method, the test run will produce an error. However, this is negligible, as the actual method I will use later functions correctly.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"608\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-3-1024x608.png\" alt=\"\" class=\"wp-image-2207\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-3-1024x608.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-3-300x178.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-3-768x456.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image-3.png 1442w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 04: Webhook Notification Plugin Outbound Instance Definition.<\/em><\/figcaption><\/figure>\n\n\n\n<p>In order for the REST endpoint to correctly process our Notification, we also need a <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Payload Template<\/mark><\/strong>. In this template, we precisely specify what data to send, in what format, using which HTTP method, and to which specific REST method. In a real-world scenario, this configuration might be a bit more extensive, but it&#8217;s still not rocket science \ud83d\ude42 The following image shows my simple configuration, which is perfectly sufficient for my fake REST server.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"731\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-1024x731.png\" alt=\"\" class=\"wp-image-2210\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-1024x731.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-300x214.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-768x548.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-1536x1096.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image.png 1824w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 05: Payload Template.<\/em><\/figcaption><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Notification Definition<\/h6>\n\n\n\n<p>Now we have all the ingredients, and we can assemble them into a complete solution using a VCF Operations <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Notification<\/mark><\/strong>. This means an alarm, based on a symptom, will trigger a notification that in turn sends a predefined REST payload to a configured REST endpoint. The next image shows my Notification configuration.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"715\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-1-1024x715.png\" alt=\"\" class=\"wp-image-2214\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-1-1024x715.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-1-300x209.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-1-768x536.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-1.png 1384w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 06: Notification Definition.<\/em><\/figcaption><\/figure>\n\n\n\n<p>It&#8217;s important at this point that we select the correct Alert Definition in the configuration of the <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Criteria<\/mark><\/strong> for the Notification, otherwise we will receive notifications for the wrong events. Equally important is the configuration of the REST endpoint and the payload, otherwise we might send the data to the wrong recipient. The following two images illustrate the configuration.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"868\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-2-1024x868.png\" alt=\"\" class=\"wp-image-2215\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-2-1024x868.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-2-300x254.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-2-768x651.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-2-1536x1302.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-2.png 1564w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 07: Notification Definition &#8211; Criteria.<\/em><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"662\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-3-1024x662.png\" alt=\"\" class=\"wp-image-2217\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-3-1024x662.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-3-300x194.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-3-768x496.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-3-1536x993.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-3-2048x1324.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 08: Notification Definition &#8211; Outbound Method and Payload.<\/em><\/figcaption><\/figure>\n\n\n\n<p>All configurations and definitions from this post can be found in my Git repo: <a href=\"https:\/\/github.com\/tkopton\/aria-operations-content\/tree\/main\/VM-HA-Event-Notification\">https:\/\/github.com\/tkopton\/aria-operations-content\/tree\/main\/VM-HA-Event-Notification<\/a><\/p>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Stay<\/mark><\/strong> <strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f5d800\" class=\"has-inline-color\">safe<\/mark><\/strong>.<\/p>\n\n\n\n<p>Thomas \u2013&nbsp;<a href=\"https:\/\/twitter.com\/ThomasKopton\">https:\/\/twitter.com\/ThomasKopton<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Someone recently asked me if there&#8217;s a straightforward way to notify Virtual Machine owners as soon as their VMs were affected by an HA Event. Apparently, suitable alarm definitions are not available out-of-the-box in VCF Operations, and the customer asked for a solution. Scenario The scenario is therefore quite simple: First Approach Initially, I considered &#8230;<\/p>\n","protected":false},"author":1,"featured_media":2200,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[79,57,93,34,2],"tags":[58,94,36],"class_list":["post-2198","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-alerting","category-aria-operations","category-vcf-operations","category-vrealize-operations","category-vrops","tag-aria-operations","tag-vcf-operations","tag-vrealize-operations"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Monitoring HA VM Restarts in VCF Operations - TOMsOps<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thomas-kopton.de\/vblog\/?p=2198\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Monitoring HA VM Restarts in VCF Operations - TOMsOps\" \/>\n<meta property=\"og:description\" content=\"Someone recently asked me if there&#8217;s a straightforward way to notify Virtual Machine owners as soon as their VMs were affected by an HA Event. Apparently, suitable alarm definitions are not available out-of-the-box in VCF Operations, and the customer asked for a solution. Scenario The scenario is therefore quite simple: First Approach Initially, I considered ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thomas-kopton.de\/vblog\/?p=2198\" \/>\n<meta property=\"og:site_name\" content=\"TOMsOps\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-01T18:01:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-01T18:01:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2252\" \/>\n\t<meta property=\"og:image:height\" content=\"544\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Thomas Kopton\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thomas Kopton\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2198#article\",\"isPartOf\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2198\"},\"author\":{\"name\":\"Thomas Kopton\",\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82\"},\"headline\":\"Monitoring HA VM Restarts in VCF Operations\",\"datePublished\":\"2025-10-01T18:01:23+00:00\",\"dateModified\":\"2025-10-01T18:01:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2198\"},\"wordCount\":821,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2198#primaryimage\"},\"thumbnailUrl\":\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image.png\",\"keywords\":[\"Aria Operations\",\"VCF Operations\",\"vRealize Operations\"],\"articleSection\":[\"Alerting\",\"Aria Operations\",\"VCF Operations\",\"vRealize Operations\",\"vROps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/thomas-kopton.de\/vblog\/?p=2198#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2198\",\"url\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2198\",\"name\":\"Monitoring HA VM Restarts in VCF Operations - TOMsOps\",\"isPartOf\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2198#primaryimage\"},\"image\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2198#primaryimage\"},\"thumbnailUrl\":\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image.png\",\"datePublished\":\"2025-10-01T18:01:23+00:00\",\"dateModified\":\"2025-10-01T18:01:25+00:00\",\"author\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82\"},\"breadcrumb\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2198#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/thomas-kopton.de\/vblog\/?p=2198\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2198#primaryimage\",\"url\":\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image.png\",\"contentUrl\":\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image.png\",\"width\":2252,\"height\":544},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2198#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/thomas-kopton.de\/vblog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Monitoring HA VM Restarts in VCF Operations\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/#website\",\"url\":\"https:\/\/thomas-kopton.de\/vblog\/\",\"name\":\"TOMsOps\",\"description\":\"Just another VMware Cloud Management Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/thomas-kopton.de\/vblog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82\",\"name\":\"Thomas Kopton\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e746aafbd3733172ceb4d600ba1feda61bc87cd3b70f5a9dfb581907cc7973b1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e746aafbd3733172ceb4d600ba1feda61bc87cd3b70f5a9dfb581907cc7973b1?s=96&d=mm&r=g\",\"caption\":\"Thomas Kopton\"},\"url\":\"https:\/\/thomas-kopton.de\/vblog\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Monitoring HA VM Restarts in VCF Operations - TOMsOps","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thomas-kopton.de\/vblog\/?p=2198","og_locale":"en_US","og_type":"article","og_title":"Monitoring HA VM Restarts in VCF Operations - TOMsOps","og_description":"Someone recently asked me if there&#8217;s a straightforward way to notify Virtual Machine owners as soon as their VMs were affected by an HA Event. Apparently, suitable alarm definitions are not available out-of-the-box in VCF Operations, and the customer asked for a solution. Scenario The scenario is therefore quite simple: First Approach Initially, I considered ...","og_url":"https:\/\/thomas-kopton.de\/vblog\/?p=2198","og_site_name":"TOMsOps","article_published_time":"2025-10-01T18:01:23+00:00","article_modified_time":"2025-10-01T18:01:25+00:00","og_image":[{"width":2252,"height":544,"url":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image.png","type":"image\/png"}],"author":"Thomas Kopton","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Thomas Kopton","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2198#article","isPartOf":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2198"},"author":{"name":"Thomas Kopton","@id":"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82"},"headline":"Monitoring HA VM Restarts in VCF Operations","datePublished":"2025-10-01T18:01:23+00:00","dateModified":"2025-10-01T18:01:25+00:00","mainEntityOfPage":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2198"},"wordCount":821,"commentCount":0,"image":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2198#primaryimage"},"thumbnailUrl":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image.png","keywords":["Aria Operations","VCF Operations","vRealize Operations"],"articleSection":["Alerting","Aria Operations","VCF Operations","vRealize Operations","vROps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thomas-kopton.de\/vblog\/?p=2198#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2198","url":"https:\/\/thomas-kopton.de\/vblog\/?p=2198","name":"Monitoring HA VM Restarts in VCF Operations - TOMsOps","isPartOf":{"@id":"https:\/\/thomas-kopton.de\/vblog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2198#primaryimage"},"image":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2198#primaryimage"},"thumbnailUrl":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image.png","datePublished":"2025-10-01T18:01:23+00:00","dateModified":"2025-10-01T18:01:25+00:00","author":{"@id":"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82"},"breadcrumb":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2198#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thomas-kopton.de\/vblog\/?p=2198"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2198#primaryimage","url":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image.png","contentUrl":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/09\/image.png","width":2252,"height":544},{"@type":"BreadcrumbList","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2198#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thomas-kopton.de\/vblog"},{"@type":"ListItem","position":2,"name":"Monitoring HA VM Restarts in VCF Operations"}]},{"@type":"WebSite","@id":"https:\/\/thomas-kopton.de\/vblog\/#website","url":"https:\/\/thomas-kopton.de\/vblog\/","name":"TOMsOps","description":"Just another VMware Cloud Management Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thomas-kopton.de\/vblog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82","name":"Thomas Kopton","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e746aafbd3733172ceb4d600ba1feda61bc87cd3b70f5a9dfb581907cc7973b1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e746aafbd3733172ceb4d600ba1feda61bc87cd3b70f5a9dfb581907cc7973b1?s=96&d=mm&r=g","caption":"Thomas Kopton"},"url":"https:\/\/thomas-kopton.de\/vblog\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/posts\/2198","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2198"}],"version-history":[{"count":13,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/posts\/2198\/revisions"}],"predecessor-version":[{"id":2219,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/posts\/2198\/revisions\/2219"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/media\/2200"}],"wp:attachment":[{"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}