本文可帮助你排查Azure Monitor中Windows Log Analytics代理的错误。 它建议解决它们的解决方案。
Log Analytics 故障排除工具
用于Windows故障排除工具的 Log Analytics 代理是 PowerShell 脚本的集合,可帮助你查找和诊断代理的问题。 代理安装会自动包括该工具。 运行它应该是诊断问题的第一步。
使用故障排除工具
在安装了 Log Analytics 代理的计算机上以管理员身份打开 PowerShell 提示符。
转到该工具所在的目录:
cd "C:\Program Files\Microsoft Monitoring Agent\Agent\Troubleshooter"使用以下命令运行主脚本:
.\GetAgentInfo.ps1选择故障排除方案。
按照控制台上的说明进行操作。 跟踪日志步骤需要手动干预才能停止日志收集。 根据问题的可重现性,等待持续时间并选择 s 停止日志收集,然后继续执行下一步。
进程在完成时记录结果文件的位置,并打开突出显示它的新资源管理器窗口。
安装
安装 Log Analytics 代理内部版本 10.20.18053.0 及更高版本时,会自动包含故障排除工具。
涵盖的方案
故障排除工具会检查以下情况:
- 代理未上报数据,或心跳数据缺失。
- 代理扩展部署失败。
- 代理崩溃。
- 代理消耗大量 CPU 或内存。
- 安装和卸载失败。
- 自定义日志有问题。
- OMS 网关有问题。
- 性能计数器有问题。
- 无法收集代理日志。
注意
遇到问题时,请运行故障排除工具。 初始获取日志有助于支持团队更快速地解决您的问题。
重要的故障排除源
若要排查Log Analytics代理Windows问题,代理会将事件记录到Windows事件日志中。 它使用 “应用程序和服务\Operations Manager ”部分。
连接问题
如果代理通过代理服务器或防火墙进行通信,则限制可能会阻止源计算机与 Azure Monitor 服务之间的通信。 如果配置错误会阻止通信,则在安装代理或将其配置为向另一个工作区报告后,与工作区注册可能会失败。 成功注册后,代理通信可能会失败。 本部分介绍使用 Windows 代理排查此问题的方法。
仔细检查防火墙或代理是否允许下表中的端口和 URL。 另请确认是否没有为 Web 流量启用 HTTP 检查。 这可能会妨碍在代理与 Azure Monitor 之间建立安全的 TLS 通道。
| 代理资源 | 端口 | 方向 | 绕过 HTTPS 检查 |
|---|---|---|---|
| *.ods.opinsights.azure.cn | 端口 443 | 出站 | 是 |
| *.oms.opinsights.azure.cn | 端口 443 | 出站 | 是 |
| *.blob.core.chinacloudapi.cn | 端口 443 | 出站 | 是 |
| *.agentsvc.azure-automation.cn | 端口 443 | 出站 | 是 |
可以使用 Azure 自动化混合 Runbook 执行器连接到自动化服务并注册,以使用 Runbook 或管理解决方案。 它必须能够访问 为混合 Runbook 辅助角色配置网络 中列出的所需端口和 URL。
可以使用多种方法验证代理是否成功与 Azure Monitor 通信:
运行以下查询,以确认代理向其配置的工作区发送心跳信号。 请将
<ComputerName>替换为计算机的实际名称。Heartbeat | where Computer like "<ComputerName>" | summarize arg_max(TimeGenerated, * ) by Computer如果计算机成功与服务通信,查询将返回结果。 如果查询未返回结果,请先验证代理是否已配置为向正确的工作区报告。 如果一切配置正确,请继续执行步骤 3。 搜索 Windows 事件日志,确定代理是否正在记录可能阻止它与 Azure Monitor 通信的问题。
识别连接问题的另一种方法是运行 TestCloudConnectivity 工具。 默认情况下,该工具会连同代理一起安装在 %SystemRoot%\Program Files\Microsoft Monitoring Agent\Agent 文件夹中。 在权限提升的命令提示符下,转到该文件夹并运行该工具。 此工具将返回结果并突出显示测试失败的位置。 例如,它可能与阻止的特定端口或 URL 相关。
按事件源Health Service Modules、HealthService 和 Service Connector 筛选 Operations Manager 事件日志,并按事件级别警告和错误筛选,以确认是否正在记录下表中的事件。 如果这样做,请查看针对每个可能事件包含的解决方案步骤。
事件标识 来源 说明 解决方案 2133 和 2129 运行状况服务 代理程序连接到该服务失败。 当代理无法直接或通过防火墙或代理服务器与 Azure Monitor 服务进行通信时,将发生此错误。 验证代理程序设置,或确认网络防火墙或代理是否允许来自此计算机到该服务的 TCP 流量。 2138 健康服务模块 代理要求身份验证。 配置代理设置,并指定使用代理服务器进行身份验证所需的用户名和密码。 2129 健康服务模块 连接失败。 TLS 协商失败。 检查网络适配器的 TCP/IP 设置和代理程序设置。 2127 运行状况服务模块 发送数据失败,收到错误代码。 如果它只在一天中定期发生,则可能是可以忽略的随机异常。 通过监视来了解问题发生的频率。 如果这种情况在一天中频繁发生,请先检查您的网络配置和代理设置。 如果说明包含 HTTP 错误代码 404,并且它是代理首次尝试将数据发送到服务,则它还显示 500 错误。 500 错误包含内部 404 错误代码。 错误代码 404 表示“未找到”,即,仍在预配新工作区的存储区域。 在下一次重试时,数据会按预期成功写入工作区。 HTTP 错误 403 可能表示出现权限或凭据问题。 403 错误中包含了更多信息,以帮助排查该问题。 4000 服务连接器 DNS 名称解析失败。 计算机无法解析在向服务发送数据时使用的 Internet 地址。 可能是计算机上的 DNS 解析程序设置有问题、代理设置不正确,或者提供商出现了暂时性的 DNS 问题。 如果定期发生,则可能是由于与网络相关的暂时性问题。 4001 服务连接器 无法连接到服务。 当代理无法直接或通过防火墙或代理服务器与 Azure Monitor 服务进行通信时,将发生此错误。 验证代理程序设置,或者确认网络防火墙或代理是否允许来自该计算机到该服务的 TCP 流量通过。 4002 服务连接器 服务返回 HTTP 状态代码 403 以响应查询。 请咨询服务管理员以了解服务的运行状况。 稍后会重试查询。 此错误是在代理的初始注册阶段写入的。 会看到类似于 https://< workspaceID.oms.opinsights.azure.cn/AgentService.svc/AgentTopologyRequest> 的 URL。 403 错误代码表示“禁止”,并可能由错误键入的工作区 ID 或密钥导致。 或者可能是计算机上的数据和时间不正确。 如果时间与当前时间相差超过 ±15 分钟,引导流程将失败。 若要更正此问题,请更新 Windows 计算机的日期和时间。
数据收集问题
安装代理并将其配置为向一个或多个工作区报告后,可能会停止接收配置。 它还可以停止收集或发送性能数据、日志或其他数据到服务。 此问题取决于计算机上所针对的内容以及哪些功能已启用。 需要确定:
- 工作区中是特定的数据类型不可用,还是所有数据都不可用?
- 该数据类型是由解决方案指定的,还是指定为工作区数据收集配置的一部分?
- 有多少台计算机受到影响? 是有一台计算机还是多台计算机向工作区报告?
- 它是否工作,它是否在一天的特定时间停止,还是从未收集过?
- 使用的日志搜索查询在语法上是否正确?
- 代理是否曾经从 Azure Monitor 接收过其配置?
排查故障的第一步是确定计算机是否正在发送心跳事件。
Heartbeat
| where Computer like "<ComputerName>"
| summarize arg_max(TimeGenerated, * ) by Computer
如果查询返回了结果,则你需要确定是否未收集特定的数据类型并将其转发到服务。 此问题可能是代理未从服务接收更新的配置或阻止代理正常运行的其他一些症状导致的。 执行以下步骤进一步进行故障排除。
在计算机上打开权限提升的命令提示符,并输入
net stop healthservice && net start healthservice重启代理服务。打开 Operations Manager 事件日志,并搜索来自 事件源HealthService 的 事件 ID7023、7024、7025、7028 和 1210。 这些事件表示代理可成功从 Azure Monitor 接收配置,并且它们正在监视计算机。 事件 ID 1210 的事件说明还明确指定了代理监视范围中所有解决方案和见解所在的最后一行。
等待几分钟。 如果你未在查询结果或可视化中看到预期的数据,请根据你查看的数据来自解决方案还是 Insight,在 Operations Manager 事件日志中搜索 事件源HealthService 和 Health Service Modules。 按 事件级别警告 和 错误 进行筛选,以确认它是否从下表中写入事件。
事件标识 来源 说明 解决方案 8,000 健康服务 此事件指明与收集的性能、事件或其他数据类型相关的工作流是否无法转发到服务以供工作区使用。 来自源 HealthService 的事件 ID 2136 会与此事件一同写入日志,并且可能表明代理无法与该服务通信。 原因可能是代理和身份验证设置的配置不当、网络中断,或者网络防火墙或代理不允许将计算机的 TCP 流量发送到服务。 10102 和 10103 运行状况服务模块 工作流无法解析数据源。 如果计算机上不存在指定的性能计数器或实例,则可能会出现此问题。 如果工作区数据设置错误地定义它,则也可能发生这种情况。 如果它是用户指定的 性能计数器,请验证指定的信息采用正确的格式,并存在于目标计算机上。 26002 运行状况服务模块 工作流无法解析数据源。 如果计算机上不存在指定的 Windows 事件日志,则可能会出现此问题。 如果预期不需要在计算机上此注册此事件日志,则可以安全忽略此错误。 否则,如果是用户指定的 事件日志,请验证指定的信息是否正确。