注意
本文引用了 CentOS,这是一个处于生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑您的规划和使用。 有关详细信息,请参阅 CentOS 生命周期结束指南。
Azure Monitor 代理 (AMA) 疑难解答工具旨在帮助识别代理的问题并执行常规健康评估。 它可以执行各种检查,以确保正确安装和连接代理,还可以从被诊断的计算机收集与 AMA 相关的日志。
注意
AMA 疑难解答是一个可执行文件,随同代理一起提供,适用于所有版本高于 1.25.1 的 Linux 系统。
先决条件
公共终结点要求
Linux AMA 故障排除程序需要访问以下公共终结点才能正常运行: /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
可以安装和别名多个版本的Python - 如果安装了多个版本,请使用:
ls -ls /usr/bin/python*
如果虚拟机使用默认不包含 Python 3 的发行版,则必须安装它。 以下示例命令在不同的发行版上安装 Python 3:
sudo yum install -y python3
此外,需要运行以下Python包(所有包都应在默认安装 Python 2 或 Python 3 上):
| Python 包 | 需要 Python 2 吗? | 需要 Python 3 吗? |
|---|---|---|
| 复制 | 是 | 是 |
| 日期/时间 | 是 | 是 |
| json | 是 | 是 |
| 操作系统 | 是 | 是 |
| 平台 | 是 | 是 |
| 再 | 是 | 是 |
| 请求 | 否 | 是 |
| shutil | 是 | 是 |
| 子过程 | 是 | 是 |
| url lib | 是 | 否 |
| xml.dom.minidom | 是 | 是 |
故障排除程序存在性检查
请检查被诊断的计算机上是否存在 AMA 代理故障排查工具目录,以确认已安装该代理故障排查工具。
/var/lib/waagent/Microsoft.Azure.Monitor.AzureMonitorLinuxAgent-{version}
若要验证 Azure Monitor 代理故障排除工具是否存在,请复制以下命令,并在 Bash 中以 root 身份运行。
ls -ltr /var/lib/waagent | grep "Microsoft.Azure.Monitor.AzureMonitorLinuxAgent-*"
如果目录不存在或安装失败,请按照基本故障排除步骤操作。
如果目录存在,请继续运行疑难解答工具。
运行疑难解答
在要诊断的计算机上,运行 Agent 故障排查工具。
日志模式启用日志收集,然后可将日志压缩为 .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 文件输出到指定的输出目录。 请耐心等待此过程完成。
常见问题
是否可以将疑难解答从较新的代理复制到较旧的代理,并在较旧的代理上运行以诊断旧代理的问题?
无法通过复制的方式使用疑难解答来诊断旧版本的代理。 您需要最新版本的客户端程序才能让故障排除工具正常工作。
后续步骤
- Linux 虚拟机和规模集上的 Azure Monitor 代理故障排除指南
- 适用于 Linux 的 Azure Monitor Agent
Syslog 故障排除指南