使用状況データを間接モードで Azure にアップロードする
定期的に、使用方法に関する情報をエクスポートできます。 この情報のエクスポートとアップロードでは、データ コントローラー、SQL マネージド インスタンス、および Azure の PostgreSQL リソースが作成および更新されます。
Note
直接接続モードでデプロイされている Azure Arc データ コントローラーでは、使用状況情報が自動的にアップロードされます。 この記事の手順が対象としているのは、Azure Arc データ コントローラーが間接接続モードでデプロイされている場合の使用状況情報のアップロードのみです。
使用状況データをアップロードする前に、Azure Arc データ コントローラーを作成してから少なくとも 24 時間お待ちください。
サービス プリンシパルを作成してロールを割り当てる
続行する前に、必要なサービス プリンシパルを作成して、適切なロールに割り当てていることを確認してください。 詳細については、次の情報を参照してください。
この記事の例では、山かっこ < ... >
を使用して、スクリプトを実行する前に置き換える必要がある値を識別します。 山かっこと山かっこ内の値を置き換えます。
使用状況データをアップロードする
インベントリやリソースの使用状況などの使用状況情報は、次の 2 段階の方法で Azure にアップロードできます。
- 次のように、
az arcdata dc export
コマンドを使用して使用状況データをエクスポートします。
Note
コマンド 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
このコマンドにより、データ コントローラー上に作成されたすべての Azure Arc 対応データ リソース (SQL マネージド インスタンスや PostgreSQL インスタンスなど) を含む usage.json
ファイルが作成されます。
現時点では、ファイルは暗号化されていないので、内容を確認することができます。 テキスト エディターで自由に開き、どのような内容か確認してください。
resources
と data
の 2 つのデータのセットがあることがわかります。 resources
は、データ コントローラー、PostgreSQL、および SQL Managed Instance です。 データ内の resources
レコードには、作成日時、更新日時、削除日時など、リソースの履歴での関連イベントがキャプチャされます。 data
レコードには、1 時間ごとに特定のインスタンスで使用できたコアの数がキャプチャされます。
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 日に 1 回 Azure にアップロードする必要があります。 毎日など、より頻繁にアップロードすることを強くお勧めします。 使用状況情報が過去 32 日間アップロードされていない場合は、新しいリソースをプロビジョニングできないなど、サービスの一部が低下します。
使用状況情報のアップロード遅延には、警告フェーズと低下フェーズの 2 種類の通知があります。 警告フェーズでは、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.
のようになります。
Note
使用状況がアップロードされていない期間が 48 時間を超えると、警告メッセージが表示されます。
データ コントローラーの [Azure portal の概要] ページと、kubernetes クラスターのデータ コントローラーのカスタム リソースの状態は、どちらも最後のアップロード日と状態メッセージを示します。
アップロードの自動化 (省略可能)
メトリックとログをスケジュールに基づいてアップロードする場合は、スクリプトを作成して、タイマーで数分ごとに実行できます。 次に、Linux シェル スクリプトを使用してアップロードを自動化する例を示します。
お好きなテキスト エディターまたはコード エディターで、ファイルに次のスクリプトを追加し、.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 にアップロードする