监视虚拟机(用于虚拟化网络功能)

本部分讨论可用于电信运营商监视虚拟化网络函数(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 扩展

弧连接性

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

先决条件

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

  • VNF VM 连接到 CloudServicesNetwork(VM 用于与操作员 Nexus 服务通信的网络)。
  • 对 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. 在“下载并运行脚本”页上查看摘要信息,然后选择“下载” 。 如果仍需进行更改,请选择“上一页”。

Note:

  1. 在脚本顶部设置错误退出标志,以确保快速失败,并防止最终出现误导性的成功结果。 例如,在 Shell 脚本中使用脚本顶部的“set -e”。
  2. 将导出http_proxy=<PROXY_URL> 和导出https_proxy=<PROXY_URL> 添加到脚本以及 Arc 连接脚本中的导出语句。 (代理 IP - 169.254.0.11:3128)。

若要在 azcmagent 服务器上部署,请使用具有根访问权限的帐户登录到服务器。 更改到您复制脚本到的文件夹,并通过运行 ./OnboardingScript.sh 脚本在服务器上执行该脚本。

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

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

示例 Arc-Enrolled VM 的屏幕截图。

图:示例 Arc-Enrolled VM

Troubleshooting

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

错误的一些常见原因:

  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 门户以外的方法,必须具有以下角色分配才能安装代理:
内置角色 范围 Reason
虚拟机贡献者Azure Connected Machine 资源管理员 已启用 Azure Arc 的服务器 部署代理
包含Microsoft.Resources/deployments/ 操作的任何角色* 订阅和/或资源组和/或 部署 Azure 资源管理器模板

安装 Azure Monitoring Agent

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

Settings.json 文件的屏幕截图。

图:settings.json 文件

然后使用以下命令在这些已启用 Azure Arc 的服务器上安装 Azure Monitoring Agent:

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]

其他资源