將計量上傳至 Azure 監視器
您可以定期匯出監視計量,然後將其上傳至 Azure。 匯出和上傳記錄也會在 Azure 中建立和更新資料控制器、SQL 受控執行個體和 PostgreSQL 伺服器資源。
使用 Azure Arc 資料服務時,您可以選擇性地將計量上傳至 Azure 監視器,以便彙總和分析計量、引發警示、傳送通知或觸發自動化動作。
將您的資料傳送至 Azure 監視器也可讓您在異地大規模地儲存計量資料,讓資料長期儲存以進行進階分析。
如果您有多個具有 Azure Arc 資料服務的網站,您可以使用 Azure 監視器作為集中位置,收集您網站中的所有記錄和計量。
以直接模式上傳 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 監視器,請執行下列命令:
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 監視器
若要上傳已啟用 Azure Arc 的 SQL 受控執行個體和已啟用 Azure Arc 的 PostgreSQL 的計量,請執行下列 CLI 命令:
- 這會將所有計量匯出至指定檔案:
注意
使用 az arcdata dc export
命令匯出使用量/帳單資訊、計量和記錄需要暫時略過 SSL 驗證。 系統會提示您略過 SSL 驗證,或者您可以設定 AZDATA_VERIFY_SSL=no
環境變數以避免出現提示。 目前無法設定資料控制器匯出 API 的 SSL 憑證。
az arcdata dc export --type metrics --path metrics.json --k8s-namespace arc
將計量上傳至 Azure 監視器:
az arcdata dc upload --path metrics.json
注意
在建立已啟用 Azure Arc 的資料執行個體之後,等候至少 30 分鐘,以進行第一次上傳。
請確定計量會在
export
之後立即upload
,因為 Azure 監視器只接受過去 30 分鐘的計量。 深入了解。
如果您在匯出期間看到指出「無法取得計量」的任何錯誤,請執行下列命令來檢查資料收集是否設定為 true
:
az arcdata dc config show --k8s-namespace arc --use-k8s
在 [安全性] 區段下查看
"security": {
"allowDumps": true,
"allowNodeMetricsCollection": true,
"allowPodMetricsCollection": true,
},
確認 allowNodeMetricsCollection
和 allowPodMetricsCollection
屬性是否設定為 true
。
在入口網站中檢視計量
上傳計量之後,您應該可以在 Azure 入口網站看到這些計量。
注意
請注意,上傳的資料可能需要幾分鐘的時間進行處理,您才能在入口網站中檢視計量。
若要檢視計量,請瀏覽至 Azure 入口網站。 然後,在搜尋列中依名稱搜尋您的資料庫執行個體:
您可以在 [概觀] 頁面上檢視 CPU 使用率,或者如果您想要更詳細的計量,您可以從左側瀏覽面板按一下計量
選擇 SQL Server 或 Postgres 作為計量命名空間。
選取您想要視覺化的計量 (您也可以選取多個)。
將頻率變更為過去 30 分鐘。
注意
您只能上傳過去 30 分鐘的計量。 Azure 監視器會拒絕超過 30 分鐘的計量。
自動上傳 (選用)
若要依照排程上傳計量和記錄,您可建立指令碼,並根據計時器每隔幾分鐘執行一次。 以下是使用 Linux 殼層指令碼來自動上傳的範例。
在慣用的文字/程式碼編輯器中,將下列指令碼新增至檔案,並另存為指令碼可執行檔,例如 .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 監視器只會接受過去 30 分鐘的資料 (深入了解)。 上傳計量的指引是在建立匯出檔案之後立即上傳計量,以便您可以在 Azure 入口網站中檢視整個資料集。 例如,如果您在下午 2:00 匯出計量,並在下午 2:50 執行上傳命令。 由於 Azure 監視器只接受過去 30 分鐘的資料,因此您可能不會在入口網站中看到任何資料。