問題の説明
メトリクス監視ページを通じて、現在のリソース (Redis など) の実行ステータスとさまざまなインジケーターを知ることができます。インジケーターをローカルにダウンロードする必要がある場合、または JSON データを生成してサードパーティの監視プラットフォームにインポートする必要がある場合はどうすればよいでしょうか? Azure は、Python コードまたは Powershell スクリプトを通じてさまざまなインジケーター データをエクスポートできますか?
#解決策
はい! PowerShell コマンドでは、Get-AzMetric または az Monitor metrics list コマンドを使用して、リソースのメトリック値を取得できます。
Get-AzMetric:リソースのメトリック値を取得します。 https://docs.microsoft.com/en-us/powershell /module /az.monitor/get-azmetric?view=azps-5.4.0&viewFallbackFrom=azps-5.2.0
az Monitor メトリック リスト: メトリック値をリストするリソースについては、https://docs.microsoft.com/en-us/cli/azure/monitor/metrics?view=azure-cli-latest#az_monitor_metrics_list
#そして、Python コードを使用すると、Metrics の REST API を使用して実装できます。
##Metrics – List- : リソースのメトリック値をリストします。 https://docs .microsoft.com/en-us/rest/api/monitor/metrics/list
AAD にアプリケーションを登録して、Redis メトリクスにアクセスするためのアクセス トークンを取得します。 Python コード: (プログラムは Microsoft ID プラットフォームに登録されます: https://docs.azure.cn/zh-cn/active-directory/develop/quickstart-register-app)
- #注: Powershell を使用するには、まず Azure にログインする必要があります。コマンド
Connect-AzAccount -Environment AzureChinaCloud
または
az cloud set –name AzureChinaCloud and az login を使用します。 Python コードを使用するには、まず Redis メトリクスにアクセスするためのトークンを取得する必要があります。トークンを取得するには、Azure AD にアプリケーションを登録し、Metris データを読み取るための Redis アクセス制御の読み取りアクセス許可をアプリケーションに付与します。
#実行手順
Python
ステップ 1: AAD アプリケーションの登録、アプリケーション ID、クライアント アクセス パスワードのコピー
# # Azure プラットフォームにログインし、AAD ページに入り、
アプリ登録
をクリックします: https://portal.azure.cn/?l=en.en-us#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps
「新規登録」ボタンをクリックし、アプリケーション名を入力し、他の値はデフォルトのままにして、「保存」をクリックします
- # #作成が成功したら、アプリケーション ページに入り、「
証明書とシークレット」ページにインポートし、使用する必要があるクライアント シークレットを作成してコピーします。3 番目のステップでは、使用する必要があります。
- アプリケーション ページの ## をコピーします。#テナント ID、アプリケーション ID
はコードの 3 番目のステップで使用する必要があります
- 特定の操作プロセスについては、次のアニメーションを参照してください。
ステップ 2: メトリクスを取得する権限を付与する
#In Redis のアクセス制御 (IAM) ページで、手順 1 でアプリケーション名を検索し、Monitoring Reader に権限を付与します
注: 権限が付与されていない場合は、同様のエラーが表示されます
##ステータス コード: 05d78c7f2f085859d707a45ab9c70242応答内容: b'{"error":{" code":"AuthorizationFailed","message":"オブジェクト ID 'xxxxxxxx -xxxx-xxxx-xxxx-36166b5f7276' のクライアント 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' には、アクション 'microsoft.insights' を実行する権限がありません。 /metrics/read' overscope '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/xxxx-rg/providers/Microsoft .Cache/Redis/xxxx/providers/microsoft.insights' またはスコープが無効です。最近アクセスが許可されました。資格情報を更新してください。"}}'
ステップ 3: Python コードを作成し、リクエストを使用して psot を送信し、リクエストを取得する
import requestsimport json##Part 1: Get Access Tokenaadurl="https://login.chinacloudapi.cn/<your aad tenant id>/oauth2/token"aadbody={'grant_type':'client_credentials','client_id':'your aad client id','client_secret':'your aad client secret','resource':'https://management.chinacloudapi.cn'}
rtoken= requests.post(aadurl, data=aadbody)##print(rtoken)objtoken = json.loads(rtoken.text)##print(obj['access_token'])##Part 2: Get the Metrics Value by Tokenheaders = {'content-type': "application/json", 'Authorization': 'Bearer '+objtoken['access_token']
}
url= "https://management.chinacloudapi.cn/subscriptions/<subscriptions>/resourceGroups/<resourceGroups>/providers/Microsoft.Cache/Redis/<your redis name>/providers/microsoft.insights/metrics?api-version=2018-01-01&metricnames=expiredkeys,usedmemory"r = requests.get(url, headers=headers)print('Status Code: ' + str(r))print('Response Content: ' + str(r.content))
運用効果は次のとおりです。 :
Powershell
- azure にログイン
- az の準備Monitor metrics list コマンド
az cloud set --name AzureChinaCloud
az login
az monitor metrics list --resource /subscriptions/<your subscriptions>/resourceGroups/<resourceGroups>/providers/Microsoft.Cache/Redis/<your redis name> --metric usedmemory --aggregation Maximum --interval PT1M
実行結果は次のとおりです:
以上がPythonコードを使用してAzure Redisの監視指標値を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。