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

以间接模式将使用情况数据上传到 Azure

用户可以定期导出使用情况信息。 此信息的导出和上传会在 Azure 中创建并更新数据控制器、SQL 托管实例和 PostgreSQL 资源。

注意

以直接连接模式部署的 Azure Arc 数据控制器的使用情况信息会自动上传。 本文中的说明仅适用于上传以间接连接模式部署的 Azure Arc 数据控制器的使用情况信息。

创建 Azure Arc 数据控制器后至少等待 24 小时,才能上传使用情况数据。

创建服务主体并分配角色

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

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

上传使用数据

可采用以下两步骤方式将使用情况信息(如库存和资源使用情况)上传到 Azure:

  1. 使用 az arcdata dc export 命令导出使用情况数据,如下所示:

注意

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

az arcdata dc export --type usage --path usage.json --k8s-namespace <namespace> --use-k8s

此命令创建一个 usage.json 文件,其中包含在数据控制器上创建的所有 Azure Arc-enabled Kubernetes 的数据资源,例如 SQL 托管实例和 PostgreSQL 实例等。

目前,文件未加密以便查看内容。 可以随意在文本编辑器中打开,并查看内容的呈现情况。

你会注意到有两个数据集:resourcesdataresources 是数据控制器、PostgreSQL 和 SQL 托管实例。 数据中的 resources 记录捕获资源历史记录中的相关事件 - 创建时间、更新时间以及删除时间。 data 记录捕获给定实例每小时可使用的核心数。

resource 条目的示例:

    {
        "customObjectName": "<resource type>-2020-29-5-23-13-17-164711",
        "uid": "4bc3dc6b-9148-4c7a-b7dc-01afc1ef5373",
        "instanceName": "sqlInstance001",
        "instanceNamespace": "arc",
        "instanceType": "<resource>",
        "location": "eastus",
        "resourceGroupName": "production-resources",
        "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
        "isDeleted": false,
        "externalEndpoint": "32.191.39.83:1433",
        "vCores": "2",
        "createTimestamp": "05/29/2020 23:13:17",
        "updateTimestamp": "05/29/2020 23:13:17"
    }

data 条目的示例:

        {
          "requestType": "usageUpload",
          "clusterId": "4b0917dd-e003-480e-ae74-1a8bb5e36b5d",
          "name": "DataControllerTestName",
          "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
          "resourceGroup": "production-resources",
          "location": "eastus",
          "uploadRequest": {
            "exportType": "usages",
            "dataTimestamp": "2020-06-17T22:32:24Z",
            "data": "[{\"name\":\"sqlInstance001\",
                       \"namespace\":\"arc\",
                       \"type\":\"<resource type>\",
                       \"eventSequence\":1, 
                       \"eventId\":\"50DF90E8-FC2C-4BBF-B245-CB20DC97FF24\",
                       \"startTime\":\"2020-06-17T19:11:47.7533333\",
                       \"endTime\":\"2020-06-17T19:59:00\",
                       \"quantity\":1,
                       \"id\":\"4BC3DC6B-9148-4C7A-B7DC-01AFC1EF5373\"}]",
           "signature":"MIIE7gYJKoZIhvcNAQ...2xXqkK"
          }
        }
  1. 使用 upload 命令上传使用情况数据。

    az arcdata dc upload --path usage.json
    

上传频率

间接模式下,需要每隔 30 天至少上传一次使用情况到 Azure。 强烈建议更频繁地上传,例如每日。 如果过去 32 天未上传使用情况信息,则服务中会出现一些降级,例如无法预配任何新资源。

延迟使用上传有两种类型的通知 - 警告阶段和降级阶段。 在警告阶段,将有一条消息,例如 Billing data for the Azure Arc data controller has not been uploaded in {0} hours. Please upload billing data as soon as possible.

在降级阶段,消息将如 Billing data for the Azure Arc data controller has not been uploaded in {0} hours. Some functionality will not be available until the billing data is uploaded. 所示 。

注意

如果超过 48 小时未上传使用情况,则会看到警告消息。

Kubernetes 群集中数据控制器的“Microsoft Azure 门户概述”页和数据控制器的自定义资源状态都指示上次上传日期和状态消息。

自动上传(可选)

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

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

az arcdata dc export --type usage --path usage.json --force --k8s-namespace <namespace> --use-k8s
az arcdata dc upload --path usage.json

使脚本文件可执行。

chmod +x myuploadscript.sh

每天运行脚本以获取使用情况:

watch -n 1200 ./myuploadscript.sh

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

将指标和日志上传到 Azure Monitor

将日志上传到 Azure Monitor

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

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