阿里云提供了ECS系统事件用于记录和通知云资源信息,例如ECS实例的启停、是否到期、任务执行情况等。在大规模集群、实时资源调度等场景,如果您需要主动监控和响应阿里云提供的ECS系统事件,来实现故障处理、动态调度等自动化运维,可通过云助手插件ecs-tool-event
实现。
说明
- ECS系统事件是由阿里云定义的,用于记录和通知云资源的信息,例如运维任务执行情况、资源是否出现异常、资源状态变化等。系统事件类型和详细说明,请参见ECS系统事件概述。
- 云助手插件是集成在云助手里的插件能力,使用简单的命令就能够完成复杂的配置操作,提升运维管理效率。更多信息,请参见云助手概述和使用云助手插件。
自动化监控和响应ECS系统事件官网文档:https://help.aliyun.com/zh/ecs/use-cases/use-cloud-assistant-plug-ins-to-automatically-monitor-and-respond-to-ecs-system-events?spm=a2c6h.12873639.article-detail.10.5db173dcKQiGJu
方案原理
监控和响应ECS系统事件可通过控制台或对接OpenAPI两种方式。然而,这两种方式都存在一定的局限:
- 通过控制台监控或响应系统事件:要手动干预,且对于多实例场景容易出现事件遗漏,无法做到自动化的响应。
- 通过对接ECS OpenAPI监控或响应系统事件:需要自行开发程序,有一定的开发成本和技术要求。
为了解决上述问题,阿里云提供了云助手插件ecs-tool-event
,该插件会每分钟定时请求metaserver获取ECS系统事件,并将ECS系统事件转化为日志格式存储在操作系统内部。用户无需进行额外的程序开发,直接在操作系统内部采集系统事件日志来实现监控和响应ECS系统事件。例如,具备K8s自动化运维能力的用户,可以通过采集host_event.log的流式日志来适配自身运维系统。
方案实践
重要
- 请确保您的实例已安装云助手Agent。如何安装云助手Agent?
- 启动、停止云助手插件或查看云助手插件状态需要使用root权限。
- 登录ECS实例,启用云助手插件
ecs-tool-event
。启用后,该插件会每分钟定时请求metaserver获取ECS系统事件,并将ECS系统事件转化为日志格式存储在操作系统内部。
sudo acs-plugin-manager --exec --plugin=ecs-tool-event --params --start
- 说明启动后,可通过
ls /var/log
查看自动生成的host_event.log
文件。
- 日志保存地址:/var/log/host_event.log
- 日志格式:
%Y-%m-%d %H:%M:%S - WARNING - Ecs event type is: 事件类型,eventstatusis:事件类型,eventstatusis:{事件类型},event status is: {事件状态}, action ISO 8601 time is ${实际执行ISO 8601时间}
示例:
2024-01-08 17:02:01 - WARNING - Ecs event type is: InstanceFailure.Reboot,event status is: Executed,action ISO 8601 time is 2023-12-27T11:49:28Z
- 查询插件状态。
sudo acs-plugin-manager --status
- 结合自身业务场景,采集host_event.log的流式日志来适配自身运维系统。
应用示例:Kubernetes集群场景自动化响应ECS系统事件 - (可选)如果您不再需要主动响应ECS系统事件,可停止云助手插件
ecs-tool-event
。
sudo acs-plugin-manager --remove --plugin ecs-tool-event