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

在 Azure Monitor 中初始部署 Log Analytics Windows 或 Linux 代理后,如果代理到达了其生命周期中的停用阶段时,则你可能需要重新配置代理,对其进行更新或者将其从计算机中删除。 可以轻松地手动或自动管理这些日常维护任务,从而减少运行错误并降低费用。

重要

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

升级代理

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

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

升级 Windows 代理

若要将 Windows VM 上的代理更新为不使用 Log Analytics VM 扩展安装的最新版本,可以通过命令提示符、脚本或其他自动化解决方案来运行,也可以使用 MMASetup-<platform>.msi 安装向导。

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

  1. 登录 Azure 门户

  2. 在 Azure 门户中,选择“所有服务”。 在资源列表中,输入 Log Analytics。 开始键入时,会根据输入筛选该列表。 选择“Log Analytics 工作区”。

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

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

  5. 在“Windows 服务器”屏幕上,选择“下载 Windows 代理”,根据 Windows 操作系统的处理器体系结构下载相应的版本。

注意

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

使用安装向导进行升级

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

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

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

  4. 在“Microsoft Monitoring Agent 安装”对话框中,选择“我同意”以接受许可协议。

  5. 在“Microsoft Monitoring Agent 安装”对话框中,选择“升级”。 状态页面将显示升级的进度。

  6. 当“Microsoft Monitoring Agent 配置已成功完成”页出现时,选择“完成”。

从命令行升级

  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

添加或删除工作区

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

Windows 代理

不仅在你希望将 Windows 代理重新配置为向另一工作区进行报告或者从其配置中删除某个工作区的情况下,而且在你要将代理配置为向多个工作区进行报告的情况下,本部分中的步骤都是必要的。 (这种做法通常称为多宿主。)将 Windows 代理配置为向多个工作区报告只能在代理的初始设置后使用本部分所述的方法执行。

从控制面板更新设置

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

  2. 打开控制面板。

  3. 选择“Microsoft Monitoring Agent”,然后选择“Azure Log Analytics”选项卡。

  4. 若要删除工作区,请选中该工作区,然后选择“删除”。 如果还需代理停止向任何其他工作区报告,请重复此步骤。

  5. 如果要添加工作区,请选择“添加”。 在“添加 Log Analytics 工作区”对话框中,粘贴工作区 ID 和工作区密钥(主键)。

  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, 2)
$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 Monitoring Agent”,然后选择“代理设置”选项卡。

  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 Monitoring Agent”>“卸载”>“是”。

注意

还可以通过双击 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 或 Linux 的 Log Analytics 代理。

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

  2. 打开控制面板。

  3. 选择“Microsoft Monitoring Agent”,然后选择“Operations Manager”选项卡。

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

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

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

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

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

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

  10. 选择“确定”来关闭“添加管理组”对话框。 然后,选择“确定”来关闭“Microsoft Monitoring Agent 属性”对话框。

Linux 代理

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

注意

从 Microsoft Operations Management Suite 过渡到 Azure Monitor 期间,Windows 或 Linux 的 Operations Management Suite 代理称为 Windows 或 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 Monitoring Agent”。 在“Azure Log Analytics (OMS)”选项卡下,删除列出的所有工作区。 在 System Center Operations Manager 中,从 Log Analytics 托管的计算机的列表中删除该计算机。 Operations Manager 会更新该代理的配置以便不再向 Log Analytics 进行报告。

后续步骤