你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
以间接模式将使用情况数据上传到 Azure
用户可以定期导出使用情况信息。 此信息的导出和上传会在 Azure 中创建并更新数据控制器、SQL 托管实例和 PostgreSQL 资源。
注意
以直接连接模式部署的 Azure Arc 数据控制器的使用情况信息会自动上传。 本文中的说明仅适用于上传以间接连接模式部署的 Azure Arc 数据控制器的使用情况信息。
创建 Azure Arc 数据控制器后至少等待 24 小时,才能上传使用情况数据。
创建服务主体并分配角色
在继续操作之前,请确保已创建所需的服务主体,并已将其分配给适当的角色。 有关详细信息,请参阅:
本文中的示例使用尖括号 < ... >
来标识在运行脚本之前需要替换的值。 替换括号和括号中的值。
上传使用数据
可采用以下两步骤方式将使用情况信息(如库存和资源使用情况)上传到 Azure:
- 使用
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 实例等。
目前,文件未加密以便查看内容。 可以随意在文本编辑器中打开,并查看内容的呈现情况。
你会注意到有两个数据集:resources
和 data
。 resources
是数据控制器、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"
}
}
使用
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 等业务流程协调程序。