Pythonコードを使用してAzure Redisの監視指標値を取得する方法

WBOY
リリース: 2023-05-28 11:16:28
転載
953 人が閲覧しました

問題の説明

メトリクス監視ページを通じて、現在のリソース (Redis など) の実行ステータスとさまざまなインジケーターを知ることができます。インジケーターをローカルにダウンロードする必要がある場合、または JSON データを生成してサードパーティの監視プラットフォームにインポートする必要がある場合はどうすればよいでしょうか? Azure は、Python コードまたは Powershell スクリプトを通じてさまざまなインジケーター データをエクスポートできますか?

如何使用Python代码获取Azure Redis的监控指标值

#解決策

はい! 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 に権限を付与します

如何使用Python代码获取Azure Redis的监控指标值

注: 権限が付与されていない場合は、同様のエラーが表示されます

##ステータス コード: <応答 [403]>如何使用Python代码获取Azure Redis的监控指标值応答内容: 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 を送信し、リクエストを取得する

  • コードには 2 つの主要な部分があります。1 つはアクセス トークンを取得する部分で、もう 1 つはアクセス トークンを取得する部分です。メトリクス データを取得するには

  • ##強調表示されたコンテンツを、対応するリソース情報と最初のステップで準備した情報に置き換える必要があります。

  • 取得後アクセス トークン Body コンテンツでは、grant_type は固定値、つまり client_credentials です。リソースの値は、中国における Azure の管理エンドポイントです:

    https://management.chinacloudapi.cn

  • import requestsimport json##Part 1: Get Access Tokenaadurl="https://login.chinacloudapi.cn/<your aad tenant id>/oauth2/token"aadbody={&#39;grant_type&#39;:&#39;client_credentials&#39;,&#39;client_id&#39;:&#39;your aad client id&#39;,&#39;client_secret&#39;:&#39;your aad client secret&#39;,&#39;resource&#39;:&#39;https://management.chinacloudapi.cn&#39;}
    rtoken= requests.post(aadurl, data=aadbody)##print(rtoken)objtoken = json.loads(rtoken.text)##print(obj[&#39;access_token&#39;])##Part 2: Get the Metrics Value by Tokenheaders = {&#39;content-type&#39;: "application/json",           &#39;Authorization&#39;: &#39;Bearer &#39;+objtoken[&#39;access_token&#39;]
            }
    
    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(&#39;Status Code: &#39; + str(r))print(&#39;Response Content: &#39; + str(r.content))
    ログイン後にコピー

運用効果は次のとおりです。 :

如何使用Python代码获取Azure Redis的监控指标值

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的监控指标值如何使用Python代码获取Azure Redis的监控指标值

以上がPythonコードを使用してAzure Redisの監視指標値を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート