Metrics 모니터링 페이지를 통해 현재 리소스(예: Redis)의 실행 상태와 다양한 지표를 알 수 있습니다. 지표를 로컬로 다운로드하거나 JSON 데이터를 생성하여 타사 모니터링 플랫폼으로 가져와야 하는 경우 어떻게 해야 합니까? Azure는 Python 코드 또는 Powershell 스크립트를 통해 다양한 지표 데이터를 내보낼 수 있나요?
예! 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 액세스 제어의 리더 권한을 애플리케이션에 부여할 수 있습니다.
Azure 플랫폼에 로그인하고 AAD 페이지를 입력한 후 앱 등록을 클릭합니다. https: //portal.azure .cn/?l=en.en-us#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps
"새 등록" 버튼을 클릭하고 애플리케이션 이름을 입력하고 다른 값은 기본값으로 둡니다. , 저장
을 클릭하세요. 성공적으로 생성된 후 애플리케이션 페이지에 들어가서 "인증서 및 비밀" 페이지로 가져온 다음 사용해야 하는 클라이언트 비밀번호를 생성하고 세 번째 단계에서
를 사용해야 합니다.신청 페이지에서 Tenant ID, Applicaiton ID를 복사하세요. 3단계 코드에서
를 사용하는 구체적인 작업 과정은 다음 애니메이션에 나와 있습니다.
Redis의 액세스 제어(IAM) 페이지에서 1단계 이름 검색을 통해 적용하고 모니터링 리더 권한 부여
참고: 권한이 부여되지 않으면 유사한 오류가 보고됩니다. 코드:
상태 코드: <응답 [403]> |
코드에는 두 가지 주요 부분이 있습니다. 하나는 액세스 토큰을 가져오는 것이고, 다른 하나는 메트릭 데이터를 가져오는 것입니다
강조 표시된 내용은 해당 리소스 정보와 첫 번째 단계에서 준비한 정보로 대체되어야 합니다
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={'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))
실행 효과는 다음과 같습니다.
로그인 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의 모니터링 표시기 값을 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!