千家信息网

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

发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,今天小编给大家分享一下如何使用Python代码获取Azure Redis的监控指标值的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完
千家信息网最后更新 2025年02月07日如何使用Python代码获取Azure Redis的监控指标值

今天小编给大家分享一下如何使用Python代码获取Azure Redis的监控指标值的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

问题描述

通过Metrics监控页面,我们能得知当前资源(如Redis)的运行情况与各种指标。如果我们需要把指标下载到本地或者生成JSON数据导入到第三方的监控平台呢?Azure是否可以通过Python代码或者时Powershell脚本导出各种指标数据呢?

解决办法

可以! PowerShell命令可以使用Get-AzMetric 或者是 az monitor metrics list命令来获取资源的Metrics值。

  • Get-AzMetric:Gets the metric values of a resource. https://docs.microsoft.com/en-us/powershell/module/az.monitor/get-azmetric?view=azps-5.4.0&viewFallbackFrom=azps-5.2.0

  • az monitor metrics list: List the metric values for a resource. https://docs.microsoft.com/en-us/cli/azure/monitor/metrics?view=azure-cli-latest#az_monitor_metrics_list

而使用Python代码,可以使用Metrics的REST API来实现

  • Metrics - List:Lists the metric values for a resource. https://docs.microsoft.com/en-us/rest/api/monitor/metrics/list

  • 在AAD中注册应用获取在Python代码中访问Redis Metrics的Access Token: (将应用程序注册到 Microsoft 标识平台: 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 Metrics的Token。获取Token可以在Azure AD中注册一个应用,然后给该应用在Redis的访问控制中赋予reader的权限即可读取Metris数据。

执行步骤

Python

步骤一:注册AAD应用,复制应用ID,客户端访问密码

  • 登录Azure平台,进入AAD页面,点击App registrations: https://portal.azure.cn/?l=en.en-us#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps

  • 点击"New Registration" 按钮,输入应用名称,其他值保留默认,点击保存

  • 创建成功后,进入应用页面,导入到"Certificates & secrets"页面,创建需要使用的Client Secret并复制出来,第三步需要使用

  • 在应用页面复制出Tenant ID, Applicaiton ID需要在第三步代码中使用

具体操作过程见如下动图:

步骤二:赋予获取Metrics的权限

在Redis的Access control (IAM)页面中,通过步骤一的应用名搜索并赋予Monitoring Reader权限

注:如没有赋予权限,则代码中会报出类似错误:

Status Code:
Response Content: b'{"error":{"code":"AuthorizationFailed","message":"The client 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' with object id 'xxxxxxxx-xxxx-xxxx-xxxx-36166b5f7276' does not have authorization to perform action 'microsoft.insights/metrics/read' over scope '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/xxxx-rg/providers/Microsoft.Cache/Redis/xxxx/providers/microsoft.insights' or the scope is invalid. If access was recently granted, please refresh your credentials."}}'

步骤三:编写Python代码,使用requests来发送psot,get请求

  • 代码中主要有两部分内容:一是获取Access Token,二是获取Metrics Data

  • 高亮中的内容都是需要替换成相应的资源信息和第一步中准备的信息

  • 在获取Access Token的Body内容中,grant_type是固定值,为client_credentials。resource的值为中国区azure的管理终结点:https://management.chinacloudapi.cn

import requestsimport json##Part 1: Get Access Tokenaadurl="https://login.chinacloudapi.cn//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//resourceGroups//providers/Microsoft.Cache/Redis//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 AzureChinaCloudaz loginaz monitor metrics list --resource /subscriptions//resourceGroups//providers/Microsoft.Cache/Redis/ --metric usedmemory --aggregation Maximum --interval PT1M

执行效果如下:

以上就是"如何使用Python代码获取Azure Redis的监控指标值"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

应用 代码 页面 指标 内容 步骤 监控 命令 权限 知识 篇文章 平台 数据 资源 登录 指标值 信息 效果 准备 运行 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发arm 国外对于网络安全威胁的处置手段 饥荒服务器证书过期 上海网络技术服务咨询是什么 对移动网络技术岗的理解 陕西企业软件开发服务商 电信硬防服务器租用 数据库查询器怎么打开 软件开发一般是什么职业 护网2020网络安全攻防演习 工业能源管理系统软件开发价格 网络安全使命 国产数据库名录和产品信息一览 网络技术实训总结免费1000字 郴州市易镭网络技术有限公司 交换机到服务器六类网线接法 数据库开发技术方法和路线 网络安全管理创新报告 网络安全大会广州 云原生分布式数据库 网络安全普通员工收入 京东免费云服务器价格 易语言列表框读取数据库 福州金瑞荣网络技术有限公司 深圳市域浪网络技术... 华为服务器的制成厂 黑龙江网通服务器地址 cdr网络安全怎么弄背景 以后的互联网和科技成功率高吗 海南网络安全资讯实战教学
0