Grâce à la page de surveillance des métriques, nous pouvons connaître l'état de fonctionnement et divers indicateurs des ressources actuelles (telles que Redis). Que se passe-t-il si nous devons télécharger des indicateurs localement ou générer des données JSON et les importer sur une plateforme de surveillance tierce ? Azure peut-il exporter diverses données d'indicateurs via du code Python ou un script Powershell ?
Oui ! La commande PowerShell peut utiliser la commande Get-AzMetric ou az monitor metrics list pour obtenir la valeur Metrics de la ressource. https://docs.microsoft.com/en-us/powershell/module/az.monitor/get-azmetric?view=azps-5.4.0&viewFallbackFrom=azps-5.2.0
#🎜🎜 #Répertorier les valeurs de métriques pour une ressource https://docs.microsoft.com/en-us/cli/azure/monitor/metrics? view=azure-cli-latest#az_monitor_metrics_list#🎜🎜 #
Metrics – List
Enregistrez l'application dans AAD pour obtenir le jeton d'accès pour accéder à Redis Metrics en code Python : (Enregistrez l'application à l'identité Microsoft plateforme : https://docs.azure.cn/zh-cn/active-directory/develop/quickstart-register-app)
Remarque : Vous devez d'abord vous connecter à Azure pour utiliser Powershell. Utilisez la commande Connect-AzAccount -Environment AzureChinaCloud ou
az cloud set –name AzureChinaCloud et az login.Pour utiliser le code Python, vous devez d'abord obtenir le jeton pour accéder aux métriques Redis. Pour obtenir le jeton, vous pouvez enregistrer une application dans Azure AD, puis accorder à l'application l'autorisation de lecteur dans le contrôle d'accès Redis pour lire les données Metris.
PythonÉtape 1 : Enregistrez l'application AAD, copiez l'ID de l'application, le mot de passe d'accès client # 🎜🎜#
Connectez-vous à la plateforme Azure, entrez dans la page AAD, cliquez sur Inscriptions d'applications : https://portal.azure.cn/?l=en. fr-us #blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps
Après une création réussie, entrez dans la page de candidature, importez dans le "Certificats & secrets" page, créez le secret client que vous devez utiliser et copiez-le, la troisième étape doit utiliser
pour copier Tenant ID, Applicaiton ID# 🎜🎜# sur la page de candidature et doit utiliser #🎜 dans le code de la troisième étape 🎜#
Dans la page Contrôle d'accès (IAM) de Redis, recherchez et accordez l'autorisation Monitoring Reader via le nom de l'application à l'étape 1 #🎜🎜 #
Code d'état :
Contenu de la réponse : b'{"erreur":{" code": "AuthorizationFailed", "message": "Le client 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' avec l'ID d'objet 'xxxxxxxxx-xxxx-xxxx-xxxx-36166b5f7276' n'a pas l'autorisation d'effectuer l'action 'microsoft.insights /metrics/read' sur la portée '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/xxxx -rg/providers/Microsoft.Cache/Redis/xxxx/providers/microsoft.insights' ou si la portée n'est pas valide. l'accès a été récemment accordé, veuillez actualiser vos informations d'identification. "}}'
#🎜 🎜#Il y a deux parties principales dans le code : l'une consiste à obtenir l'accès Token, et l'autre est Il s'agit d'obtenir des données métriques
Le contenu mis en surbrillance doit être remplacé par les informations sur la ressource correspondantes et les informations préparées dans la première étape#🎜 🎜#
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))
Powershell
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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!