博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里云新发布ECS状态变化类事件
阅读量:5947 次
发布时间:2019-06-19

本文共 2365 字,大约阅读时间需要 7 分钟。

  阿里云ECS在已有的系统事件的基础上,通过云监控新发布了状态变化类事件和抢占型实例的中断通知事件。利用这些新发布的事件,客户可以将ECS的完整生命周期实时的同步到自己的日志里或者数据库里,满足查询和审计的需要,或者直接触发函数计算进行一些自动化的运维操作。

  关于ECS系统事件,请参阅文章

  ECS实例状态变化事件

  每当ECS实例的状态发生变化的时候,都会触发一条ECS实例状态变化事件。这种变化包括用户在控制台/OpenAPI/SDK操作导致的变化,也包括弹性伸缩或欠费等原因而自动触发的,还包括因为系统异常而触发的变化。

  比如,当一个停止中的ECS实例被启动的时候,会触发一个“启动中”的事件。事件的格式遵循已有的云监控系统事件的格式,事件头会包含时间和唯一ID等信息,事件的完整格式如下:

{    "status": "Normal",    "ver": "1.0",    "content": {        "resourceId": "i-xxxxxxxxxx",        "state": "Starting",        "resourceType": "ALIYUN::ECS::Instance"    },    "id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",    "product": "ECS",    "groupId": [    ],    "resourceId": "acs:ecs:cn-xxxx:xxxxxxx:instance/i-xxxxxxxxxx",    "level": "INFO",    "instanceName": "",    "name": "Instance:StateChange",    "userId": "xxxxxxx",    "eventTime": "20190130T112734.114+0800",    "regionId": "cn-xxxx"}

  ECS实例状态变化通知事件支持以下六种状态,详见。

状态名

控制台显示状态

Pending

无(实例创建后,在进入运行中之前的状态)

Starting

启动中

Running

运行中

Stopping

停止中

Stopped

已停止/已过期/即将过期/已锁定/欠费回收中/等待释放

Deleted

无(实例已经被删除)

  抢占式实例中断通知

  抢占式实例因为资源供需关系发生变化等原因,存在被自动释放的可能。在释放前5分钟左右,会触发抢占式实例中断通知,您可以在收到该事件的时候为抢占式实例的释放提前做准备。

  抢占式实例中断通知的事件格式与状态变化事件格式除了name和content字段外,其他格式相同。

{    "product": "ECS",    "resourceId": "acs:ecs:cn-shanghai:xxxxxxx:instance/i-abcdef",    "level": "WARN",    "instanceName": "instanceName",    "regionId": "cn-hangzhou",    "name": "Instance:PreemptibleInstanceInterruption",    "content": {        "instanceId": "i-abcdef",        "action": "delete"    },    "status": "Normal",    "eventTime": "20190130T112768.222+0800"}

  导致抢占式实例进入待回收状态的原因,包括市场价格高于您的出价或者资源供需关系发生变化等,详见。

  云监控控制台使用新增事件

  登陆云监控控制台,进入『事件监控』->『报警规则』->『系统事件』tab,点击『创建事件报警』按钮。

  在创建/修改事件报警的对话框里,按以下内容配置事件筛选规则:

  事件类型选择『系统事件』

  产品类型选择『云服务器ECS』

  二级事件类型选择“Status Notification”。

  事件等级选择『全部级别』

  事件名称选择“实例状态改变通知”或者“抢占式实例中断通知”,可以多选。

  在报警方式里面,你可以配置短信/邮件/钉钉通知,或者将该类事件转发给消息队列,函数计算,或者回调某个URL。

新增事件的使用场景

  Event的真正价值,在于用Event Driven的方式去触发自动化的业务逻辑,从而解放人力,甚至有可能基于Event诞生新的云产品。在此,我们给出三个典型的自动化场景。

场景1: Auto-Start ECS

如果你的ECS是需要一直保持开机状态来提供某种服务的,那么不论任何原因的关机都是一种异常。您可以考虑消费ECS的状态改变通知,当收到stopped的通知的时候,自动对ECS执行一个启动的命令。

场景2: ECS创建完成后的初始化

比如,当ECS创建完成后,你可能需要在ECS上自动创建用户账户或者执行某个脚本。您可以考虑消费ECS的状态改变通知,当收到第一次running事件后,通过云助手执行一个脚本。

场景3: ECS抢占式实例释放前自动从SLB后端服务器中移出

如果您的SLB负载均衡服务器后配置了多台抢占式实例作为后端服务器,又不想因为抢占式实例的突然释放而影响业务。那么,您可以考虑接收ECS的抢占式实例的中断通知。在抢占式实例被释放前5分钟左右,您将收到抢占式实例中断通知,此时您可以将该抢占式实例后端服务器从SLB中移出,并创建一个新的抢占式实例作为后端服务器加入SLB。

 

更详细的最佳实践文档以及示例代码,请参阅

转载地址:http://uzdxx.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
软件学习常见概念之并发控制
查看>>
C#学习经典(二)---MVC框架(Model view Controller)
查看>>
我的友情链接
查看>>
log4j配置文件说明
查看>>
Maven: 为Compiler插件设置source和target版本
查看>>
L2TP/IPSec一键安装脚本
查看>>
linux下永久添加静态路由
查看>>
android 全局变量和局部变量命名规则
查看>>
Ubuntu Sub-process /usr/bin/dpkg
查看>>
详解DNS的常用记录(下):DNS系列之三
查看>>
“爆炸门”苹果补刀,三星该“哭晕了”!
查看>>
基于linux的3款压力测试工具:Siege,webbench,ab
查看>>
Netty Buffer
查看>>
华为AAA认证典型配置举例
查看>>
icinga2使用check_snmp_idrac.py监控DELL硬件状态
查看>>
Java基础学习21(代码块)
查看>>
陈松松:无需懂任何视频制作技术,就能做出让客户感觉专业的视频
查看>>
转:用Windows Live Writer在51CTO写博客
查看>>
rsync+ssh的无验证登录
查看>>