python从云端服务器读数据_Python获取阿里云产品云监控数据指标

本文介绍了如何通过Python使用阿里云SDK获取ECS服务器的CPU使用率和系统磁盘读IOPS等监控指标。首先创建阿里云账号并购买ECS,接着创建RAM子账户并授权访问监控数据,最后安装Python SDK并编写代码实现数据获取。
摘要由CSDN通过智能技术生成

1.阿里云服务器

先创建阿里云账号;

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

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

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

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

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

创建一个新的子账户

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

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

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

确认已经安装了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/docum...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值