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

监视虚拟机(以使用虚拟网络功能)

本部分讨论可用于电信运营商监视虚拟化网络函数 (VNF) 工作负载的可选工具。 使用 Azure 监视代理 (AMA),可以从运行 VNF 的虚拟机 (VM) 收集日志和性能指标。 AMA 的先决条件之一是 Arc 连接回到 Azure(使用 Azure Arc for Servers)。

使用托管标识身份验证通过 CLI 载入扩展

使用 CLI 在 VM 上启用监视代理时,请确保安装适当的 CLI 版本:

  • azure-cli:2.39.0+
  • azure-cli-core:2.39.0+
  • Resource-graph:2.1.0+

有关开始使用 Azure CLI、如何跨多个操作系统安装以及如何安装 CLI 扩展的文档。

Arc 连接

使用已启用 Azure Arc 的服务器可以管理托管在 Azure 外部的 Linux 物理服务器和虚拟机,例如本地云环境(例如运营商关系)。 混合计算机是任何未在 Azure 中运行的计算机。 当混合计算机连接到 Azure 时,它将成为一台联网计算机,被视为 Azure 中的资源。 每台已连接的计算机都有一个资源 ID,使计算机能够包含在资源组中。

先决条件

在开始之前,请务必查看先决条件,并验证你的订阅和资源是否符合要求。 其中一些先决条件包括:

  • VNF VM 连接到 CloudServicesNetwork(VM 用于与运营商关系服务通信的网络)。
  • 对 VNF VM 具有 SSH 访问权限。
  • 代理和 wget 安装:
    • 确保已安装 wget。
    • 若要将代理设置为环境变量,请运行:
echo "http\_proxy=http://169.254.0.11:3128" \>\> /etc/environment
echo "https\_proxy=http://169.254.0.11:3128" \>\> /etc/environment
  • 你对 VNF VM 具有适当的权限,以便能够运行脚本、安装包依赖项等。有关更多详细信息,请访问链接
  • 若要使用已启用 Azure Arc 的服务器,必须在订阅中注册以下 Azure 资源提供程序:
    • Microsoft.HybridCompute
    • Microsoft.GuestConfiguration
    • Microsoft.HybridConnectivity

如果尚未注册这些资源提供程序,可使用以下命令注册它们:

az account set --subscription "{Your Subscription Name}"

az provider register --namespace 'Microsoft.HybridCompute'

az provider register --namespace 'Microsoft.GuestConfiguration'

az provider register --namespace 'Microsoft.HybridConnectivity'

部署

可通过手动执行一组步骤,在环境中通过 Arc 连接服务器。 可以使用部署脚本将 VNF VM 连接到 Azure。 或者,可以运行模板脚本来使用自动化方法。 该脚本可用于自动下载和安装代理。

这种安装和配置代理的方法要求你在计算机上拥有管理员权限。 在 Linux 计算机上,可以使用根帐户部署所需的代理。

Azure 门户中提供了用于自动下载和安装以及与 Azure Arc 建立连接的脚本。 要完成该过程,请执行以下步骤:

  1. 在浏览器中转到 Azure 门户

  2. 在“选择方法”页上,选择“添加单个服务器”磁贴,然后选择“生成脚本”

  3. 在“先决条件”页上,选择“下一步”。

  4. 在“资源详细信息”页上,提供以下信息:

  5. 在“订阅”下拉列表中,选择要在其中管理计算机的订阅。

  6. 在“资源组”下拉列表中,选择要从中管理计算机的资源组。

  7. 在“区域”下拉列表中,选择用于存储服务器元数据的 Azure 区域。

  8. 在“操作系统”下拉列表中,选择 VNF VM 的操作系统。

  9. 如果计算机通过代理服务器连接到 Internet 进行通信,请指定代理服务器 IP 地址。 如果使用名称和端口号,请指定该信息。

  10. 在完成时选择“下一步: 标记”。

  11. 在“标记”页上,查看建议的默认“物理位置标记”并输入值,或指定一个或多个“自定义标记”以支持你的标准 。

  12. 在完成时选择“下一步:下载并运行脚本。

  13. 在“下载并运行脚本”页上查看摘要信息,然后选择“下载” 。 如果仍需进行更改,请选择“上一页”。

注意:

  1. 在脚本顶部设置“出错时退出”标记,确保它快速失败且最终不会提供虚假的成功。 例如,在 Shell 脚本中使用脚本顶部的“set -e”。
  2. 将 export http_proxy=<PROXY_URL> 和 export https_proxy=<PROXY_URL> 添加到脚本,并在 Arc 连接脚本中添加 export 语句。 (代理 IP - 169.254.0.11:3128)。

若要在服务器上部署 azcmagent,请使用拥有 root 访问权限的帐户登录到服务器。 切换到脚本复制到的文件夹,并在服务器上运行 ./OnboardingScript.sh 脚本来执行该脚本。

如果完成安装后代理无法启动,请检查日志以获取详细的错误信息。 日志目录为 /var/opt/azcmagent/log

安装代理并将其配置为连接到已启用 Azure Arc 的服务器后,请在 Azure 门户中验证是否已成功连接服务器。

已注册 Arc 的 VM 示例的屏幕截图。

图:已注册 Arc 的 VM 示例

故障排除

注意:如果在运行脚本时看到错误,请修复错误并重新运行脚本,然后再继续后续步骤。

导致错误的一些常见原因:

  1. 你在 VM 上没有所需权限。
  2. VM 上未安装 wget 包。
  3. 如果无法安装包依赖项,则原因是代理没有将所需的域添加到允许的 URL。 例如,在 Ubuntu 上,apt 无法安装依赖项,因为它无法访问“.ubuntu.com”。 将所需的出口终结点添加到代理。

Azure Monitor 代理

Azure Monitor 代理作为 Azure VM 扩展在 Arc 连接的计算机上实现。 它还列出了相关选项,用于创建与定义代理应收集何种数据的数据收集规则的关联。 安装、升级或卸载 Azure Monitor 代理不需要重启服务器。

确保使用数据收集规则配置日志和指标的收集。

DCR 添加源的屏幕截图。

图:DCR 添加源

注意:配置了 DCR 的指标应将目标设置为 Log Analytics 工作区,因为 Azure Monitor 指标还不支持它。

DCR 添加目标的屏幕截图。

图:DCR 添加目标

先决条件

必须先满足以下先决条件,才能安装 Azure Monitor 代理:

  • 权限:对于利用 Azure 门户之外的其他方法,必须具有以下角色分配来安装代理:
内置角色 作用域 原因
虚拟机参与者Azure Connected Machine 资源管理员 已启用 Azure Arc 的服务器 部署代理
负责关于 Microsoft.Resources/deployments/ 操作的任何角色 订阅和/或资源组和/或 部署 Azure 资源管理器模板

安装 Azure 监视代理

通过 Arc 连接虚拟机后,请确保从 Azure Cloud Shell 创建一个名为“settings.json”的本地文件来提供代理信息:

Settings.json 文件的屏幕截图。

图:settings.json 文件

然后,使用以下命令在这些已启用 Azure Arc 的服务器上安装 Azure 监视代理:

az connectedmachine extension create --name AzureMonitorLinuxAgent --publisher Microsoft.Azure.Monitor --type AzureMonitorLinuxAgent --machine-name \<arc-server-name\> --resource-group \<resource-group-name\> --location \<arc-server-location\> --type-handler-version "1.21.1" --settings settings.json

若要使用 Azure Monitor 代理从虚拟机收集数据,你需要:

  1. 创建数据收集规则 (DCR),用于定义 Azure Monitor 代理要发送的数据及其发送到的目标位置。

  2. 将数据收集规则关联到特定虚拟机。

通过门户添加数据收集规则

可在此处找到创建 DCR 并将其关联到 Log Analytics 工作区的步骤。

最后,验证是否在指定的 Log Analytics 工作区中获取日志。

通过 CLI 添加数据收集规则

以下命令可用于创建和关联 DCR,以便从这些虚拟机收集日志和指标。

创建 DCR:

az monitor data-collection rule create --name \<name-for-dcr\> --resource-group \<resource-group-name\> --location \<location-for-dcr\> --rule-file \<rules-file\> [--description] [--tags]

规则文件示例:

示例 DCR 规则文件的屏幕截图。

关联 DCR:

az monitor data-collection rule association create --name \<name-for-dcr-association\> --resource \<connected-machine-resource-id\> --rule-id \<dcr-resource-id\> [--description]

其他资源