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

将指标上传到 Azure Monitor

用户可以定期导出监视指标,然后将这些指标上传到 Azure。 数据的导出和上传还会在 Azure 中创建并更新数据控制器、SQL 托管实例和 PostgreSQL 服务器资源。

利用 Azure Arc 数据服务,用户可以选择将指标上传到 Azure Monitor,以便可以聚合和分析指标,引发警报,发送通知,或触发自动操作。

通过将数据发送到 Azure Monitor,还可以用非现场和大规模的方式存储指标数据,使数据能够长期存储,以便进行高级分析。

如果有多个具有 Azure Arc 数据服务的站点,可以使用 Azure Monitor 作为中心位置来收集各站点中的所有日志和指标。

在直接模式下上传 Azure Arc 数据控制器的指标

在直接连接模式下,只能在自动模式下设置指标上传。 可以在部署 Azure Arc 数据控制器的过程中设置这种自动上传指标的功能,也可以在部署完成后这样做。 Arc 数据服务扩展托管标识用于上传指标。 需要为托管标识分配“监视指标发布者”角色

注意

如果在 Azure Arc 数据控制器部署期间禁用了指标自动上传,则必须首先检索 Arc 数据控制器扩展的托管标识并授予“监视指标发布者”角色,然后才能启用自动上传。 按照以下步骤检索托管标识并授予所需角色。

本文中的示例使用尖括号 < ... > 来标识在运行脚本之前需要替换的值。 替换括号和括号中的值。

(1) 检索 Arc 数据控制器扩展的托管标识

$Env:MSI_OBJECT_ID = (az k8s-extension show --resource-group <resource group>  --cluster-name <connectedclustername> --cluster-type connectedClusters --name <name of extension> | convertFrom-json).identity.principalId
#Example
$Env:MSI_OBJECT_ID = (az k8s-extension show --resource-group myresourcegroup  --cluster-name myconnectedcluster --cluster-type connectedClusters --name ads-extension | convertFrom-json).identity.principalId

(2) 为托管标识分配角色

运行以下命令来分配“监视指标发布者”角色

az role assignment create --assignee $Env:MSI_OBJECT_ID --role 'Monitoring Metrics Publisher' --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP_NAME"

可按如下所示启用指标自动上传:

az arcdata dc update --name <name of datacontroller> --resource-group <resource group> --auto-upload-metrics true
#Example
az arcdata dc update --name arcdc --resource-group <myresourcegroup> --auto-upload-metrics true

若要禁用将指标自动上传到 Azure Monitor,请运行以下命令:

az arcdata dc update --name <name of datacontroller> --resource-group <resource group> --auto-upload-metrics false
#Example
az arcdata dc update --name arcdc --resource-group <myresourcegroup> --auto-upload-metrics false

在间接模式下上传 Azure Arc 数据控制器的指标

在间接连接模式下,服务主体用于上传指标

先决条件

在继续操作之前,请确保已创建所需的服务主体,并已将其分配给适当的角色。 有关详细信息,请参阅:

设置环境变量并确认

在环境变量中设置 SPN 机构 URL:

$Env:SPN_AUTHORITY='https://login.microsoftonline.com'

如果需要,请检查以确保设置了所有必需的环境变量:

$Env:SPN_TENANT_ID
$Env:SPN_CLIENT_ID
$Env:SPN_CLIENT_SECRET
$Env:SPN_AUTHORITY

将指标上传到 Azure Monitor

若要上传由 Azure Arc 启用的 SQL 托管实例以及由 Azure Arc 启用的 PostgreSQL 的指标,请运行以下 CLI 命令:

  1. 将所有指标导出到指定文件:

注意

使用命令 az arcdata dc export 导出使用情况/账单信息、指标和日志需要跳过 SSL 验证。 系统将提示你跳过 SSL 验证,或者你可以设置 AZDATA_VERIFY_SSL=no 环境变量以避免出现提示。 目前无法为数据控制器导出 API 配置 SSL 证书。

az arcdata dc export --type metrics --path metrics.json --k8s-namespace arc
  1. 将指标上传到 Azure Monitor:

    az arcdata dc upload --path metrics.json
    

    注意

    在为第一次上传创建已启用 Azure Arc 的数据实例后,请等待至少 30 分钟。

    请确保在 export 之后立即 upload 指标,因为 Azure Monitor 只接受最近 30 分钟的指标。 了解详细信息

如果在导出过程中看到任何指示“无法获取指标”的错误,请通过运行以下命令来检查数据收集是否设置为 true

az arcdata dc config show  --k8s-namespace arc --use-k8s

在“安全部分”下查找

 "security": {
      "allowDumps": true,
      "allowNodeMetricsCollection": true,
      "allowPodMetricsCollection": true,
    },

验证 allowNodeMetricsCollectionallowPodMetricsCollection 属性是否设置为 true

在门户中查看指标

在上传指标后,可以从 Azure 门户中看到这些指标。

注意

请注意,处理上传的数据可能需要几分钟时间,然后才能在门户中查看这些指标。

要查看指标,请导航至 Azure 门户。 然后,在搜索栏中按名称搜索数据库实例:

可以在“概述”页上查看 CPU 利用率,或者,如果需要更详细的指标,可以单击左侧导航面板中的指标

选择 sql server 或 postgres 作为指标命名空间。

选择要可视化的指标(也可以选择多个)。

将频率更改为过去 30 分钟。

注意

只能上传最近 30 分钟的指标。 Azure Monitor 拒绝 30 分钟以前的指标。

自动上传(可选)

如果你要按计划上传指标和日志,可以创建脚本,并每隔几分钟按照计时器运行该脚本。 下面是使用 Linux shell 脚本自动执行上传的示例。

在常用文本/代码编辑器中,将以下脚本添加到该文件中,并将其另存为脚本可执行文件,如 .sh (Linux/Mac)、.cmd.bat.ps1

az arcdata dc export --type metrics --path metrics.json --force  --k8s-namespace arc
az arcdata dc upload --path metrics.json

使脚本文件可执行。

chmod +x myuploadscript.sh

每隔 20 分钟运行该脚本:

watch -n 1200 ./myuploadscript.sh

还可以使用 cron 或 Windows 任务计划程序等作业计划程序或者 Ansible、Puppet 或 Chef 等业务流程协调程序。

有关导出和上传使用情况和指标的一般原则

针对已启用 Azure Arc 的数据服务的创建、读取、更新和删除 (CRUD) 操作会被记录到日志,以用于计费和监视。 有后台服务会监视这些 CRUD 操作并相应计算消耗。 实际的使用情况或消耗的计算会按计划进行,并且在后台完成。

每日仅上传一次使用情况数据。 如果在同一个 24 小时内多次导出并上传使用情况信息,则只会更新 Azure 门户中的资源清单,而不会更新资源使用情况。

对于上传指标,Azure Monitor 只接受最近 30 分钟的数据(了解详细信息)。 上传指标的原则是要在创建导出文件后立即上传指标,这样就可以在 Azure 门户中看到整个数据集。 例如,如果在下午 2:00 导出指标,然后在下午 2:50 运行上传命令。 由于 Azure Monitor 只接受最近 30 分钟的数据,因此在门户中可能看不到任何数据。

将日志上传到 Azure Monitor

将使用情况数据、指标和日志上传到 Azure Monitor

将计费数据上传到 Azure 并在 Azure 门户中查看

在 Azure 门户中查看 Azure Arc 数据控制器资源