Blog:博客园 个人

由于近期压测,需要频繁登录阿里云查看RDS监控,每次登录查看监控步骤较为繁琐,故将监控接入到zabbix。

概述

由于阿里云已做了RDS的监控,我们只需要通过阿里云SDK把这些监控数据传输到zabbix即可。

前提

子账号

使用阿里云SDK需要一个AK,申请方式如下:

  • 得到AccessKey IDAccessKey Secret;

  • 添加AliyunCloudMonitorReadOnlyAccess权限;

环境

  • Python版本:Python3
  • SDK:aliyun-python-sdk-core、aliyun-python-sdk-cms

调用Api示例

Api:DescribeMetricTop

  • Namespaceacs_rds_dashboard
  • Period默认为60秒,也可以为60的整数倍。

当前云产品的MetricNameDimensions的取值如下表所示。

监控项 单位 MetricName Dimensions Statistics
连接数使用率 % ConnectionUsage userId、instanceId Maximum、Minimum、Average
CPU使用率 % CpuUsage userId、instanceId Maximum、Minimum、Average
只读实例延迟 Second DataDelay userId、instanceId Maximum、Minimum、Average
磁盘使用率 % DiskUsage userId、instanceId Maximum、Minimum、Average
IOPS使用率 % IOPSUsage userId、instanceId Maximum、Minimum、Average
内存使用率 % MemoryUsage userId、instanceId Maximum、Minimum、Average
MySQL_ActiveSessions Count MySQL_ActiveSessions userId、instanceId Maximum、Minimum、Average
MySQL每秒Delete量 CountSecond MySQL_ComDelete userId、instanceId Maximum、Minimum、Average
MySQL每秒Insert量 CountSecond MySQL_ComInsert userId、instanceId Maximum、Minimum、Average
MySQL每秒InsertSelect量 CountSecond MySQL_ComInsertSelect userId、instanceId Maximum、Minimum、Average
MySQL每秒Replace量 CountSecond MySQL_ComReplace userId、instanceId Maximum、Minimum、Average
MySQL每秒ReplaceSelect量 CountSecond MySQL_ComReplaceSelect userId、instanceId Maximum、Minimum、Average
MySQL每秒Select量 CountSecond MySQL_ComSelect userId、instanceId Maximum、Minimum、Average
MySQL每秒Update量 CountSecond MySQL_ComUpdate userId、instanceId Maximum、Minimum、Average
MySQL每秒逻辑读次数 CountSecond MySQL_IbufRequestR userId、instanceId Maximum、Minimum、Average
MySQL每秒逻辑写次数 CountSecond MySQL_IbufRequestW userId、instanceId Maximum、Minimum、Average
MySQL每秒查询量 CountSecond MySQL_QPS userId、instanceId Maximum、Minimum、Average
MySQL每秒事务数 CountSecond MySQL_TPS userId、instanceId Maximum、Minimum、Average
SQLServer网络流入带宽 bit/s SQLServer_NetworkInNew userId、instanceId Maximum、Minimum、Average
SQLServer网络流出带宽 bit/s SQLServer_NetworkOutNew userId、instanceId Maximum、Minimum、Average
MySQL网络流入带宽 bit/s MySQL_NetworkInNew userId、instanceId Average、Minimum、Maximum
MySQL网络流出带宽 bit/s MySQL_NetworkOutNew userId、instanceId Average、Minimum、Maximum
MySQL_BP脏页百分率 % MySQL_IbufDirtyRatio userId、instanceId Average、Maximum、Minimum
MySQL_BP利用率 % MySQL_IbufUseRatio userId、instanceId Average、Maximum、Minimum
MySQL_InnoDB每秒读取数据量 KByte MySQL_InnoDBDataRead userId、instanceId Average、Maximum、Minimum
MySQL_InnoDB每秒写入数据量 KByte MySQL_InnoDBDataWritten userId、instanceId Average、Maximum、Minimum
MySQL每秒创建临时表数量 CountSecond MySQL_TempDiskTableCreates userId、instanceId Average、Maximum、Minimum
MySQL_InnoDB每秒更新行数 CountSecond MySQL_InnoDBRowUpdate userId、instanceId Average、Maximum、Minimum
MySQL_InnoDB每秒插入行数 CountSecond MySQL_InnoDBRowInsert userId、instanceId Average、Maximum、Minimum
MySQL_InnoDB每秒删除行数 CountSecond MySQL_InnoDBRowDelete userId、instanceId Average、Maximum、Minimum
MySQL_InnoDB每秒读取行数 CountSecond MySQL_InnoDBRowRead userId、instanceId Average、Maximum、Minimum
MySQL_InnoDB每秒日志fsync量 CountSecond MySQL_InnoDBLogFsync userId、instanceId Average、Maximum、Minimum
MySQL_InnoDB每秒日志物理写次数 CountSecond MySQL_InnoDBLogWrites userId、instanceId Average、Maximum、Minimum
MySQL_InnoDB每秒日志写请求次数 CountSecond MySQL_InnoDBLogWriteRequests userId、instanceId Average、Maximum、Minimum
MySQL每秒慢查询量 CountSecond MySQL_SlowQueries userId、instanceId Average、Maximum、Minimum
MySQL_BP读命中率 % MySQL_IbufReadHit userId、instanceId Average、Maximum、Minimum
MySQL每秒物理读次数 CountSecond MySQL_ibufPoolReads userId、instanceId Average、Maximum、Minimum
MySQL_数据磁盘使用量 MB MySQL_DataDiskSize userId、instanceId Average、Maximum、Minimum
MySQL_实例磁盘使用量 MB MySQL_InstanceDiskSize userId、instanceId Average、Maximum、Minimum
MySQL_日志磁盘使用量 MB MySQL_LogDiskSize userId、instanceId Average、Maximum、Minimum
MySQL_其他磁盘使用量 MB MySQL_OtherDiskSize userId、instanceId Average、Maximum、Minimum
MySQL_临时磁盘使用量 MB MySQL_TmpDiskSize userId、instanceId Average、Maximum、Minimum
MySQL_ProxyCpu使用率 % MySQL_ProxyCpuUsage userId、instanceId Average、Maximum、Minimum
只读实例IO线程状态 Value MySQL_SlaveIORunning userId、instanceId Average、Maximum、Minimum
只读实例SQL线程状态 Value MySQL_SlaveSQLRunning userId、instanceId Average、Maximum、Minimum
MySQL_线程连接数 Count MySQL_ThreadsConnected userId、instanceId Average、Maximum、Minimum
MySQL_活跃线程数 Count MySQL_ThreadsRunning userId、instanceId Average、Maximum、Minimum

脚本示例:

#!/usr/bin/env python3
#coding=utf-8 from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcore.auth.credentials import AccessKeyCredential
from aliyunsdkcore.auth.credentials import StsTokenCredential
from aliyunsdkcms.request.v20190101.DescribeMetricTopRequest import DescribeMetricTopRequest credentials = AccessKeyCredential('<your-access-key-id>', '<your-access-key-secret>')
# use STS Token
# credentials = StsTokenCredential('<your-access-key-id>', '<your-access-key-secret>', '<your-sts-token>')
client = AcsClient(region_id='cn-hangzhou', credential=credentials) request = DescribeMetricTopRequest()
request.set_accept_format('json') request.set_Namespace("acs_rds_dashboard")
request.set_MetricName("CpuUsage")
request.set_Orderby("Maximum")
request.set_Dimensions("[{\"instanceId\":\"rm-b*****qc\"}]") response = client.do_action_with_exception(request)
# python2: print(response)
print(str(response, encoding='utf-8'))

输出结果如下:

{
"RequestId": "D0237455-0978-532A-AG95-C1DG8CD83346",
"Period": "60",
"Datapoints": "[{\"order\":1,\"timestamp\":1635413400000,\"userId\":\"1862599732974435\",\"instanceId\":\"rm-b*****c\",\"Maximum\":14.95,\"Minimum\":14.95,\"Average\":14.95,\"_count\":1.0}]",
"Code": "200"
}

配置模板

通过以上示例,很容易通过脚本得到相关监控数据。

脚本完成后,再导入模板,监控项如下:

查看监控数据:

监控图如下:

Zabbix 5.0:监控阿里云RDS的更多相关文章

  1. Zabbix 监控阿里云RDS

    简介 Zabbix 监控阿里云RDS数据库.主要通过阿里云提供的API来进行监控. 需要在阿里云获取“用户AccessKey”指定ID,进行RDS监控. 环境 服务:Zabbix 3.0.28.zab ...

  2. Zabbix 5.0:通过LLD方式自动化监控阿里云RDS

    Blog:博客园 个人 之前做了RDS监控,由于 RDS 实例梳理增多,手动添加的方式已经不够效率,故改为LLD(Low-level discovery)方式做监控. 什么是LLD LLD(Low-l ...

  3. zabbix自定义监控阿里云RDS服务

    zabbix自定义监控rds zabbix通过阿里云api 自动发现.监控阿里云RDS-Mysql数据库 注意事项  脚本会收集RDS别名,  不要默认别名 不要使用中文别名(zabbix不识别)  ...

  4. 为更强大而生的开源关系型数据库来了!阿里云RDS for MySQL 8.0 正式上线!

    2019年5月29日15时,阿里云RDS for MySQL 8.0正式上线,使得阿里云成为紧跟社区步伐,发布MySQL最新版本的云厂商.RDS for MySQL 8.0 产品是阿里云推出的 MyS ...

  5. 阿里云RDS for SQL Server使用的一些最佳实践

    了解RDS的概念 这也是第一条,也是最重要的一条,在使用某项产品和服务之前,首先要了解该产品或服务的功能与限制,就像你买一个冰箱或洗衣机,通常也只有在阅读完说明书之后才能利用起来它们的所以功能,以及使 ...

  6. 【故障公告】升级阿里云 RDS SQL Server 实例故障经过

    昨天晚上,我们使用的阿里云 RDS SQL Server 2008 R2 实例突然出现持续 CPU 100% 问题,后来我们通过重启实例恢复了正常(详见故障公告).但是在恢复正常后发现了新问题,这台 ...

  7. 使用阿里云RDS for SQL Server性能洞察优化数据库负载-初识性能洞察

    简介 数据库性能调优通常需要较高数据库水平,并伴随较多的前期准备工作,比如收集各种性能基线.不同种类的性能指标.慢SQL日志等,这通常费时费力且效果一般,当面对多个数据库时总体拥有成本会大幅增加.今天 ...

  8. 抱歉!15:44-16:39阿里云RDS故障造成全站不能正常访问

    非常非常抱歉!2016年3月7日15:44-16:39,由于阿里云RDS(云数据库)故障,造成全站不能正常访问,给您带来了很大很大的麻烦,恳请您的谅解! 故障是在15:44开始出现的,应用日志中出现大 ...

  9. 云计算之路-阿里云上:数据库连接数过万的真相,从阿里云RDS到微软.NET Core

    在昨天的博文中,我们坚持认为数据库连接数过万是阿里云RDS的问题,但后来阿里云提供了当时的数据库连接情况,让我们动摇了自己的想法. 帐户 连接数 A 4077 B 3995 C 741 D 698 E ...

随机推荐

  1. 除PerfDog之外,还有什么性能测试工具。

    除PerfDog之外,还有什么性能测试工具. 高通的Snapdragon Profiler 下载地址:https://developer.qualcomm.com/software/snapdrago ...

  2. JAVA安全基础之反射

    JAVA安全基础之反射 在JAVA安全中,反射是一个经常使用的技术,所以熟悉使用反射是非常必要的.下面就简单的讲下JAVA的反射的用法 什么是反射 每个类都有对应的Class类对象,该Class类对象 ...

  3. 第25篇-虚拟机对象操作指令之putstatic

    之前已经介绍了getstatic与getfield指令的汇编代码执行逻辑,这一篇介绍putstatic指令的执行逻辑,putfield将不再介绍,大家可以自己去研究,相信大家有这个实力. putsta ...

  4. 洛谷P1803——凌乱的yyy(贪心)

    题目描述 现在各大oj上有n个比赛,每个比赛的开始.结束的时间点是知道的. yyy认为,参加越多的比赛,noip就能考的越好(假的) 所以,他想知道他最多能参加几个比赛. 由于yyy是蒟蒻,如果要参加 ...

  5. 第一次用AngularJS

    1.创建指令的4种方式(ECMA) var appModule = angular.module('app', []); appModule.directive('hello', function() ...

  6. C++ windows 函数讲解(一)获得屏幕分辨率

    先上代码: #include<bits/stdc++.h> #include<windows.h> using namespace std; int main() { int ...

  7. Cookie和Session的介绍与认识

    Cookie: cookie是一种客户端的状态管理技术. 当浏览器向服务器发送请求的时候,服务器会将少量的数据以set-cookie消息头的方式发送给浏览器,当浏览器再次访问服务器时,会将这些数据以c ...

  8. 有备无患「GitHub 热点速览 v.21.38」

    作者:HelloGitHub-小鱼干 数据库最重要的一个功能是容灾备份,备份不只是对数据库重要,对日常工作生活的我们一样重要,比如花了一个工作日写的代码没有备份(虽然可能只有 1 行-)总归是一个让人 ...

  9. yapi 事件创建、修改等接口事件监听

    使用的yapi作为接口文档平台.出于业务需求需要对接口创建.修改.删除等事件进行监听. yapi已经实现并预留了这个口子,但是没有找到实现的文档.这里进行简单描述下使用的方式. 一.yapi创建.修改 ...

  10. openTSDB-采集器批量部署-tcollector

        前提: 所需安装采集器服务器与部署服务器之间都已经配置无密码登录 1.安装服务器安装expect包 安装服务器与需要安装Tcollector服务器之间未配置无密登录需要此步. yum inst ...