# 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 - 地址: http://127.0.0.1:5000/getinstanceid - HTTP Method: POST - Parameter: - privateip // ECS内网ip - region // 大区 - response:返回IP和实例ID键值对 ## 根据内网IP更换EIP - 地址: http://127.0.0.1:5000/reseteip - HTTP Method: POST - Parameter: - privateip // ECS内网ip - region // 大区 - response:返回新EIP,老EIP和完成状态 # ECSMonitorApi ## 阿里云主机自动聚合监控 阿里云监控不提供自动的监控项聚合,ECS增删的情况下,需要不断维护各个监控项dashborad 通过调研阿里云云监控api,发现其提供了获取账号下所有ECS各个监控子项的聚合数据;如果通过接口获取数据,那么就不需要维护监控主机列表了,相对就是做到了主机的自动发现 该需求主要用于监控数据查找和展示,监控告警则仍然由阿里云监控模板统一匹配和实现 实现: - 安装一套influxdb用于数据落地 - 通过阿里云api获取所有阿里云账户下的所有ECS监控数据 - 通过返回的instanceid获取ECS的ip信息,将时间、ip信息和返回的最新监控数值写入influxdb - 因为阿里云接口返回的数据很多有相同的时间戳,influxdb时间作为主键,插入进去数据会被覆盖,需要为时间戳加上随机毫秒单位 - 安装一套grafana,数据源为influxdb,设置两个variable,分别是所有公网ip和所有内网ip - 阿里云DescribeMetricLast接口里MetricName即监控项可选参数 [云产品指标说明](https://cloudmonitor.console.aliyun.com/?spm=a2c4g.11186623.2.59.7254ad41IqwKxh#/metricdoc)