管理和维护适用于 Windows 和 Linux 的 Log Analytics 代理

在 Azure Monitor 中初始部署 Log Analytics Windows 或 Linux 代理后,可能需要在代理生命周期中达到停用阶段时重新配置代理、升级代理或将其从计算机中删除。 可以手动或通过自动化轻松管理这些日常维护任务,从而减少作错误和费用。

重要

2024 年 8 月 31 日起,旧版 Log Analytics 代理已弃用。 Microsoft将不再为 Log Analytics 代理提供任何支持。 如果使用 Log Analytics 代理将数据引入 Azure Monitor,请立即迁移到 Azure Monitor 代理

升级代理

根据部署方案以及运行 VM 的环境,手动或自动升级到适用于 Windows 和 Linux 的 Log Analytics 代理的最新版本。

环境 安装方法 升级方法
Azure VM 适用于 Windows/Linux 的 Log Analytics 代理 VM 扩展 代理 在 VM 模型更改后自动升级,除非将 Azure 资源管理器模板配置为选择退出,方法是将属性 autoUpgradeMinorVersion 设置为 false。 但是,部署后,除非重新部署,否则扩展不会升级次要版本,即使此属性设置为 true 也是如此。 只有 Linux 代理支持使用 enableAutomaticUpgrade 属性进行自动更新后部署(请参阅 为 Linux 代理启用自动更新)。 主版本升级始终是手动的(请参阅 VirtualMachineExtensionInner.AutoUpgradeMinorVersion 属性)。
自定义 Azure VM 映像 手动安装适用于 Windows/Linux 的 Log Analytics 代理 要更新 VM 到最新版本的代理,必须在命令行中运行 Windows 安装程序包或 Linux 自解压和可安装的 shell 脚本捆绑包。
非 Azure 虚拟机 手动安装适用于 Windows/Linux 的 Log Analytics 代理 必须在命令行中运行 Windows 安装包或 Linux 自解压并可安装的 shell 脚本捆绑包,来将 VM 中的代理更新至最新版本。

升级 Windows 代理

若要使用 Log Analytics VM 扩展将 Windows VM 上的代理更新到未安装的最新版本,请从命令提示符、脚本或其他自动化解决方案运行,或使用 MMASetup-platform<>.msi 安装向导

若要从 Log Analytics 工作区下载最新版本的 Windows 代理,请执行以下作:

  1. 登录到 Azure 门户

  2. 在 Azure 门户中,选择“所有服务”。 在资源列表中,输入 Log Analytics。 当您开始输入时,列表会根据您的输入内容进行筛选。 选择“Log Analytics 工作区”

  3. 在 Log Analytics 工作区列表中,选择工作区。

  4. 在 Log Analytics 工作区中,选择 “代理 ”磁贴,然后选择 “Windows Server”。

  5. Windows Server 屏幕上,根据 Windows作系统的处理器体系结构选择要下载的相应 下载 Windows 代理 版本。

注释

在升级适用于 Windows 的 Log Analytics 代理期间,它不支持配置或重新配置要报告的工作区。 若要配置代理,请按照 “添加或删除工作区”下列出的受支持方法之一进行作。

使用安装向导进行升级

  1. 使用具有管理权限的帐户登录到计算机。

  2. 执行 MMASetup-platform<>.exe 以启动安装向导

  3. 安装向导的第一页上,选择“ 下一步”。

  4. “Microsoft监视代理设置 ”对话框中,选择 “我同意 接受许可协议”。

  5. “Microsoft监视代理安装 ”对话框中,选择“ 升级”。 状态页显示升级进度。

  6. Microsoft监视代理配置成功完成 时,选择“ 完成”。

从命令行升级

  1. 使用具有管理权限的帐户登录到计算机。

  2. 若要提取代理安装文件,请从提升的命令提示符运行 MMASetup-<platform>.exe /c,系统会提示您输入要提取文件的路径。 或者,可以通过传递参数 MMASetup-<platform>.exe /c /t:<Full Path>来指定路径。

  3. 运行以下命令,其中 D:\ 是升级日志文件的位置:

    setup.exe /qn /l*v D:\logs\AgentUpgrade.log AcceptEndUserLicenseAgreement=1
    

升级 Linux 代理

支持从以前的版本(>1.0.0-47)升级。 使用 --upgrade 命令执行安装会将代理的所有组件升级到最新版本。

运行以下命令升级代理:

sudo sh ./omsagent-*.universal.x64.sh --upgrade

为 Linux 代理启用自动更新

建议您通过使用这些命令启用 自动扩展升级,以便自动更新代理。

Set-AzVMExtension \
  -ResourceGroupName myResourceGroup \
  -VMName myVM \
  -ExtensionName OmsAgentForLinux \
  -ExtensionType OmsAgentForLinux \
  -Publisher Microsoft.EnterpriseCloud.Monitoring \
  -TypeHandlerVersion latestVersion \
  -ProtectedSettingString '{"workspaceKey":"myWorkspaceKey"}' \
  -SettingString '{"workspaceId":"myWorkspaceId","skipDockerProviderInstall": true}' \
  -EnableAutomaticUpgrade $true

添加或删除工作区

使用 Windows 代理或 Linux 代理添加或删除工作区。

Windows 代理

此部分中的步骤不仅需要将 Windows 代理重新配置为向其他工作区报告或从其配置中删除工作区,而且当想要将代理配置为向多个工作区报告时,还需要执行这些步骤。 (这种做法通常称为多宿主。)将 Windows 代理配置为向多个工作区上报只能在完成代理的初始设置之后,并使用本节中所述的方法来执行。

从控制面板更新设置

  1. 使用具有管理权限的帐户登录到计算机。

  2. 打开控制面板。

  3. 选择 Microsoft监视代理 ,然后选择 “Azure Log Analytics ”选项卡。

  4. 如果要删除工作区,请选择它,然后选择“ 删除”。 对希望代理停止报告的任何其他工作区重复此步骤。

  5. 如果要添加工作区,请选择“ 添加”。 在 “添加 Log Analytics 工作区 ”对话框中,粘贴工作区 ID 和工作区密钥(主密钥)。 如果计算机需要在 Azure Government 云中向 Log Analytics 工作区报告,请从 Azure 云下拉列表中选择Azure 美国政府

  6. 选择“确定”,保存所做更改。

使用 PowerShell 删除工作区

$workspaceId = "<Your workspace Id>"
$mma = New-Object -ComObject 'AgentConfigManager.MgmtSvcCfg'
$mma.RemoveCloudWorkspace($workspaceId)
$mma.ReloadConfiguration()

使用 PowerShell 在 Azure 商业版中添加工作区

$workspaceId = "<Your workspace Id>"
$workspaceKey = "<Your workspace Key>"
$mma = New-Object -ComObject 'AgentConfigManager.MgmtSvcCfg'
$mma.AddCloudWorkspace($workspaceId, $workspaceKey)
$mma.ReloadConfiguration()

使用 PowerShell 在 Azure 中为美国政府添加工作区

$workspaceId = "<Your workspace Id>"
$workspaceKey = "<Your workspace Key>"
$mma = New-Object -ComObject 'AgentConfigManager.MgmtSvcCfg'
$mma.AddCloudWorkspace($workspaceId, $workspaceKey, 1)
$mma.ReloadConfiguration()

注释

如果以前使用过命令行或脚本来安装或配置代理, EnableAzureOperationalInsights 则替换为 AddCloudWorkspaceRemoveCloudWorkspace

Linux 代理

以下步骤演示如何重新配置 Linux 代理(如果决定将其注册到其他工作区或从其配置中删除工作区)。

  1. 若要验证代理是否已注册到工作区,请运行以下命令:

    /opt/microsoft/omsagent/bin/omsadmin.sh -l

    它应返回类似于以下示例的状态:

    Primary Workspace: <workspaceId> Status: Onboarded(OMSAgent Running)

    状态还表明代理正在运行,这一点很重要。 否则,重新配置代理的以下步骤将无法成功完成。

  2. 如果代理已在工作区中注册,请运行以下命令删除已注册的工作区。 否则,如果未注册,请转到下一步。

    /opt/microsoft/omsagent/bin/omsadmin.sh -X

  3. 若要注册到其他工作区,请运行以下命令:

    /opt/microsoft/omsagent/bin/omsadmin.sh -w <workspace id> -s <shared key> [-d <top level domain>]

  4. 若要验证更改是否生效,请运行以下命令:

    /opt/microsoft/omsagent/bin/omsadmin.sh -l

    它应返回类似于以下示例的状态:

    Primary Workspace: <workspaceId> Status: Onboarded(OMSAgent Running)

无需重启代理服务,更改才会生效。

更新代理设置

Log Analytics 代理(MMA)不使用系统代理设置。 因此,在安装 MMA 时,您必须设置代理参数。 这些设置将存储在 VM 上的 MMA 配置(注册表)下。 若要将代理配置为在部署后通过代理服务器或 Log Analytics 网关 与服务通信,请使用以下方法之一来完成此任务。

Windows 代理

使用 Windows 代理。

使用控制面板更新设置

  1. 使用具有管理权限的帐户登录到计算机。

  2. 打开控制面板。

  3. 选择 Microsoft监视代理 ,然后选择“ 代理设置 ”选项卡。

  4. 选择 “使用代理服务器 ”并提供代理服务器或网关的 URL 和端口号。 如果代理服务器或 Log Analytics 网关需要身份验证,请输入用户名和密码进行身份验证,然后选择“ 确定”。

使用 PowerShell 更新设置

复制以下示例 PowerShell 代码,使用特定于环境的信息进行更新,并使用 PS1 文件扩展名保存它。 在直接连接到 Azure Monitor 中的 Log Analytics 工作区的每台计算机上运行脚本。

param($ProxyDomainName="https://proxy.contoso.com:30443", $cred=(Get-Credential))

# First we get the Health Service configuration object. We need to determine if we
#have the right update rollup with the API we need. If not, no need to run the rest of the script.
$healthServiceSettings = New-Object -ComObject 'AgentConfigManager.MgmtSvcCfg'

$proxyMethod = $healthServiceSettings | Get-Member -Name 'SetProxyInfo'

if (!$proxyMethod)
{
    Write-Output 'Health Service proxy API not present, will not update settings.'
    return
}

Write-Output "Clearing proxy settings."
$healthServiceSettings.SetProxyInfo('', '', '')

$ProxyUserName = $cred.username

Write-Output "Setting proxy to $ProxyDomainName with proxy username $ProxyUserName."
$healthServiceSettings.SetProxyInfo($ProxyDomainName, $ProxyUserName, $cred.GetNetworkCredential().password)

Linux 代理

如果 Linux 计算机需要通过代理服务器或 Log Analytics 网关进行通信,请执行以下步骤。 代理配置值具有以下语法: [protocol://][user:password@]proxyhost[:port]proxyhost 属性接受代理服务器的完全限定域名或 IP 地址。

  1. 通过运行以下命令编辑文件 /etc/opt/microsoft/omsagent/proxy.conf ,并将值更改为特定设置:

    proxyconf="https://proxyuser:proxypassword@proxyserver01:30443"
    sudo echo $proxyconf >>/etc/opt/microsoft/omsagent/proxy.conf
    sudo chown omsagent:omiusers /etc/opt/microsoft/omsagent/proxy.conf
    
  2. 通过运行以下命令重启代理:

    sudo /opt/microsoft/omsagent/bin/service_control restart [<workspace id>]
    

    如果在日志中看到 cURL failed to perform on this base url,您可以尝试在 proxy.conf EOF 中删除 '\n' 以解决故障。

    od -c /etc/opt/microsoft/omsagent/proxy.conf
    cat /etc/opt/microsoft/omsagent/proxy.conf | tr -d '\n' > /etc/opt/microsoft/omsagent/proxy2.conf
    rm /etc/opt/microsoft/omsagent/proxy.conf
    mv /etc/opt/microsoft/omsagent/proxy2.conf /etc/opt/microsoft/omsagent/proxy.conf
    sudo chown omsagent:omiusers /etc/opt/microsoft/omsagent/proxy.conf
    sudo /opt/microsoft/omsagent/bin/service_control restart [<workspace id>]
    

卸载代理

使用以下过程之一通过命令行或 安装向导卸载 Windows 或 Linux 代理。

Windows 代理

使用 Windows 代理。

从控制面板卸载

  1. 使用具有管理权限的帐户登录到计算机。

  2. 在控制面板中,选择“ 程序和功能”。

  3. “程序和功能”中,选择 Microsoft“监视代理>卸载>”。

注释

还可以通过双击来运行MMASetup-\<platform\>.exe,该向导可从 Azure 门户中的工作区下载。

从命令行卸载

代理的下载文件是使用 IExpress 创建的自包含安装包。 代理和支持文件的安装程序包含在包中,必须使用以下示例所示的命令行将其提取为正确卸载。

  1. 使用具有管理权限的帐户登录到计算机。

  2. 要提取代理安装文件,请以管理员身份打开命令提示符,运行 extract MMASetup-<platform>.exe ,系统将提示您输入要提取文件的路径。 或者,可以通过传递参数 extract MMASetup-<platform>.exe /c:<Path> /t:<Path>来指定路径。 有关 IExpress 支持的命令行交换机的详细信息,请参阅 IExpress 的命令行开关 ,然后更新示例以满足你的需求。

  3. 在提示符下,输入 %WinDir%\System32\msiexec.exe /x <Path>:\MOMAgent.msi /qb

Linux 代理

若要删除代理,请在 Linux 计算机上运行以下命令。 该 --purge 参数完全删除代理及其配置。

wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh && sh onboard_agent.sh --purge

将代理配置为向 Operations Manager 管理组报告

使用 Windows 代理。

Windows 代理

执行以下步骤,将适用于 Windows 的 Log Analytics 代理配置为向 System Center Operations Manager 管理组报告。

注释

作为从 Microsoft Operations Management Suite 到 Azure Monitor 的持续转换的一部分,适用于 Windows 或 Linux 的 Operations Management Suite 代理将称为适用于 Windows 的 Log Analytics 代理和适用于 Linux 的 Log Analytics 代理。

  1. 使用具有管理权限的帐户登录到计算机。

  2. 打开控制面板。

  3. 选择 “Microsoft监视代理 ”,然后选择 “Operations Manager ”选项卡。

  4. 如果 Operations Manager 服务器与 Active Directory 集成,请选择 AD DS 中的自动更新管理组分配

  5. 选择 “添加” 以打开 “添加管理组 ”对话框。

  6. “管理组名称 ”字段中,输入管理组的名称。

  7. “主管理服务器 ”字段中,输入主管理服务器的计算机名称。

  8. “管理服务器端口 ”字段中,输入 TCP 端口号。

  9. “代理作帐户”下,选择本地系统帐户或本地域帐户。

  10. 选择 “确定 ”关闭 “添加管理组 ”对话框。 然后选择 “确定 ”关闭 “Microsoft”监视代理属性 “对话框。

Linux 代理

执行以下步骤,将适用于 Linux 的 Log Analytics 代理配置为向 System Center Operations Manager 管理组报告。

注释

作为从 Microsoft Operations Management Suite 到 Azure Monitor 的持续转换的一部分,适用于 Windows 或 Linux 的 Operations Management Suite 代理将称为适用于 Windows 的 Log Analytics 代理和适用于 Linux 的 Log Analytics 代理。

  1. 编辑文件 /etc/opt/omi/conf/omiserver.conf

  2. 确保以httpsport=开头的行定义端口 1270,例如httpsport=1270

  3. 使用以下命令重启 OMI 服务器:

    sudo /opt/omi/bin/service_control restart

常见问题

本部分提供常见问题的解答。

如何阻止 Log Analytics 代理与 Azure Monitor 通信?

对于直接连接到 Log Analytics 的代理,请打开控制面板并选择 Microsoft监视代理。 在 “Azure Log Analytics(OMS) ”选项卡下,删除列出的所有工作区。 在 System Center Operations Manager 中,从 Log Analytics 托管计算机列表中删除计算机。 Operations Manager 将代理的配置更新为不再向 Log Analytics 报告。

后续步骤