{"id":2322,"date":"2025-12-16T16:01:54","date_gmt":"2025-12-16T15:01:54","guid":{"rendered":"https:\/\/thomas-kopton.de\/vblog\/?p=2322"},"modified":"2025-12-16T16:01:56","modified_gmt":"2025-12-16T15:01:56","slug":"migrating-content-and-config-from-aria-operations-for-logs-8-18-to-vcf-operations-for-logs-9","status":"publish","type":"post","link":"https:\/\/thomas-kopton.de\/vblog\/?p=2322","title":{"rendered":"Migrating Content and Config from Aria Operations for Logs 8.18 to VCF Operations for Logs 9"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\"><strong>Introduction<\/strong><\/h4>\n\n\n\n<p>As organizations modernize their Private Clouds with <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">VMware Cloud Foundation 9<\/mark><\/strong>, the logging infrastructure undergoes a significant evolution. Transitioning from <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>VMware Aria Operations for Logs 8.18.x<\/strong> <\/mark>(formerly vRealize Log Insight) to the new <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">VCF Operations for Logs 9<\/mark><\/strong> is designed as a side-by-side migration requiring a fresh deployment.<\/p>\n\n\n\n<p>While there is a fully supported method to transfer up to 90 days of historical log data to the new instance, ensuring operational continuity requires a strategy for your custom logic. Beyond just log data, your environment relies on years of tailored content\u2014such as Dashboards, Alert Definitions, and Extracted Fields\u2014as well as <strong>specific configuration settings<\/strong> that tune the system to your environment.<\/p>\n\n\n\n<p>Since these artifacts are not automatically carried over during the deployment, preserving them requires a targeted approach. In this post, I will outline how to leverage the native tools and features within Aria Operations for Logs and VCF Operations for Logs 9 to effectively migrate your critical content and essential configuration settings to the new VCF 9 platform.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Content Export using Custom Content Packs<\/strong><\/h4>\n\n\n\n<p>One of the most efficient ways to migrate bulk content is to treat your custom work as if it were a third-party application. In <strong>Aria Operations for Logs<\/strong>, <strong>Content Packs<\/strong> are essentially containers designed to package logic and visualizations for portability. While we typically associate them with vendors (e.g., the <em>vSphere Content Pack<\/em>), you can create your own private Content Packs to bundle your environment&#8217;s custom artifacts into a single, portable <code>.vlcp<\/code> file.<\/p>\n\n\n\n<p>This method is ideal because it maintains the relationships between objects. for example, if you add a Dashboard to a Content Pack, the system is generally smart enough to prompt you to include the dependencies (like the Queries or Widgets used in that Dashboard).<\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>What Can Be Included?<\/strong><\/h5>\n\n\n\n<p>When you create a custom Content Pack for migration, you can include the following objects:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Dashboards<\/mark>:<\/strong> Your custom operational views.<\/li>\n\n\n\n<li><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Alert Definitions<\/mark>:<\/strong> All custom alarms and notification triggers.<\/li>\n\n\n\n<li><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Queries<\/mark>:<\/strong> Saved searches and favorite queries.<\/li>\n\n\n\n<li><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Extracted Fields<\/mark>:<\/strong> Regex or delimiter-based field definitions you created to parse your specific logs.<\/li>\n\n\n\n<li><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Agent Groups<\/mark>:<\/strong> Configurations for the Log Insight Agents (li-agent) running on your VMs.<\/li>\n<\/ul>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Note:<\/mark><\/strong> <em>Content Packs <strong>do not<\/strong> include system configuration settings (like SMTP setup, Authentication providers, or VIPs) or User\/Role assignments. Those must be handled separately.<\/em><\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Creating and Exporting a Migration Content Pack<\/strong><\/h5>\n\n\n\n<p>Follow these steps in your source environment (Aria Operations for Logs 8.18.x) to package your content.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>Create the Custom Content Pack<\/strong><\/h6>\n\n\n\n<ul start=\"1\" class=\"wp-block-list\">\n<li>Navigate to the <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Content Packs<\/mark><\/strong> tab in the main menu.<\/li>\n\n\n\n<li>In the left-hand pane, under <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>Custom Content<\/strong> <\/mark>select <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">My Content <\/mark><\/strong>or <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Shared Content<\/mark> <\/strong>depending where you have placed your content. <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Note:<\/mark><\/strong> <strong><em>The procedure needs to be applied to both sections if both include custom content.<\/em><\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"644\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-1024x644.png\" alt=\"\" class=\"wp-image-2336\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-1024x644.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-300x189.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-768x483.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-1536x966.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-2048x1288.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 01: Custom Content in Aria Operations for Logs.<\/em><\/figcaption><\/figure>\n\n\n\n<ul start=\"1\" class=\"wp-block-list\">\n<li>Select the Export menu item.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"705\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-1-1024x705.png\" alt=\"\" class=\"wp-image-2342\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-1-1024x705.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-1-300x207.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-1-768x529.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-1-1536x1058.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-1.png 2044w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 02: Exporting Custom Content in Aria Operations for Logs.<\/em><\/figcaption><\/figure>\n\n\n\n<ul start=\"1\" class=\"wp-block-list\">\n<li>Select the items you want to add to the content pack and export. Enter the required information like Name, Version and Namespace. Click Export.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"787\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-3-1024x787.png\" alt=\"\" class=\"wp-image-2345\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-3-1024x787.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-3-300x230.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-3-768x590.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-3-1536x1180.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-3.png 1708w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 03: Custom Content export &#8211; items and information.<\/em><\/figcaption><\/figure>\n\n\n\n<p>You now have a single file containing the &#8220;brain&#8221; of your logging environment, ready to be imported directly into <strong>VCF Operations for Logs 9<\/strong> via the <em>Import Content Pack<\/em> workflow.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Importing Content into VCF Operations for Logs 9<\/strong><\/h4>\n\n\n\n<p>With your <code>.vlcp<\/code> export file in hand and your new <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">VCF Operations for Logs 9<\/mark><\/strong> instance deployed, it is time to restore your operational brain.<\/p>\n\n\n\n<p>While the UI in VCF Operations for Logs 9 has been refreshed, the mechanism for importing content remains consistent with previous versions. However, you must make a strategic decision during the import process: <strong>Do you want this content to be a static &#8220;Golden Standard&#8221; or do you want it to be fully editable?<\/strong><\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Importing the Migration Content Pack<\/strong><\/h5>\n\n\n\n<ul start=\"1\" class=\"wp-block-list\">\n<li>Log in to your new <strong>VCF Operations for Logs 9<\/strong> web interface as an Administrator.<\/li>\n\n\n\n<li>Navigate to the <strong>Content Packs<\/strong> tab from the main menu.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-9.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"535\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-9-1024x535.png\" alt=\"\" class=\"wp-image-2363\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-9-1024x535.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-9-300x157.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-9-768x401.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-9-1536x803.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-9.png 1902w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 04: Import Content Pack in VCF Operations for Logs 9.<\/em><\/figcaption><\/figure>\n\n\n\n<ul start=\"1\" class=\"wp-block-list\">\n<li>In the left-hand navigation pane click the <strong>Import Content Pack<\/strong> button.<\/li>\n\n\n\n<li>A file select dialog window will appear. Locate and select the <code>.vlcp<\/code> file you exported from the old environment (e.g., <code>Migration_Export_8.18.vlcp<\/code>).<\/li>\n\n\n\n<li><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Critical Step<\/mark>:<\/strong> You will be presented with an import dialog offering two distinct modes. Choose carefully:\n<ul class=\"wp-block-list\">\n<li><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Option A: Install as Content Pack<\/mark><\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Behavior:<\/em> This imports the content as a read-only &#8220;installed&#8221; pack, visible to all users immediately.<\/li>\n\n\n\n<li><em>Pros:<\/em> It acts like a sealed backup. Users cannot accidentally break the dashboards or alerts. It preserves the &#8220;system&#8221; feel of the content.<\/li>\n\n\n\n<li><em>Cons:<\/em> You cannot edit the content directly. To make changes later, you must clone the widget\/dashboard to &#8220;My Content,&#8221; edit it, and repackage it.<\/li>\n\n\n\n<li><em>Best for:<\/em> Finalized production dashboards, standard alerts, and compliance rules.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Option B: Import into My Content<\/mark><\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Behavior:<\/em> This extracts every dashboard, alert, and query from the pack and places them directly into your personal &#8220;My Content&#8221; folder.<\/li>\n\n\n\n<li><em>Pros:<\/em> Fully editable immediately. Great for testing or if you plan to refactor the content significantly in the new version.<\/li>\n\n\n\n<li><em>Cons:<\/em> It is only visible to <em>you<\/em> initially. You will need to manually share dashboards or move them to &#8220;Shared Content&#8221; for other teams to see them.<\/li>\n\n\n\n<li><em>Best for:<\/em> Draft content or items you know need immediate updating (e.g., changing deprecated query syntax).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-8.png\"><img loading=\"lazy\" decoding=\"async\" width=\"888\" height=\"874\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-8.png\" alt=\"\" class=\"wp-image-2360\" style=\"width:512px\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-8.png 888w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-8-300x295.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-8-768x756.png 768w\" sizes=\"auto, (max-width: 888px) 100vw, 888px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 05: Start importing your custom Content Pack.<\/em><\/figcaption><\/figure>\n\n\n\n<ul start=\"1\" class=\"wp-block-list\">\n<li>Click <strong>Import<\/strong>.<\/li>\n\n\n\n<li>Review the import summary and uncheck content you do not want to import.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-10.png\"><img loading=\"lazy\" decoding=\"async\" width=\"714\" height=\"1024\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-10-714x1024.png\" alt=\"\" class=\"wp-image-2368\" style=\"width:512px\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-10-714x1024.png 714w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-10-209x300.png 209w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-10-768x1102.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-10.png 892w\" sizes=\"auto, (max-width: 714px) 100vw, 714px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 06: Review and finish the import.<\/em><\/figcaption><\/figure>\n\n\n\n<ul start=\"1\" class=\"wp-block-list\">\n<li>Click <strong>Import<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">Review<\/h5>\n\n\n\n<p>After the importing process has been finished we will find the content under My Content or as an Immutable Content Pack in the Content Packs section.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-13.png\"><img loading=\"lazy\" decoding=\"async\" width=\"976\" height=\"1024\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-13-976x1024.png\" alt=\"\" class=\"wp-image-2385\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-13-976x1024.png 976w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-13-286x300.png 286w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-13-768x806.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-13-1464x1536.png 1464w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-13-1952x2048.png 1952w\" sizes=\"auto, (max-width: 976px) 100vw, 976px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 07: Custom Content available in VCF Operations for Logs 9.<\/em><\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Recreating System Configuration &amp; Settings<\/strong><\/h4>\n\n\n\n<p>While Content Packs are excellent for migrating the <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">logic<\/mark> of your operations (alerts, dashboards, queries), they do not capture the <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">infrastructure settings <\/mark>of the cluster itself. Things like SMTP servers, authentication providers, and log forwarder settings are specific to the deployment instance and must be handled separately.<\/p>\n\n\n\n<p>Fortunately, both Aria Operations for Logs 8.18.x and VCF Operations Logs 9 offer a well-documented REST API. The next screenshot shows a quick overview of all features and setting available via the REST API.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"871\" height=\"1024\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-4-871x1024.png\" alt=\"\" class=\"wp-image-2350\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-4-871x1024.png 871w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-4-255x300.png 255w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-4-768x903.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-4-1306x1536.png 1306w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-4-1741x2048.png 1741w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-4.png 1930w\" sizes=\"auto, (max-width: 871px) 100vw, 871px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 08: REST API Overview.<\/em><\/figcaption><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Config Extraction via REST API<\/strong><\/h5>\n\n\n\n<p>You do not need a complex development environment to do this. You can easily utilize standard API clients like <strong>Postman<\/strong>, or even better, leverage the <strong>interactive Swagger documentation<\/strong> built directly into every appliance.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>Using the Integrated Swagger UI<\/strong><\/h6>\n\n\n\n<p>Every node in your cluster hosts its own interactive API documentation. This is often the quickest way to &#8220;GET&#8221; a configuration from the old system and &#8220;POST&#8221; it to the new one without installing external tools.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Access the UI:<\/strong> Navigate to <code>https:\/\/&lt;your-logs-fqdn&gt;\/rest-api<\/code> on both your Source (8.18) and Target (VCF 9) appliances.<\/li>\n\n\n\n<li><strong>Authorize:<\/strong> Use curl or Postman to retrieve a token (<code>sessionID<\/code>) which we use in subsequent REST calls for authentication as depicted in the next figure.<\/li>\n<\/ul>\n\n\n\n<p>The next picture shows the curl command to obtain the access token.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-11-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"315\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-11-1024x315.png\" alt=\"\" class=\"wp-image-2376\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-11-1024x315.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-11-300x92.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-11-768x237.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-11-1536x473.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-11-2048x631.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 09: Authorization &#8211; acquire access token.<\/em><\/figcaption><\/figure>\n\n\n\n<p>The authorization using the retrieved token starts by clicking on the corresponding button in the UI and submitting the access token in the Bearer input field as value as shown in the next screenshot.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-14.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"424\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-14-1024x424.png\" alt=\"\" class=\"wp-image-2396\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-14-1024x424.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-14-300x124.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-14-768x318.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-14-1536x636.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-14-2048x848.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 10: Authorization &#8211; use access token.<\/em><\/figcaption><\/figure>\n\n\n\n<p>Naturally, we cannot cover every single REST call in this blog post. Instead, we will look at two example configuration areas that are frequently used and typically remain largely unchanged after migrating to VCF Operations Logs 9:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Log Forwarding Settings<\/li>\n\n\n\n<li>vCenter Endpoints<\/li>\n<\/ul>\n\n\n\n<h6 class=\"wp-block-heading\">vCenter Endpoints<\/h6>\n\n\n\n<p>Configured connections to individual vCenter instances are practically the primary source of log messages in a VCF environment, making them arguably the most critical configuration we need to migrate.<\/p>\n\n\n\n<p>While a manual approach works fine for just one or two instances, what happens when you have 10 or more? This becomes especially tricky if they have varying settings, such as different protocols or complex tagging configurations.<\/p>\n\n\n\n<p>This is where the API comes to the rescue\u2014potentially paired with a bit of scripting if you want to handle the entire process in one go. So, let\u2019s first take a look at how we can extract this information from the Aria Operations for Logs 8.18.x system.<\/p>\n\n\n\n<p>A simple GET request to <code>https:\/\/$logsfqdn:9543\/api\/v2\/vsphere<\/code>\u2014please note the specific TCP port where the API is reachable\u2014is all we need to retrieve information about the configured vSphere endpoints.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-6-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"796\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-6-1024x796.png\" alt=\"\" class=\"wp-image-2354\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-6-1024x796.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-6-300x233.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-6-768x597.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-6-1536x1193.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-6-2048x1591.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 11: vSphere GET REST call.<\/em><\/figcaption><\/figure>\n\n\n\n<p>Here is what the response looks like in my small test environment:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"vCenterServers\": &#91;\n    {\n      \"hostname\": \"sfo-w01-vc01.sfo.rainpole.io\",\n      \"username\": \"svc-li-vc-62bae1d2-ac78-44fa-8879-aa32a46901ca-6bb04a14ab1343da-1@sfo-w01.local\",\n      \"esxiHostsConfigured\": true,\n      \"passwordSet\": true,\n      \"syslogProtocol\": \"UDP\",\n      \"target\": \"10.11.10.11\",\n      \"vsphereEventsEnabled\": true,\n      \"configureNewEsxiHostsAutomatically\": true,\n      \"collectionStatus\": \"Collecting\",\n      \"uuid\": \"c2abe088-c034-4345-9134-e9c22fbbeca2\",\n      \"userTags\": \"\"\n    },\n    {\n      \"hostname\": \"sfo-m01-vc01.sfo.rainpole.io\",\n      \"username\": \"svc-li-vc-246df477-85ab-4aae-80eb-a7408871c240-6bb04a14ab1343da-1@vsphere.local\",\n      \"esxiHostsConfigured\": true,\n      \"passwordSet\": true,\n      \"syslogProtocol\": \"UDP\",\n      \"target\": \"10.11.10.11\",\n      \"vsphereEventsEnabled\": true,\n      \"configureNewEsxiHostsAutomatically\": true,\n      \"collectionStatus\": \"Collecting\",\n      \"uuid\": \"3574844a-1a38-45f0-8fff-cef58bd3f084\",\n      \"userTags\": \"\"\n    }\n  ]\n}<\/code><\/pre>\n\n\n\n<p>To apply this configuration to the target system, we utilize the well-documented POST REST call shown in the screenshot below. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-15-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"432\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-15-1024x432.png\" alt=\"\" class=\"wp-image-2403\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-15-1024x432.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-15-300x126.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-15-768x324.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-15-1536x647.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-15-2048x863.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 12: vSphere POST REST call.<\/em><\/figcaption><\/figure>\n\n\n\n<p>This POST command requires a JSON body with a specific structure, and this is where the GET response comes into play\u2014though we need to modify it slightly. This is the stage where automation would be a huge time-saver if we were dealing with a large number of endpoints; otherwise, copy &amp; paste combined with a little manual tweaking works just fine.<\/p>\n\n\n\n<p>This is the JSON Body schema and one of the vSphere endpoints we received in the response in comparison.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-16-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"325\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-16-1024x325.png\" alt=\"\" class=\"wp-image-2406\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-16-1024x325.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-16-300x95.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-16-768x244.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-16-1536x488.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-16-2048x650.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 13: vSphere POST JSON body.<\/em><\/figcaption><\/figure>\n\n\n\n<p>Since we have status data in the response that we do not need for the POST JSON, the actual JSON body is pretty simple. Please note, that we have to submit one POST call per vCenter instance. Target is the new VCF Operations for Logs 9 IP or VIP.<\/p>\n\n\n\n<p>First vCenter instance:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> {\n      \"acceptCert\": true,\n      \"hostname\": \"vcenter-mgmt.vcf.sddc.lab\",\n      \"username\": \"administrator@vsphere.local\",\n      \"password\": \"mysecretpw\",\n      \"syslogProtocol\": \"UDP\",\n      \"target\": \"10.11.10.11\",\n      \"vsphereEventsEnabled\": true,\n      \"configureNewEsxiHostsAutomatically\": true,\n      \"userTags\": \"vcfcomponent=mgmt-vcenter\"\n }<\/code><\/pre>\n\n\n\n<p>Second vCenter instance:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n      \"acceptCert\": true,\n      \"hostname\": \"vcenter-wld.vcf.sddc.lab\",\n      \"username\": \"administrator@vsphere.local\",\n      \"password\": \"mysecretpw\",\n      \"syslogProtocol\": \"UDP\",\n      \"target\": \"10.11.10.11\",\n      \"vsphereEventsEnabled\": true,\n      \"configureNewEsxiHostsAutomatically\": true,\n      \"userTags\": \"vcfcomponent=wld-vcenter\"\n}<\/code><\/pre>\n\n\n\n<p>Now we can use the POST call to configure the vCenter endpoints. The result is shown in the next picture.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-17-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"412\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-17-1024x412.png\" alt=\"\" class=\"wp-image-2410\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-17-1024x412.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-17-300x121.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-17-768x309.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-17-1536x619.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-17-2048x825.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 14: vSphere endpoints imported.<\/em><\/figcaption><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Log Forwarding Settings<\/h6>\n\n\n\n<p>Another frequently used configuration that often requires a significant amount of &#8216;fine-tuning&#8217; (specifically regarding filter settings) is Log Forwarding. If you only have a single destination with a simple configuration, the process is straightforward, and we can easily apply the settings manually in the new system.<\/p>\n\n\n\n<p>However, as soon as there are multiple destinations and\/or the settings become complex\u2014especially the filters\u2014using the REST API guarantees that we don\u2019t forget anything or make any transcription errors.<\/p>\n\n\n\n<p>Once again, we are dealing with a GET and a POST. Let\u2019s look at the GET request first and examine the response it returns.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-5-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"796\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-5-1024x796.png\" alt=\"\" class=\"wp-image-2352\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-5-1024x796.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-5-300x233.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-5-768x597.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-5-1536x1193.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-5-2048x1591.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 15: Log Forwarder GET REST call.<\/em><\/figcaption><\/figure>\n\n\n\n<p>And this is the GET response in my lab:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;\n  {\n    \"name\": \"Splunk\",\n    \"host\": \"splunk.cpod-cmbu-vcf01.az-muc.cloud-garage.net\",\n    \"port\": 514,\n    \"protocol\": \"raw\",\n    \"sslEnabled\": false,\n    \"workerCount\": 8,\n    \"connectionRefreshInterval\": 60,\n    \"diskCacheSize\": 104857600,\n    \"tags\": {\n      \"mysource\": \"vrops\"\n    },\n    \"filter\": \"(not (text=~\\\"*logFunctionCallInfo*\\\")) and (mysource=~\\\"vrops2\\\")\",\n    \"transportProtocol\": \"udp\",\n    \"forwardComplementaryFields\": false,\n    \"id\": \"2f9304fe-9b42-3489-9074-05bef9a0bb9f\"\n  },\n  {\n    \"name\": \"Kiwi\",\n    \"host\": \"172.16.105.129\",\n    \"port\": 514,\n    \"protocol\": \"syslog\",\n    \"sslEnabled\": false,\n    \"workerCount\": 8,\n    \"connectionRefreshInterval\": 60,\n    \"diskCacheSize\": 104857600,\n    \"tags\": {},\n    \"filter\": \"(__li_source_path=~\\\"esx02.cpod-cmbu-vcf01.az-muc.cloud-garage.net\\\") and (priority=~\\\"warning\\\")\",\n    \"transportProtocol\": \"udp\",\n    \"forwardComplementaryFields\": false,\n    \"id\": \"b6ef9705-b1e5-3b64-bedc-23e7f81318ed\"\n  }\n]<\/code><\/pre>\n\n\n\n<p>Now lets inspect the POST command and check how we can transform our response to fit into what the POST call expects as JSON body.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-18-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"438\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-18-1024x438.png\" alt=\"\" class=\"wp-image-2416\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-18-1024x438.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-18-300x128.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-18-768x328.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-18-1536x657.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-18-2048x876.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 16: Log Forwarder POST REST call.<\/em><\/figcaption><\/figure>\n\n\n\n<p>Just as we did with the vCenter endpoints, we need to reorder, add, or omit a few details. Ultimately, however, constructing the correct body is very straightforward.<\/p>\n\n\n\n<p>The next two code blocks show the two inputs that will be sent to the target log system sequentially.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>  {\n    \"acceptCert\": false,\n    \"name\": \"Splunk\",\n    \"host\": \"splunk.cpod-cmbu-vcf01.az-muc.cloud-garage.net\",\n    \"port\": 514,\n    \"protocol\": \"raw\",\n    \"sslEnabled\": false,\n    \"workerCount\": 8,\n    \"diskCacheSize\": 104857600,\n    \"tags\": {\n      \"mysource\": \"vrops\"\n    },\n    \"filter\": \"(not (text=~\\\"*logFunctionCallInfo*\\\")) and (mysource=~\\\"vrops2\\\")\",\n    \"transportProtocol\": \"udp\",\n    \"forwardComplementaryFields\": false\n  }<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"acceptCert\": false,\n    \"name\": \"Kiwi\",\n    \"host\": \"172.16.105.129\",\n    \"port\": 514,\n    \"protocol\": \"syslog\",\n    \"sslEnabled\": false,\n    \"workerCount\": 8,\n    \"diskCacheSize\": 104857600,\n    \"tags\": {},\n    \"filter\": \"(__li_source_path=~\\\"esx02.cpod-cmbu-vcf01.az-muc.cloud-garage.net\\\") and (priority=~\\\"warning\\\")\",\n    \"transportProtocol\": \"udp\",\n    \"forwardComplementaryFields\": false\n  }<\/code><\/pre>\n\n\n\n<p>Finally, the successful import via REST looks as shown in the last screenshot.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-19-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"324\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-19-1024x324.png\" alt=\"\" class=\"wp-image-2421\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-19-1024x324.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-19-300x95.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-19-768x243.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-19-1536x487.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-19-2048x649.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 17: Log Forwarder configurations imported.<\/em><\/figcaption><\/figure>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">Stay<\/mark>\u00a0<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">safe<\/mark> and happy labbing.<\/p>\n\n\n\n<p>Thomas<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction As organizations modernize their Private Clouds with VMware Cloud Foundation 9, the logging infrastructure undergoes a significant evolution. Transitioning from VMware Aria Operations for Logs 8.18.x (formerly vRealize Log Insight) to the new VCF Operations for Logs 9 is designed as a side-by-side migration requiring a fresh deployment. While there is a fully supported &#8230;<\/p>\n","protected":false},"author":1,"featured_media":2416,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[78,93,99,22],"tags":[91,25,7],"class_list":["post-2322","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aria-operations-for-logs","category-vcf-operations","category-vcf-operations-logs","category-vrealize-log-insight","tag-vcf-operations-for-logs","tag-vrealize-log-insight","tag-vrli"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Migrating Content and Config from Aria Operations for Logs 8.18 to VCF Operations for Logs 9 - 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=2322\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Migrating Content and Config from Aria Operations for Logs 8.18 to VCF Operations for Logs 9 - TOMsOps\" \/>\n<meta property=\"og:description\" content=\"Introduction As organizations modernize their Private Clouds with VMware Cloud Foundation 9, the logging infrastructure undergoes a significant evolution. Transitioning from VMware Aria Operations for Logs 8.18.x (formerly vRealize Log Insight) to the new VCF Operations for Logs 9 is designed as a side-by-side migration requiring a fresh deployment. While there is a fully supported ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thomas-kopton.de\/vblog\/?p=2322\" \/>\n<meta property=\"og:site_name\" content=\"TOMsOps\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-16T15:01:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-16T15:01:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-18-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1095\" \/>\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=\"10 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=2322#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=2322\"},\"author\":{\"name\":\"Thomas Kopton\",\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/#\\\/schema\\\/person\\\/892d6b96c66b1dd4b75c6e32fdbfea82\"},\"headline\":\"Migrating Content and Config from Aria Operations for Logs 8.18 to VCF Operations for Logs 9\",\"datePublished\":\"2025-12-16T15:01:54+00:00\",\"dateModified\":\"2025-12-16T15:01:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=2322\"},\"wordCount\":1830,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=2322#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/image-18-scaled.png\",\"keywords\":[\"VCF Operations for Logs\",\"vRealize log insight\",\"vRLI\"],\"articleSection\":[\"Aria Operations for Logs\",\"VCF Operations\",\"VCF Operations Logs\",\"vRealize Log Insight\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=2322#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=2322\",\"url\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=2322\",\"name\":\"Migrating Content and Config from Aria Operations for Logs 8.18 to VCF Operations for Logs 9 - TOMsOps\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=2322#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=2322#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/image-18-scaled.png\",\"datePublished\":\"2025-12-16T15:01:54+00:00\",\"dateModified\":\"2025-12-16T15:01:56+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/#\\\/schema\\\/person\\\/892d6b96c66b1dd4b75c6e32fdbfea82\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=2322#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=2322\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=2322#primaryimage\",\"url\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/image-18-scaled.png\",\"contentUrl\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/image-18-scaled.png\",\"width\":2560,\"height\":1095},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=2322#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Migrating Content and Config from Aria Operations for Logs 8.18 to VCF Operations for Logs 9\"}]},{\"@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:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e746aafbd3733172ceb4d600ba1feda61bc87cd3b70f5a9dfb581907cc7973b1?s=96&d=mm&r=g\",\"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":"Migrating Content and Config from Aria Operations for Logs 8.18 to VCF Operations for Logs 9 - 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=2322","og_locale":"en_US","og_type":"article","og_title":"Migrating Content and Config from Aria Operations for Logs 8.18 to VCF Operations for Logs 9 - TOMsOps","og_description":"Introduction As organizations modernize their Private Clouds with VMware Cloud Foundation 9, the logging infrastructure undergoes a significant evolution. Transitioning from VMware Aria Operations for Logs 8.18.x (formerly vRealize Log Insight) to the new VCF Operations for Logs 9 is designed as a side-by-side migration requiring a fresh deployment. While there is a fully supported ...","og_url":"https:\/\/thomas-kopton.de\/vblog\/?p=2322","og_site_name":"TOMsOps","article_published_time":"2025-12-16T15:01:54+00:00","article_modified_time":"2025-12-16T15:01:56+00:00","og_image":[{"width":2560,"height":1095,"url":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-18-scaled.png","type":"image\/png"}],"author":"Thomas Kopton","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Thomas Kopton","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2322#article","isPartOf":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2322"},"author":{"name":"Thomas Kopton","@id":"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82"},"headline":"Migrating Content and Config from Aria Operations for Logs 8.18 to VCF Operations for Logs 9","datePublished":"2025-12-16T15:01:54+00:00","dateModified":"2025-12-16T15:01:56+00:00","mainEntityOfPage":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2322"},"wordCount":1830,"commentCount":0,"image":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2322#primaryimage"},"thumbnailUrl":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-18-scaled.png","keywords":["VCF Operations for Logs","vRealize log insight","vRLI"],"articleSection":["Aria Operations for Logs","VCF Operations","VCF Operations Logs","vRealize Log Insight"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thomas-kopton.de\/vblog\/?p=2322#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2322","url":"https:\/\/thomas-kopton.de\/vblog\/?p=2322","name":"Migrating Content and Config from Aria Operations for Logs 8.18 to VCF Operations for Logs 9 - TOMsOps","isPartOf":{"@id":"https:\/\/thomas-kopton.de\/vblog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2322#primaryimage"},"image":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2322#primaryimage"},"thumbnailUrl":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-18-scaled.png","datePublished":"2025-12-16T15:01:54+00:00","dateModified":"2025-12-16T15:01:56+00:00","author":{"@id":"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82"},"breadcrumb":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2322#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thomas-kopton.de\/vblog\/?p=2322"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2322#primaryimage","url":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-18-scaled.png","contentUrl":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/12\/image-18-scaled.png","width":2560,"height":1095},{"@type":"BreadcrumbList","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2322#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thomas-kopton.de\/vblog"},{"@type":"ListItem","position":2,"name":"Migrating Content and Config from Aria Operations for Logs 8.18 to VCF Operations for Logs 9"}]},{"@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:\/\/secure.gravatar.com\/avatar\/e746aafbd3733172ceb4d600ba1feda61bc87cd3b70f5a9dfb581907cc7973b1?s=96&d=mm&r=g","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\/2322","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=2322"}],"version-history":[{"count":82,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/posts\/2322\/revisions"}],"predecessor-version":[{"id":2424,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/posts\/2322\/revisions\/2424"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/media\/2416"}],"wp:attachment":[{"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2322"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2322"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2322"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}