你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于启用了 Windows Arc 的服务器上的 Azure Monitor 代理的排查指南
Azure Monitor 代理概述
进一步阅读前,必须先了解 Azure Monitor 代理和数据收集规则。
术语
名称 | 首字母缩写词 | 说明 |
---|---|---|
Azure Monitor 代理 | AMA | 新的 Azure Monitor 代理 |
数据收集规则 | DCR | 按代理划分的数据收集的配置规则,即收集内容、接收对象等 |
Azure Monitor 配置服务 | AMCS | Azure 中托管的区域服务,用于控制此代理和 Azure Monitor 其他部分的数据收集。 代理调用此服务以获取 DCR。 |
日志终结点 | -- | 用于将数据发送到 Log Analytics 工作区的终结点 |
指标终结点 | -- | 用于将数据发送到 Azure Monitor 指标数据库的终结点。 |
实例元数据服务和混合 | IMDS 和 HIMDS | Azure 中托管的服务,分别提供有关当前运行的虚拟机、规模集(通过 IMDS)和启用了 Arc 的服务器(通过 HIMDS)的信息 |
Log Analytics 工作区 | LAW | Azure Monitor 中可将代理所收集的日志发送到的目标 |
自定义指标 | -- | Azure Monitor 中可将代理所收集的来宾指标发送到的目标 |
基本故障排除步骤(安装、代理未运行、配置问题)
按照以下步骤对启用了 Windows Arc 的服务器上运行的最新版 Azure Monitor 代理进行排查:
仔细查看此处的先决条件。
验证是否已成功安装和预配扩展,如果成功则会在计算机上安装代理二进制文件:
- 打开 Azure 门户 > 选择启用了 Arc 的服务器 > 从左侧窗格打开“设置: 扩展” 应显示 'AzureMonitorWindowsAgent',并显示“状态: 成功”>
- 否则,请检查 Arc 代理 (Connected Machine Agent) 是否能够连接到 Azure,并且扩展服务正在运行。
应会显示以下输出:azcmagent show
Resource Name : <server name> [...] Dependent Service Status Agent Service (himds) : running GC Service (gcarcservice) : running Extension Service (extensionservice) : running
- 等待 10-15 分钟,因为扩展可能处于正在转换状态。 如果仍未显示,请再次卸载并安装扩展,然后重复验证并查看扩展是否显示。
- 如果未显示,请检查计算机上位于
C:\ProgramData\GuestConfig\extension_logs\Microsoft.Azure.Monitor.AzureMonitorWindowsAgent
的扩展日志是否存在任何错误
验证代理是否正在运行:
- 使用以下查询检查代理是否正在将检测信号日志发送到 Log Analytics 工作区。 如果“自定义指标”是 DCR 中的唯一目标,则跳过:
Heartbeat | where Category == "Azure Monitor Agent" and Computer == "<computer-name>" | take 10
- 如果不是,打开任务管理器并检查“MonAgentCore.exe”进程是否正在运行。 如果是,请等待 5 分钟才能显示检测信号。
- 如果未显示,请检查计算机上位于
C:\Resources\Directory\AMADataStore\Configuration
的内核代理日志是否存在任何错误
- 使用以下查询检查代理是否正在将检测信号日志发送到 Log Analytics 工作区。 如果“自定义指标”是 DCR 中的唯一目标,则跳过:
验证 DCR 是否存在且是否与启用了 Arc 的服务器相关联:
- 如果使用 Log Analytics 工作区作为目标,请验证 DCR 是否位于 Log Analytics 工作区所在的物理区域。
- 在启用了 Arc 的服务器上,验证文件
C:\Resources\Directory\AMADataStore\mcs\mcsconfig.latest.xml
是否存在。 如果此文件不存在,则启用了 Arc 的服务器可能未与 DCR 关联。 - 打开 Azure 门户 > 选择你的数据收集规则 > 打开左侧窗格中的“配置: 资源”> 此处应列出已启用 Arc 的服务器
- 如果未显示,请单击“添加”并从资源选取器中选择启用了 Arc 的服务器。 对所有 DCR 重复操作。
验证代理是否能够从 AMCS 服务下载相关的 DCR:
- 检查是否显示在此位置
C:\Resources\Directory\AMADataStore\mcs\configchunks
下载的最新 DCR
- 检查是否显示在此位置
收集性能计数器时出现问题
- 检查 DCR JSON 是否包含“performanceCounters”部分。 如果不包含,请修复 DCR。 请参阅如何创建 DCR 或示例 DCR。
- 检查文件
C:\Resources\Directory\AMADataStore\mcs\mcsconfig.lkg.xml
是否存在。 - 打开该文件并检查它是否包含
CounterSet
节点,如以下示例所示:<CounterSet storeType="Local" duration="PT1M" eventName="c9302257006473204344_16355538690556228697" sampleRateInSeconds="15" format="Factored"> <Counter>\Processor(_Total)\% Processor Time</Counter> <Counter>\Memory\Committed Bytes</Counter> <Counter>\LogicalDisk(_Total)\Free Megabytes</Counter> <Counter>\PhysicalDisk(_Total)\Avg. Disk Queue Length</Counter> </CounterSet>
使用“自定义指标”作为目标时出现问题
仔细查看此处的先决条件。
确保正确创建关联的 DCR 以收集性能计数器并发送到 Azure Monitor 指标。 DCR 中应显示此部分:
"destinations": { "azureMonitorMetrics": { "name":"myAmMetricsDest" } }
运行 PowerShell 命令:
Get-WmiObject Win32_Process -Filter "name = 'MetricsExtension.Native.exe'" | select Name,ExecutablePath,CommandLine | Format-List
验证输出中的 CommandLine 参数是否包含参数“-TokenSource MSI”
验证
C:\Resources\Directory\AMADataStore\mcs\AuthToken-MSI.json
文件是否存在。验证
C:\Resources\Directory\AMADataStore\mcs\CUSTOMMETRIC_<subscription>_<region>_MonitoringAccount_Configuration.json
文件是否存在。运行命令
C:\Packages\Plugins\Microsoft.Azure.Monitor.AzureMonitorWindowsAgent\<version-number>\Monitoring\Agent\table2csv.exe C:\Resources\Directory\AMADataStore\Tables\MaMetricsExtensionEtw.tsf
以收集日志- 该命令将生成文件“MaMetricsExtensionEtw.csv”
- 打开该文件,查找所有 2 级错误并修复。
收集 Windows 事件日志时出现问题
- 检查 DCR JSON 是否包含“windowsEventLogs”部分。 如果不包含,请修复 DCR。 请参阅如何创建 DCR 或示例 DCR。
- 检查文件
C:\Resources\Directory\AMADataStore\mcs\mcsconfig.lkg.xml
是否存在。 - 打开该文件并检查它是否包含
Subscription
节点,如以下示例所示:<Subscription eventName="c9302257006473204344_14882095577508259570" query="System!*[System[(Level = 1 or Level = 2 or Level = 3)]]"> <Column name="ProviderGuid" type="mt:wstr" defaultAssignment="00000000-0000-0000-0000-000000000000"> <Value>/Event/System/Provider/@Guid</Value> </Column> ... </Column> </Subscription>