Python 코드를 사용하여 Azure Redis의 모니터링 표시기 값을 얻는 방법

WBOY
풀어 주다: 2023-05-28 11:16:28
앞으로
952명이 탐색했습니다.

문제 설명

Metrics 모니터링 페이지를 통해 현재 리소스(예: Redis)의 실행 상태와 다양한 지표를 알 수 있습니다. 지표를 로컬로 다운로드하거나 JSON 데이터를 생성하여 타사 모니터링 플랫폼으로 가져와야 하는 경우 어떻게 해야 합니까? Azure는 Python 코드 또는 Powershell 스크립트를 통해 다양한 지표 데이터를 내보낼 수 있나요?

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

Solution

예!​ ​ PowerShell 명령은 Get-AzMetric 또는 az monitormetrics 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 모니터 메트릭 목록: 리소스에 대한 메트릭 값을 나열합니다. 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

  • Python 코드에서 Redis 메트릭에 액세스하기 위한 액세스 토큰을 얻으려면 AAD에 애플리케이션을 등록하세요. 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 및 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

  • "새 등록" 버튼을 클릭하고 애플리케이션 이름을 입력하고 다른 값은 기본값으로 둡니다. , 저장

  • 을 클릭하세요. 성공적으로 생성된 후 애플리케이션 페이지에 들어가서 "인증서 및 비밀" 페이지로 가져온 다음 사용해야 하는 클라이언트 비밀번호를 생성하고 세 번째 단계에서

    를 사용해야 합니다.
  • 신청 페이지에서 Tenant ID, Applicaiton ID를 복사하세요. 3단계 코드에서

를 사용하는 구체적인 작업 과정은 다음 애니메이션에 나와 있습니다.

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

단계 2: 지표 획득 권한 부여

Redis의 액세스 제어(IAM) 페이지에서 1단계 이름 검색을 통해 적용하고 모니터링 리더 권한 부여

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

참고: 권한이 부여되지 않으면 유사한 오류가 보고됩니다. 코드:

상태 코드: <응답 [403]>
응답 내용: b '{"error":{"code":"AuthorizationFailed","message":"클라이언트 'xxxxxxxx -xxxxxx-xxxx-xxxx-xxxxxxxxxxxx' 개체 ID가 'xxxxxxxx-xxxx-xxxx-xxxx-36166b5f7276'인 경우 '/subscriptions/xxxxxxxxx-xxxx-xxxx' 범위에 대해 'microsoft.insights/metrics/read' 작업을 수행할 수 있는 권한이 없습니다. -xxxx-xxxxxxxxxxxx/resourceGroups/xxxx-rg/providers/Microsoft.Cache/Redis/xxxx/providers/microsoft.insights ' 또는 범위가 유효하지 않은 경우 최근에 액세스 권한이 부여된 경우 자격 증명을 새로 고치세요."}}'

3단계: Python 코드 작성, 요청을 사용하여 psot 보내기, 요청 받기

  • 코드에는 두 가지 주요 부분이 있습니다. 하나는 액세스 토큰을 가져오는 것이고, 다른 하나는 메트릭 데이터를 가져오는 것입니다

  • 강조 표시된 내용은 해당 리소스 정보와 첫 번째 단계에서 준비한 정보로 대체되어야 합니다

  • Access Token을 획득하는 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 monitormetrics 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿