Update Management solution in Azure
You can use the Update Management solution in Azure Automation to manage operating system updates for your Windows and Linux computers that are deployed in Azure, in on-premises environments, or in other cloud providers. You can quickly assess the status of available updates on all agent computers and manage the process of installing required updates for servers.
You can enable Update Management for virtual machines directly from your Azure Automation account. To learn how to enable Update Management for virtual machines from your Automation account, see Manage updates for multiple virtual machines. You can also enable Update Management for a single virtual machine from the virtual machine pane in the Azure portal. This scenario is available for Linux and Windows virtual machines.
Computers that are managed by Update Management use the following configurations to perform assessment and update deployments:
- Microsoft Monitoring Agent (MMA) for Windows or Linux
- PowerShell Desired State Configuration (DSC) for Linux
- Automation Hybrid Runbook Worker
- Microsoft Update or Windows Server Update Services (WSUS) for Windows computers
The following diagram shows a conceptual view of the behavior and data flow with how the solution assesses and applies security updates to all connected Windows Server and Linux computers in a workspace:
After a computer performs a scan for update compliance, the agent forwards the information in bulk to Azure Log Analytics. On a Windows computer, the compliance scan is performed every 12 hours by default.
In addition to the scan schedule, the scan for update compliance is initiated within 15 minutes if the MMA is restarted, before update installation, and after update installation.
For a Linux computer, the compliance scan is performed every 3 hours by default. If the MMA agent is restarted, a compliance scan is initiated within 15 minutes.
The solution reports how up-to-date the computer is based on what source you're configured to sync with. If the Windows computer is configured to report to WSUS, depending on when WSUS last synced with Microsoft Update, the results might differ from what Microsoft Updates shows. This is the same for Linux computers that are configured to report to a local repo instead of to a public repo.
To properly report to the service, Update Management requires certain URLs and ports to be enabled. To learn more about these requirements, see Network planning for Hybrid Workers.
You can deploy and install software updates on computers that require the updates by creating a scheduled deployment. Updates classified as Optional aren't included in the deployment scope for Windows computers. Only required updates are included in the deployment scope.
The scheduled deployment defines what target computers receive the applicable updates, either by explicitly specifying computers or by selecting a computer group that's based on log searches of a specific set of computers. You also specify a schedule to approve and designate a period of time during which updates can be installed.
Updates are installed by runbooks in Azure Automation. You can't view these runbooks, and the runbooks don’t require any configuration. When an update deployment is created, the update deployment creates a schedule that starts a master update runbook at the specified time for the included computers. The master runbook starts a child runbook on each agent to perform installation of required updates.
At the date and time specified in the update deployment, the target computers execute the deployment in parallel. Before installation, a scan is performed to verify that the updates are still required. For WSUS client computers, if the updates aren't approved in WSUS, the update deployment fails.
Supported client types
The following table shows a list of supported operating systems:
|Windows Server 2008, Windows Server 2008 R2 RTM||Supports only update assessments.|
|Windows Server 2008 R2 SP1 and later||.NET Framework 4.5 or later is required. (Download .NET Framework)|
Windows PowerShell 4.0 or later is required. (Download WMF 4.0)
Windows PowerShell 5.1 is recommended for increased reliability. (Download WMF 5.1)
|CentOS 6 (x86/x64) and 7 (x64)||Linux agents must have access to an update repository. Classification-based patching requires 'yum' to return security data which CentOS does not have out of the box.|
|Red Hat Enterprise 6 (x86/x64) and 7 (x64)||Linux agents must have access to an update repository.|
|SUSE Linux Enterprise Server 11 (x86/x64) and 12 (x64)||Linux agents must have access to an update repository.|
|Ubuntu 14.04 LTS and 16.04 LTS (x86/x64)||Linux agents must have access to an update repository.|
Unsupported client types
The following table lists operating systems that aren't supported:
|Windows client||Client operating systems (such as Windows 7 and Windows 10) aren't supported.|
|Windows Server 2016 Nano Server||Not supported.|
Windows agents must be configured to communicate with a WSUS server or they must have access to Microsoft Update. You can use Update Management with System Center Configuration Manager. To learn more about integration scenarios, see Integrate System Center Configuration Manager with Update Management. The Windows agent is required. The agent is installed automatically if you're onboarding an Azure virtual machine.
For Linux, the machine must have access to an update repository. The update repository can be private or public. TLS 1.1 or TLS 1.2 is required to interact with Update Management. An Operations Management Suite (OMS) Agent for Linux that's configured to report to multiple Log Analytics workspaces isn't supported with this solution.
For information about how to install the OMS Agent for Linux and to download the latest version, see Operations Management Suite Agent for Linux. For information about how to install the OMS Agent for Windows, see Operations Management Suite Agent for Windows.
To create and manage update deployments, you need specific permissions. To learn about these permissions, see Role-based access - Update Management.
The solution consists of the following resources. The resources are added to your Automation account. They're either directly connected agents or in an Operations Manager-connected management group.
Hybrid Worker groups
After you enable this solution, any Windows computer that's directly connected to your Log Analytics workspace is automatically configured as a Hybrid Runbook Worker to support the runbooks that are included in this solution.
Each Windows computer that's managed by the solution is listed in the Hybrid worker groups pane as a System hybrid worker group for the Automation account. The solutions use the naming convention Hostname FQDN_GUID. You can't target these groups with runbooks in your account. They fail if you try. These groups are intended to support only the management solution.
You can add the Windows computers to a Hybrid Runbook Worker group in your Automation account to support Automation runbooks if you use the same account for both the solution and the Hybrid Runbook Worker group membership. This functionality was added in version 7.2.12024.0 of the Hybrid Runbook Worker.
If your System Center Operations Manager management group is connected to a Log Analytics workspace, the following management packs are installed in Operations Manager. These management packs are also installed on directly connected Windows computers after you add the solution. You don't need to configure or manage these management packs.
- Microsoft System Center Advisor Update Assessment Intelligence Pack (Microsoft.IntelligencePacks.UpdateAssessment)
- Microsoft.IntelligencePack.UpdateAssessment.Configuration (Microsoft.IntelligencePack.UpdateAssessment.Configuration)
- Update Deployment MP
For more information about how solution management packs are updated, see Connect Operations Manager to Log Analytics.
For systems with the Operations Manger Agent, to be able to be fully managed by Update Management, the agent needs to be updated to the Microsoft Monitoring Agent. To learn how to update the agent, see How to upgrade an Operations Manager agent.
Confirm that non-Azure machines are onboarded
To confirm that directly connected machines are communicating with Log Analytics, after a few minutes, you can run one the following log searches.
On a Windows computer, you can review the following information to verify agent connectivity with Log Analytics:
- In Control Panel, open Microsoft Monitoring Agent. On the Azure Log Analytics tab, the agent displays the following message: The Microsoft Monitoring Agent has successfully connected to Log Analytics.
- Open the Windows Event Log. Go to Application and Services Logs\Operations Manager and search for Event ID 3000 and Event ID 5002 from the source Service Connector. These events indicate that the computer has registered with the Log Analytics workspace and is receiving configuration.
If the agent can't communicate with Log Analytics and the agent is configured to communicate with the internet through a firewall or proxy server, confirm that the firewall or proxy server is properly configured. To learn how to verify that the firewall or proxy server is properly configured, see Network configuration for Windows agent or Network configuration for Linux agent.
If your Linux systems are configured to communicate with a proxy or OMS Gateway and you're onboarding this solution, update the proxy.conf permissions to grant the omiuser group read permission on the file by using the following commands:
Newly added Linux agents show a status of Updated after an assessment has been performed. This process can take up to 6 hours.
To confirm that an Operations Manager management group is communicating with Log Analytics, see Validate Operations Manager integration with Log Analytics.
The following table describes the connected sources that are supported by this solution:
|Windows agents||Yes||The solution collects information about system updates from Windows agents and then initiates installation of required updates.|
|Linux agents||Yes||The solution collects information about system updates from Linux agents and then initiates installation of required updates on supported distributions.|
|Operations Manager management group||Yes||The solution collects information about system updates from agents in a connected management group.|
A direct connection from the Operations Manager agent to Log Analytics isn't required. Data is forwarded from the management group to the Log Analytics workspace.
A scan is performed twice per day for each managed Windows computer. Every 15 minutes, the Windows API is called to query for the last update time to determine whether the status has changed. If the status has changed, a compliance scan is initiated.
A scan is performed every 3 hours for each managed Linux computer.
It can take between 30 minutes and 6 hours for the dashboard to display updated data from managed computers.
View update assessments
In your Automation account, select Update Management to view the status of your machines.
This view provides information about your machines, missing updates, update deployments, and scheduled update deployments. In the COMPLIANCE COLUMN, you can see the last time the machine was assessed. In the UPDATE AGENT READINESS column, you can see if the health of the update agent. If there's an issue, select the link to go to troubleshooting documentation that can help you learn what steps to take to correct the problem.
To run a log search that returns information about the machine, update, or deployment, select the item in the list. The Log Search pane opens with a query for the item selected:
After updates are assessed for all the Linux and Windows computers in your workspace, you can install required updates by creating an update deployment. An update deployment is a scheduled installation of required updates for one or more computers. You specify the date and time for the deployment and a computer or group of computers to include in the scope of a deployment. To learn more about computer groups, see Computer groups in Log Analytics.
When you include computer groups in your update deployment, group membership is evaluated only once, at the time of schedule creation. Subsequent changes to a group aren't reflected. To work around this, delete the scheduled update deployment and re-create it.
Windows virtual machines that are deployed from the Azure Marketplace by default are set to receive automatic updates from Windows Update Service. This behavior doesn't change when you add this solution or add Windows virtual machines to your workspace. If you don't actively manage updates by using this solution, the default behavior (to automatically apply updates) applies.
To avoid updates being applied outside of a maintenance window on Ubuntu, reconfigure the Unattended-Upgrade package to disable automatic updates. For information about how to configure the package, see Automatic Updates topic in the Ubuntu Server Guide.
Virtual machines that were created from the on-demand Red Hat Enterprise Linux (RHEL) images that are available in the Azure Marketplace are registered to access the Red Hat Update Infrastructure (RHUI) that's deployed in Azure. Any other Linux distribution must be updated from the distribution's online file repository by following the distribution's supported methods.
View missing updates
Select Missing updates to view the list of updates that are missing from your machines. Each update is listed and can be selected. Information about the number of machines that require the update, the operating system, and a link for more information is shown. The Log search pane shows more details about the updates.
View update deployments
Select the Update Deployments tab to view the list of existing update deployments. Select any of the update deployments in the table to open the Update Deployment Run pane for that update deployment.
Create or edit an update deployment
To create a new update deployment, select Schedule update deployment. The New Update Deployment pane opens. Enter values for the properties described in the following table and then click Create:
|Name||Unique name to identify the update deployment.|
|Operating System||Linux or Windows|
|Machines to update||Select a Saved search, Imported group, or pick Machine from the drop-down and select individual machines. If you choose Machines, the readiness of the machine is shown in the UPDATE AGENT READINESS column.|
To learn about the different methods of creating computer groups in Log Analytics, see Computer groups in Log Analytics
|Update classifications||Select all the update classifications that you need|
|Updates to exclude||Enter the updates to exclude. For Windows enter the KB without the 'KB' prefix. For Linux, enter the package name or use a wildcard.|
|Schedule settings||Select the time to start, and select either Once or recurring for the recurrence|
|Maintenance window||Number of minutes set for updates. The value can be not be less than 30 minutes and no more than 6 hours|
|Reboot control||Detemines how reboots should be handled.|
Available options are:
Reboot if required (Default)
Only reboot - will not install updates
The following tables list the update classifications in Update Management, with a definition for each classification.
|Critical updates||An update for a specific problem that addresses a critical, non-security-related bug.|
|Security updates||An update for a product-specific, security-related issue.|
|Update rollups||A cumulative set of hotfixes that are packaged together for easy deployment.|
|Feature packs||New product features that are distributed outside a product release.|
|Service packs||A cumulative set of hotfixes that are applied to an application.|
|Definition updates||An update to virus or other definition files.|
|Tools||A utility or feature that helps complete one or more tasks.|
|Updates||An update to an application or file that currently is installed.|
|Critical and security updates||Updates for a specific problem or a product-specific, security-related issue.|
|Other updates||All other updates that aren't critical in nature or aren't security updates.|
For Linux, Update Management can distinguish between critical and security updates in the cloud while displaying assessment data due to data enrichment in the cloud. For patching, Update Management relies on classification data available on the machine. Unlike other distributions, CentOS does not have this information available out of the box. If you have CentOS machines configured in a way to return security data for the following command, Update Management will be able to patch based on classifications.
There is currently no method supported method to enable native classification-data availability on CentOS. At this time, only best-effort support is provided to customers who may have enabled this on their own.
The following addresses are required specifically for Update Management. Communication to these addresses occurs over port 443.
|Azure Public||Azure Government|
For more information about ports that the Hybrid Runbook Worker requires, see Hybrid Worker role ports.
It is recommended to use the addresses listed when defining exceptions. For IP addresses you can download the Microsoft Azure Datacenter IP Ranges. This file is updated weekly, and reflects the currently deployed ranges and any upcoming changes to the IP ranges.
In addition to the details that are provided in the Azure portal, you can do searches against the logs. On the solution pages, select Log Analytics. The Log Search pane opens.
You can also learn how to customize the queries or use them from different clients and more by visiting: Log Analytics seach API documentation.
The following sections provide sample log queries for update records that are collected by this solution:
Single Azure VM Assessment queries (Windows)
Replace the VMUUID value with the VM GUID of the virtual machine you are querying. You can find the VMUUID that should be used by running the following query in Log Analytics:
Missing updates summary
Missing updates list
Single Azure VM assessment queries (Linux)
For some Linux distros there is a endianness mismatch with the VMUUID value that comes from Azure Resource Manager and what is stored in Log Analytics. The following query checks for a match on either endianness. Replace the VMUUID values with the big-endian and little-endian format of the GUID to properly return the results. You can find the VMUUID that should be used by running the following query in Log Analytics:
Missing updates summary
Missing updates list
Multi-VM assessment queries
Missing updates summary
Missing updates list
Integrate with System Center Configuration Manager
Customers who have invested in System Center Configuration Manager for managing PCs, servers, and mobile devices also rely on the strength and maturity of Configuration Manager to help them manage software updates. Configuration Manager is part of their software update management (SUM) cycle.
To learn how to integrate the management solution with System Center Configuration Manager, see Integrate System Center Configuration Manager with Update Management.
Patch Linux machines
The following sections explain potential issues with Linux patching.
Unexpected OS-level upgrades
On some Linux variants, such as Red Hat Enterprise Linux, OS-level upgrades might occur via packages. This might lead to Update Management runs where the OS version number changes. Because Update Management uses the same methods to update packages that an administrator would use locally on the Linux computer, this behavior is intentional.
To avoid updating the OS version via Update Management runs, use the Exclusion feature.
In Red Hat Enterprise Linux, the package name to exclude is redhat-release-server.x86_64.
Critical / security patches aren't applied
When you deploy updates to a Linux machine, you can select update classifications. This filters the updates that are applied to those that meet the specified criteria. This filter is applied locally on the machine when the update is deployed.
Because Update Management performs update enrichment in the cloud, some updates might be flagged in Update Management as having security impact, even though the local machine doesn't have that information. As a result, if you apply critical updates to a Linux machine, there might be updates that aren't marked as having security impact on that machine and the updates aren't applied.
However, Update Management might still report that machine as being non-compliant because it has additional information about the relevant update.
Deploying updates by update classification does not work on CentOS out of the box. For SUSE, selecting only 'Other updates' as the classification may result in some security updates also being installed if security updates related to zypper (package manager) or its dependencies are required first. This is a limitation of zypper. In some cases, you may be required to re-run the update deployment, to verify check the update log.
To learn how to troubleshoot your Update Management, see Troubleshooting Update Management
Continue to the tutorial to learn how to manage updates for your Windows virtual machines.
- Use log searches in Log Analytics to view detailed update data.
- Create alerts when critical updates are detected as missing from computers or if a computer has automatic updates disabled.