摘要

需求

用阿里云云监控服务:
阿里云云监控没有grafana服务端,生成不了PDF,再加上Prometheus不能生成exl表格数据,阿里云云监控企业版太贵,一个报表0.14元。我们可以自己调取阿里云的api接口,获取ECS主机cpu负载、内存使用率等信息,生成报表定时发送指定邮箱。

有人会说了,为啥不自己搭建一个Prometheus服务端,然后把所有主机全部添加到自己的服务器上。这个想法好,但是如果“二次开发”阿里云 云监控平台,我们公司就不用单独购买服务器,毕竟人家做的也不错,除了有些功能收费以外。其实自己搭建Prometheus服务端我们已经实现了,目前可以做到监控数据​​生成PDF格式定时发送​​,动态添加主机(自动增删被监控主机,还未整理,主要是懒🌚),只不过想节省资源,也能为公司每个月省下好几百。

目前进度

1、(完成) 已获取所有主机指定时间段内的各种指标(目前该项目以cpu使用率为例)
2、(进行中) 已获取所有主机主机名和ip信息
3、(未开始) 把接口一获取到的instanceid和接口二获得的instanceid对比,如果相等,把接口二获取的主机名和ip写到该表行的“主机名”与“IP”列
4、(未开始)获取整个周期时间段数据的百分比,例如7天内,在10-12点的cpu使用率

效果一:获取单台主机资源信息

获取一个主机的7天内的cpu使用率信息,生成报表

推荐Go语言开源项目:Excelize ,获取阿里云ECS实例监控数据导出到自定义Excel表格(二)_xlsx表格

阿里云API

阿里云 云监控服务API地址:​​https://next.api.aliyun.com/home​​

代码示例

效果二:获取所有主机资源信息

推荐Go语言开源项目:Excelize ,获取阿里云ECS实例监控数据导出到自定义Excel表格(二)_json_02

阿里云API

​​https://next.api.aliyun.com/api/Cms/2019-01-01/DescribeMetricList?params={}​​​​https://next.api.aliyun.com/api/Cms/2019-01-01/DescribeMetricLast?params={}​​

说实话,不知道这两个有什么区别。都可以用,而且两个获得数据不准,乱七八糟!先讲究用吧

代码实例

获取所有主机监控数据