Python获取阿里云产品云监控数据指标

1.阿里云服务器

  • 先创建阿里云账号;

  • 购买一台低配置的阿里云ECS服务器;

  • 还可以查看ECS云监控的监控指标数据;

Python获取阿里云产品云监控数据指标_第1张图片

2.通过阿里云官方的Python SDK API获取阿里云监控数据指标

  • 阿里云为了保证每一个主账户的安全性,设置了一个RAM的访问控制,阿里云官方鼓励用户 使用RAM授权子账户,且为子账户创建 AccessKey ID 和 AccessKeySecret,在阿里云提供 的SDK中,必须使用AccessKey ID 和 AccessKeySecret才能通过API访问到云产品;

  • 首先登录RAM,创建子账户,且为子账户生成 AccessKey ID 和 AccessKeySecret , https://ram.console.aliyun.com/overview ;

Python获取阿里云产品云监控数据指标_第2张图片

  • 创建一个新的子账户

Python获取阿里云产品云监控数据指标_第3张图片

  • 给这个子账户创建一个AccessKey ID 和 AccessKeySecret

Python获取阿里云产品云监控数据指标_第4张图片

  • 然后给这个新的子账户添加权限,可以访问阿里云监控;

Python获取阿里云产品云监控数据指标_第5张图片

3.安装阿里云Python SDK, 且获取监控数据

  • 安装Python SDK的链接地址: https://help.aliyun.com/document_detail/28622.html?spm=a2c4g.11186623.6.709.12e748d3cL2cM5

确认已经安装了python,然后使用pip命令行安装两个依赖


pip install aliyun-python-sdk-core
pip install aliyun-python-sdk-cms

  • 获取CPU的使用率

from aliyunsdkcore import client
from aliyunsdkcms.request.v20180308 import QueryMetricListRequest
import time
from datetime import datetime, timedelta
import json
from pprint import pprint
# 返回最近三分钟的时间戳, 毫秒单位,必须是整数类型
def get_start_timestamp():
    start_datetime = datetime.now() - timedelta(minutes=3)
    start_timestamp = int(start_datetime.timestamp()*1000)
    return start_timestamp
# 初始化客户端,填写ak, secret, region_id
clt = client.AcsClient('LTAIxdvbuz2MD74Z','I2b7O1UJmkjfgHVC4i7Atb8gGXwAbU','cn-shenzhen')
# 初始化请求对象
request = QueryMetricListRequest.QueryMetricListRequest()
# 设置响应类型
request.set_accept_format('json')
# 设置项目
request.set_Project('acs_ecs_dashboard')
# 设置获取的指标的key, 这里是CPU的使用率
request.set_Metric('CPUUtilization')
# 获取3分钟以前的时间戳
start_time = get_start_timestamp()
# 设置起始时间
request.set_StartTime(start_time)
# 设置结束时间
request.set_EndTime(int(datetime.now().timestamp() * 1000))
# 设置实例ID
request.set_Dimensions("{'instanceId':'i-wz98bynewgl7gu3jqqb3'}")
# 添加异常打印
result = clt.do_action_with_exception(request)
# 反序列化
result = json.loads(result)
# 打印结果
pprint(result)

  • 获取系统磁盘读IOPS

from aliyunsdkcore import client
from aliyunsdkcms.request.v20180308 import QueryMetricListRequest
import time
from datetime import datetime, timedelta
import json
from pprint import pprint
def get_start_timestamp():
    start_datetime = datetime.now() - timedelta(minutes=3)
    start_timestamp = int(start_datetime.timestamp()*1000)
    return start_timestamp
clt = client.AcsClient('LTAIxdvbuz2MD74Z','I2b7O1UJmkjfgHVC4i7Atb8gGXwAbU','cn-shenzhen')
request = QueryMetricListRequest.QueryMetricListRequest()
request.set_accept_format('json')
request.set_Project('acs_ecs_dashboard')
# 设置获取的指标的key, 这里是CPU的使用率
request.set_Metric('DiskReadIOPS')
start_time = get_start_timestamp()
request.set_StartTime(start_time)
request.set_EndTime(int(datetime.now().timestamp() * 1000))
request.set_Dimensions("{'instanceId':'i-wz98bynewgl7gu3jqqb3'}")
result = clt.do_action_with_exception(request)
result = json.loads(result)
pprint(result)

4.获取第三方的监控指标

  • (1)首先需要从 aliyunsdkcore 模块中导入 client ,从 aliyunsdkcms.request.v20180308 中导 入 QueryMetricListRequest类 ,再根据需求导入其他模块;

  • (2)然后使用 client.AcsClient() 方法初始化客户端;

  • (3)使用 QueryMetricListRequest 类中的 QueryMetricListRequest() 方法初始化请求对象;

  • (4)使用 set_accept_format() 设置响应类型, set_Project() 方法设置项目, set_Metric() 方法 设置获取的指标的key, set_StartTime() 设置起始时间, set_EndTime() 方法设置终止时间, set_Dimensions() 方法设置实例的ID, do_action_with_exception() 方法添加异常打印等;

5.预设监控项参考

  • 云服务器ECS的基础监控项有例如CPUUtilization(CPU百分比)、InternetInRate(公网 流入带宽)、IntranetInRate(私网流入带宽)、DiskReadBPS(系统磁盘总读BPS)等等 ,具体可以参考链接 https://help.aliyun.com/document_detail/28619.html?

参考: https://www.9xkd.com/user/plan-view.html?id=3232777786

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69908432/viewspace-2646148/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/69908432/viewspace-2646148/

你可能感兴趣的:(Python获取阿里云产品云监控数据指标)