ECSCreater
创建
- 地址:http://127.0.0.1:5000/createecs
- HTTP Method: POST
- Parameter:
- set_Region:cn-beijing // 大区
- set_InternetChargeType: // 网络计费方式 PayByTraffic // 流量按量计费 PayByBandwidth // 按固定带宽计费
- set_InstanceChargeType // ECS计费方式 PrePaid // 包年包月,预设为1个月,自动续费 PostPaid // 按量计费
- set_Password // 设置服务器密码
- set_Amount // 一次创建的数量
- response:返回创建的实例ID
获取实例信息,调用创建接口10s后调用
- 地址:http://127.0.0.1:5000/describeinstances
- HTTP Method: POST
- Parameter:
- set_Region:cn-beijing // 大区
- InstanceIds: ["i-2ze7me6g517mxsdknmx2","i-2ze7me6g517mxsdknlki"] // 实例ID,单次获取上限为100,超过需要翻页,暂时未做,该接口较快,可以多次调用
- response: 返回 实例ID,付费类型、公网地址、内网地址
释放实例
- 地址:http://127.0.0.1:5000/releaseinstances
- HTTP Method: POST
- Parameter:
- set_Region:cn-beijing // 大区
- InstanceIds: ["i-2ze7me6g517mxsdknmx2","i-2ze7me6g517mxsdknlki"] // 需要释放的实例id数组
- response: 阿里云request id,没有错误即为成功;因阿里云不支持包年包月的ECS直接释放,如有包年包月类型的释放请求,会先调用计费模式转换,返回会稍慢
EIPChanger
根据内网ip获取实例id
根据内网IP更换EIP
ECSMonitorApi
阿里云主机自动聚合监控
阿里云监控不提供自动的监控项聚合,ECS增删的情况下,需要不断维护各个监控项dashborad
通过调研阿里云云监控api,发现其提供了获取账号下所有ECS各个监控子项的聚合数据;如果通过接口获取数据,那么就不需要维护监控主机列表了,相对就是做到了主机的自动发现
该需求主要用于监控数据查找和展示,监控告警则仍然由阿里云监控模板统一匹配和实现
实现:
- 安装一套influxdb用于数据落地
- 通过阿里云api获取所有阿里云账户下的所有ECS监控数据
- 通过返回的instanceid获取ECS的ip信息,将时间、ip信息和返回的最新监控数值写入influxdb
- 因为阿里云接口返回的数据很多有相同的时间戳,influxdb时间作为主键,插入进去数据会被覆盖,需要为时间戳加上随机毫秒单位
- 安装一套grafana,数据源为influxdb,设置两个variable,分别是所有公网ip和所有内网ip
- 阿里云DescribeMetricLast接口里MetricName即监控项可选参数 云产品指标说明