通过


你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何使用 Azure Monitor 代理疑难解答工具在 Linux 操作系统中进行故障排除

注意

本文引用了 CentOS,这是一个处于生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指南

Azure Monitor Agent (AMA)故障排查工具旨在帮助识别代理的问题并执行健康状态评估。 它可以执行各种检查,以确保正确安装和连接代理,还可以从被诊断的计算机收集与 AMA 相关的日志。

注意

AMA 疑难解答是一个可执行文件,随附于所有版本高于 1.25.1 的 Linux 代理。

先决条件

公共终结点要求

Linux AMA 故障排除程序需要访问以下公共终结点才能正常运行: https://docs.microsoft.com/en-us/azure/azure-monitor/agents/azure-monitor-agent-extension-versions

该工具使用此 URL 检索最新的 Azure Monitor 代理(AMA)版本信息。 确保从执行工具的环境允许出站连接到此终结点。 缺少访问可能会导致故障排除期间超时或失败。

Python 要求

Linux AMA 疑难解答要求在计算机上安装 Python 2.6+ 或 Python 3 版本

若要检查计算机上是否安装了 python,请复制以下命令并在 Bash 中作为根运行:

sudo python -V
sudo python3 -V

用于检查 Linux 中 Python 版本的命令的屏幕截图。

可以安装和使用多个 Python 版本的别名。如果安装了多个 Python 版本,请使用:

ls -ls /usr/bin/python*

用于检查适用于 Linux 的 Python 多个版本的命令的屏幕截图。

如果虚拟机使用的发行版默认情况下不包括 Python 3,则必须进行安装。 以下示例命令将在不同的发行版上安装 Python 3:

sudo yum install -y python3

此外,需要以下 Python 包才能运行(Python 2 或 Python 3 的默认安装应具有所有这些包):

Python 包 是否需要 Python 2? Python 3 是否必需?
copy
日期/时间
json
os
平台
re
请求
shutil
子过程
url lib
xml.dom.minidom

检查疑难解答是否存在

在需诊断的计算机上检查是否存在 AMA Agent 疑难解答工具目录,以确认代理疑难解答工具已安装。

/var/lib/waagent/Microsoft.Azure.Monitor.AzureMonitorLinuxAgent-{version}

若要验证是否存在 Azure Monitor 代理故障排除程序,请复制以下命令并在 Bash 中作为根运行:

ls -ltr /var/lib/waagent | grep "Microsoft.Azure.Monitor.AzureMonitorLinuxAgent-*"

Bash 窗口的屏幕截图,其中显示了对 AMA 安装目录运行的 ls 命令的结果。

如果目录不存在或安装失败,请按照基本故障排除步骤操作。

如果目录存在,请继续运行故障排除程序

运行疑难解答

在要诊断的计算机上,运行代理诊断工具。

日志模式启用日志收集,然后可将日志压缩为 .tgz 格式进行导出或评审。 交互模式允许用户积极参与故障排除方案,并直接在 shell 中查看输出。

若要在日志模式下启动代理故障排除工具,请复制以下命令并以root用户身份在 Bash 环境中运行:

注意

需要更新 {version} 以匹配已安装的版本号。 在下面的示例中,当前版本是 1.28.11。

cd /var/lib/waagent/Microsoft.Azure.Monitor.AzureMonitorLinuxAgent-{version}/ama_tst/
sudo sh ama_troubleshooter.sh -L

输入输出日志的路径。 例如,可能会使用/tmp

它运行一系列活动,并将 .tgz 文件输出到指定的输出目录。 请耐心等待此过程完成。

Bash 窗口的屏幕截图,其中显示了结合 -L 选项运行 AgentTroubleshooter 以生成日志的结果。

常见问题

是否可以将疑难解答从较新的代理复制到较旧的代理,并在较旧的代理上运行以诊断旧代理的问题?

无法通过复制代理来使用疑难解答诊断旧版代理。 必须拥有最新版本的代理,才能正常运行疑难解答。

后续步骤