zabbix经过SDK和API获取阿里云RDS的监控数据

阿里云的RDS自带的监控系统获取数据不怎么直观,想要经过API获取数据经过zabbix显示,由于网上资料缺少和其余一些缘由,获取API签名很困难,但使用阿里云的SDK能够完美避开获取签名的步骤。html

阿里云SDK是什么?python

SDK是阿里云为用户提供的开发工具,支持JAVA、PHP、C#等几种不一样的语言,这里是用Python写的。在Python SDK里提供了一些模块,咱们经过调用这些模块、传入一些必要的参数能够简单的实现数据的获取。git

阿里云的sdk就是不少的库文件,这里咱们只须要两个库文件,一个核心库sdk-core和rds库sdk-rds。github

下载地址:https://github.com/aliyun/aliyun-openapi-python-sdkapi

进入sdk-rds所在的目录运行安装命令:python setup.py installbash

若出现这个,是setuptools工具没安装,下载安装就能够工具

import setuptools开发工具

ImportError: No module named setuptoolsui

# wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
# tar -xvf setuptools-0.6c11.tar.gz
# cd setuptools-0.6c11
# python setup.py build
# python setup.py install
# ls -l /usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg 

再次进入aliyun-python-sdk-rds目录,执行python setup.py install,一样进入aliyun-python-sdk-core,执行python setup.py install安装。阿里云

这时咱们已经装好了阿里云sdk库环境

在aliyun-python-sdk-rds/aliyunsdkrds/request/v20140815路径下有大量的sdk-rds  api库文件,咱们调用这里的库文件来查找其须要的参数的设置方法和发送请求。

调用阿里云的sdk分为三个步骤:

  1. 建立 AcsClient 实例并初始化;AcsClient即请求rds的实例,包括accesskeyid、accesskeysecret和regionid。
  2. 建立 API 请求并设置参数;这里的参数是除了公共参数以外所须要的全部参数,在阿里云文档上查看:https://help.aliyun.com/document_detail/26279.html?spm=5176.doc26224.6.868.xHBXXo
  3. 发起请求并打印返回。

举个例子:

我想查看rds实例的资源使用状况。查看阿里云文档得知,其请求参数有两个:Action :DescribeResourceUsage和DBInstanceId:实例名。

咱们进入aliyun-python-sdk-rds/aliyunsdkrds/request/v20140815下的DescribeResourceUsageRequest.py库查看DBInstanceId的设置方法为set_DBInstanceId。

因而咱们建立请求并设置参数set_DBInstanceId:

request = DescribeResourceUsageRequest.DescribeResourceUsageRequest()

request.set_DBInstanceId('rm-bpXXXXXXXX')

  

 

而后建立rds实例的AcsClient对象。

client = AcsClient(
AcesskeyID,
AcesskeySecret,
regionid)

最后在经过do_action_with_exception发送请求

 client.do_action_with_exception(request)

完整代码以下:

#!/usr/bin/python
#encoding=utf-8

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkrds.request.v20140815 import DescribeResourceUsageRequest

AcesskeyID = 'XXXXXXXXXXXXX'
AcesskeySecret = 'XXXXXXXXXXXXXXXXXX'
regionid = ‘XXXXXXXXXXX’
client = AcsClient(         
    AcesskeySecret,
    regionid)
request = DescribeResourceUsageRequest.DescribeResourceUsageRequest()

request.set_DBInstanceId('rm-bp1XXXXXXXXXXXXX')   
response = client.do_action_with_exception(request)

print response
~              

 感谢咱们的老司机城管哥的指导!!!

 

OVER

 

 

 

 

Mark,以防须要的时候忘记!

相关文章
相关标签/搜索