美文网首页
zabbix监控阿里云RDS-mysql数据库

zabbix监控阿里云RDS-mysql数据库

作者: 郝爱芬 | 来源:发表于2019-01-25 15:04 被阅读0次

    阿里云的RDS自带的监控系统获取数据不怎么直观,想要通过API获取数据通过zabbix显示,因为网上资料缺乏和其他一些原因,获取API签名很困难,但使用阿里云的SDK可以完美避开获取签名的步骤。

    阿里云SDK是什么?

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

    阿里云的sdk就是很多的库文件,这里我们只需要两个库文件,一个核心库sdk-core和rds库sdk-rds。

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

    注意事项

    脚本会收集RDS别名,

    不要默认别名

    不要使用中文别名(zabbix不识别)

    切记aliyun-python-sdk-core==2.3.5,新版本的sdk有bug

    环境要求

    python = 2.7

    模块安装

    /usr/bin/pip2.7install aliyun-python-sdk-core==2.3.5 aliyun-python-sdk-rds datetime

    使用方法

    从阿里云控制台获取AccessKey,并修改脚本中的IDSecret

    修改区域RegionId

    将两个脚本放置于以下目录。

    /etc/zabbix/script chmod +x /etc/zabbix/script/*

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

    [if !supportLists]1.     [endif]创建 AcsClient 实例并初始化;AcsClient即请求rds的实例,包括accesskeyid、accesskeysecret和regionid。

    [if !supportLists]2.     [endif]创建 API 请求并设置参数;这里的参数是除了公共参数之外所需要的所有参数,在阿里云文档上查看:https://help.aliyun.com/document_detail/26279.html?spm=5176.doc26224.6.868.xHBXXo

    [if !supportLists]3.     [endif]发起请求并打印返回。

    举个例子:

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

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

    修改zabbix-agentd.conf,添加以下内容

    [if !supportLists]1.  [endif]#rds

    [if !supportLists]2.  [endif]UserParameter=rds.discovery,/usr/local/python2.7/bin/python2.7/etc/zabbix/script/discovery_rds.py

    [if !supportLists]3.  [endif]UserParameter=check.rds[*],/usr/local/python2.7/bin/python2.7/etc/zabbix/script/check_rds.py $1 $2 $3

    重启zabbix-agent

    zabbix控制台导入模板,并关联主机

    出处:https://github.com/XWJR-Ops/zabbix-RDS-monitor/blob/master/README.md

    相关文章

      网友评论

          本文标题:zabbix监控阿里云RDS-mysql数据库

          本文链接:https://www.haomeiwen.com/subject/ivnmjqtx.html