导读:本期聚焦于桃子创作的《如何将 Azure 资源连接到 OMS Log Analytics 工作区进行集中监控?》,敬请观看详情。把服务器、容器或 Azure 资源接入 OMS Log Analytics 工作区时,连接方式并不只有一种。直接安装代理虽然简单,但在混合云或大规模场景下可能遇到防火墙、权限和配置漂移问题。这篇文章从最基本的 Windows/Linux 代理安装讲起,延伸到 Azure VM 扩展、容器监控方案以及通过 ARM 模板批量接入,同时对比每种方法适用的场景与维护成本。你还会看到常见连接失败的原因,比如工作区 ID 与密钥配置错误、TLS 版本过低或网络策略拦截,以及对应的排查思路。文中的命令和参数均以实际操作为准,读完就能动手把资源挂到同一个工作区里,用统一的查询语言做日志分析。

如何将 Azure 资源连接到 OMS Log Analytics 工作区进行集中监控?

代理安装是连接工作区的基础

要把服务器或虚拟机的日志送到 OMS Log Analytics 工作区,最直接的方式就是安装 Microsoft Monitoring Agent(MMA)。这个代理同时负责收集性能计数器和 Syslog 事件,并且把数据推送到你指定的工作区。安装之前需要先在工作区里拿到两个关键值:工作区 ID 和主密钥。这两个值在 Azure 门户中 Log Analytics 工作区的“代理管理”页面可以找到,密钥分为主密钥和辅助密钥,日常配置用主密钥即可。

Windows 服务器上可以下载 MMA 的安装包手动执行,也可以通过命令行静默安装。例如在 PowerShell 里运行以下命令完成静默安装并指定工作区:

$workspaceId = "你的工作区ID"
$workspaceKey = "你的主密钥"
$installerPath = "C:\Temp\MMASetup-AMD64.exe"
Start-Process -FilePath $installerPath -ArgumentList "/C:`"setup.exe /qn ADD_OPINSIGHTS_WORKSPACE=1 OPINSIGHTS_WORKSPACE_AZURE_CLOUD_TYPE=0 OPINSIGHTS_WORKSPACE_ID=$workspaceId OPINSIGHTS_WORKSPACE_KEY=$workspaceKey AcceptEndUserLicenseAgreement=1`"" -Wait

Linux 系统则需要使用 OMS Agent for Linux。下载安装脚本后执行,安装过程中会交互式询问工作区 ID 和密钥,也可以把这两个值作为参数传给安装脚本,避免交互过程。安装完成后,运行 sudo /opt/microsoft/omsagent/bin/service_control restart 可以重启代理,用 sudo /opt/microsoft/omsagent/bin/omsadmin.sh -l 可以查看当前连接的工作区信息。

手动安装适合小规模场景,服务器数量一旦超过十几台,逐个登录安装就会变得低效,而且容易遗漏。不过手动安装的优点是灵活,不受 Azure 订阅限制,无论是本地物理机、其他云平台的虚拟机还是公司内网的服务器都可以用同样的方式接入。需要注意的是,代理本身不会自动更新,需要定期检查新版本并制定升级计划。

Azure VM 扩展方式自动完成接入

如果你的虚拟机运行在 Azure 上,最省事的做法是启用 Log Analytics 虚拟机扩展。这个扩展本质上是把 MMA 代理的安装和配置打包成一个 Azure 资源扩展,部署时平台会自动在 VM 内部完成代理安装并且关联到指定的 Log Analytics 工作区。扩展只在虚拟机运行 Windows 或 Linux 时可用,Windows 对应的是 MicrosoftMonitoringAgent 扩展,Linux 对应的是 OmsAgentForLinux 扩展。

通过 Azure CLI 可以快速给一台现有 VM 添加扩展。下面的命令演示了为 Linux VM 添加 OmsAgentForLinux 扩展:

az vm extension set \
  --resource-group MyResourceGroup \
  --vm-name MyLinuxVM \
  --name OmsAgentForLinux \
  --publisher Microsoft.EnterpriseCloud.Monitoring \
  --version 1.13 \
  --settings '{"workspaceId": "你的工作区ID"}' \
  --protected-settings '{"workspaceKey": "你的主密钥"}'

Windows VM 的命令类似,把扩展名称改成 MicrosoftMonitoringAgent,出版商仍然是 Microsoft.EnterpriseCloud.Monitoring。扩展方式的优势在于重复部署成本低,不管是新创建的 VM 还是已有的 VM,都可以用同样的模板或命令接入。如果配合 Azure Policy 使用,甚至可以做到新 VM 创建后自动连接工作区,避免手动遗漏。不过扩展方式要求 VM 能访问 Azure 的公共端点,如果 VM 位于隔离的虚拟网络中,需要确保网络安全组或路由表允许到 Log Analytics 服务端点的出站流量。

和手动安装相比,扩展方式的一个隐性好处是代理版本由扩展版本决定。当你升级扩展版本时,VM 内部的代理也会跟着更新,省去手动升级代理的工作。但这种自动更新也可能带来风险,比如新版本代理与现有采集配置不兼容,所以在生产环境升级扩展之前最好先在测试环境验证。

容器与 Kubernetes 场景的连接方案

容器化环境下不能直接在容器内部安装 MMA 代理,因为容器生命周期短暂,配置文件会随容器删除而丢失。对于 Kubernetes 集群,Azure 提供了 Container Insights 方案,通过部署一个 DaemonSet 在每个节点上放置一个 OMS 代理容器,这个代理会收集节点和容器的日志以及性能指标,然后把数据发送到 Log Analytics 工作区。启用 Container Insights 时可以选择创建新的工作区,也可以直接关联已存在的工作区。

如果已经有一个 Log Analytics 工作区,可以用下面的 Azure CLI 命令为 AKS 集群启用 Container Insights 并关联到指定工作区:

az aks enable-addons \
  --resource-group MyResourceGroup \
  --name MyAKSCluster \
  --addons monitoring \
  --workspace-resource-id /subscriptions/你的订阅ID/resourceGroups/MyWorkspaceRG/providers/Microsoft.OperationalInsights/workspaces/你的工作区名称

这个命令会自动在集群里创建 omsagent DaemonSet,并且每个节点上运行一个代理容器。代理收集的数据包括容器标准输出、Kubernetes 事件、节点性能指标等,这些数据会出现在 Log Analytics 工作区的 ContainerInsights 表中。对于非 Kubernetes 的独立容器,如果使用 Docker 或 containerd,可以考虑在宿主机上安装标准 MMA 代理,通过配置采集 Docker 日志目录或者使用 Fluentd 转发到 Log Analytics。但这种方式维护成本较高,更好的做法是直接使用 Container Insights 的托管方案。

容器连接还有一个容易忽略的问题:日志量突然增大时,工作区的数据保留和成本会明显上升。建议在启用 Container Insights 之前先估算日志生成速率,并且在工作区里设置每日数据上限,避免账单失控。另外要确保集群的出站流量没有被防火墙全部阻断,至少需要放行到 Log Analytics 数据收集端点的 HTTPS 端口 443。

连接失败时的常见排查路径

代理已经安装,但工作区里看不到任何数据,这是最典型的连接问题。第一步应该检查代理服务是否正常运行。Windows 上打开服务管理器查看 Microsoft Monitoring Agent 服务状态,Linux 上运行 sudo systemctl status omsagent 或 sudo /opt/microsoft/omsagent/bin/service_control status。如果服务在运行,接着查看代理日志,Windows 日志路径在 C:\Program Files\Microsoft Monitoring Agent\Agent\ 下的日志文件,Linux 日志在 /var/opt/microsoft/omsagent/log/ 目录里。

日志中常见的一种错误是证书验证失败,这通常意味着 TLS 版本过低。Log Analytics 服务已经要求 TLS 1.2,如果服务器操作系统是旧版 Windows Server 2008 R2 或旧版 Linux 发行版,默认可能只启用 TLS 1.0 或 1.1,需要在系统层面强制开启 TLS 1.2。另一个高频错误是工作区 ID 或密钥配置错误,尤其是在使用静默安装命令时参数传递不完整。可以对比一下工作区门户显示的 ID 和代理配置里的 ID 是否完全一致,注意不要复制进多余的空格。

网络连接问题也占很大比例。数据中心防火墙或代理服务器可能拦截了到 Log Analytics 端点的流量。对于 Azure 公共云,数据收集端点通常是 *.ods.opinsights.azure.com,管理端点通常是 *.oms.opinsights.azure.com。如果服务器需要通过代理出网,需要在代理配置里为这些域名设置例外,或者在 MMA 代理配置中指定代理服务器地址和端口。用 Test-NetConnection 或 nc -zv 命令测试到端点的 TCP 443 连通性,可以快速判断是否为网络问题。

排查的最后一步是确认工作区本身没有达到数据接收限制或处于暂停状态。如果工作区设置了每日上限并且已经达到,新数据会被丢弃。在 Azure 门户的工作区概览页可以查看数据接收量,也可以检查工作区的配额状态。这些排查步骤按顺序执行,大多数连接失败都能定位到具体原因。

OMS Log AnalyticsAzure 监控工作区连接修改时间:2026-09-24 11:33:54

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/0924/61295.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。