介绍
ECS云服务器是用户使用最多的云资源之一,但有时会出现一些问题而变得不知所措:网络不通,发现实例不知何时加入了一个安全组;账号下面不知何时多出/少了几个ECS实例;实例的一些费用不知道为什么突然激增;实例不知何时被启动或关停。如果没有完备的日志审计,这些问题就会很容易产生疑惑,此时只能求助阿里云人工服务,在阿里云小二排查了一段时间后,通常可以给到用户答复,但这中间会花费一些的时间,延缓用户问题的解决速度。阿里云ECS团队推出了关于实例、费用、安全组相关的操作日志审计功能,帮助用户快速自主查询,提高问题的解决速度。
目前主要包括的功能:
- 排查用户非预期的实例创建或释放记录
- 排查用户非预期的实例状态变化记录
- 排查用户非预期的创建或删除安全组记录
- 排查用户实例的安全组配置被修改记录
- 排查用户实例计费变更记录
使用方式
使用前提条件:为了让诊断系统可以使用用户的角色去查询操作记录,因此在RAM访问控制中,需要用户拥有AliyunRAMFullAccess权限,并关联了AliyunServiceRoleForECSSelfService角色。详细操作请参见《管理实例问题排查诊断服务的关联角色》。
针对以下场景
- 排查用户非预期的实例创建或释放记录
- 排查用户非预期的实例状态变化记录
- 排查用户实例的安全组配置被修改记录
- 排查用户实例计费变更记录
如下图所示,进入阿里云ECS控制台,在功能列表中选择“自助问题排查”,然后选择实例问题排查 > 实例费用及安全行为审计 > 选择对应上述的问题场景,然后选择一个需要诊断的实例,选择一个诊断时间段,诊断系统便会对这个实例进行所选时间范围内的操作记录搜索。
针对以下场景
- 排查用户非预期创建或删除安全组记录
操作和前述场景大同小异,如下图所示,进入阿里云ECS控制台,在功能列表中选择“自助问题排查”,然后选择实例问题排查 > 实例费用及安全行为审计 > 非预期创建或删除安全组,然后选择一个需要诊断的安全组,选择一个诊断时间段,诊断系统便会对这个安全组进行所选时间范围内的操作记录搜索。
诊断结果
针对以下场景
- 排查用户非预期的实例创建或释放记录
- 排查用户非预期的实例状态变化记录
- 排查用户实例的安全组配置被修改记录
- 排查用户实例计费变更记录
在查询操作记录完成后,会显示查询结果,下图所示为查询到指定时间范围内操作记录的结果,点击“操作记录”超链接,则会跳转ECS实例的操作记录页面。
在实例操作记录页面里,可以看到下方展示的列表,列表内展示的是对应场景的操作记录,主要包括的信息有:操作名称,操作类型,关联资源ID,用户名,操作时间等等。下图所示的实例创建和释放的场景里,可以看到一次RunInstances的操作及其相关的记录信息。在示意图的脑图中可以看到几个用户行为回溯的场景,包括实例创建和释放,实例启动和关停,实例计费变更,关联安全组变更。在不同的诊断场景下都会按照诊断条件跳转至对应的实例操作记录场景以查看结果。
针对以下场景
- 排查用户非预期创建或删除安全组记录
这些场景会在诊断结果页面直接展示操作记录,主要信息包括:操作名称,操作时间,操作类型,操作来源。如果用户希望查询更详细的操作信息,可以通过超链接“操作审计”跳转至云产品ActionTrail进行高级搜索和查询。
诊断系统的诊断项介绍
五类场景主要包含的API和ECS控制台操作如下:
- 排查用户非预期的实例创建或释放记录
RunInstances(创建实例)
CreateOrder(创建实例)
CreateInstance(创建实例)
ModifyInstanceAutoReleaseTime(修改实例到期时间)
DeleteInstances(删除实例)
DeleteInstance(删除实例)
- 排查用户非预期的实例状态变化记录
RunInstances(创建并启动实例)
StartInstance(启动实例)
StartInstances(启动实例)
StopInstance(停止实例)
StopInstances(停止实例)
RebootInstance(重启实例)
RebootInstances(重启实例)
ReactivateInstances(重启实例)
- 排查用户非预期的创建或删除安全组记录
CreateSecurityGroup(创建安全组)
DeleteSecurityGroup(删除安全组)
- 排查用户实例的安全组配置被修改记录
JoinSecurityGroup(加入安全组)
LeaveSecurityGroup(离开安全组)
RunInstances(创建实例并加入安全组)
CreateOrder(创建实例并加入安全组)
CreateInstance(创建实例并加入安全组)
- 排查用户实例计费变更记录
RunInstances(创建实例)
CreateOrder(创建实例)
StartInstance(启动实例)
StartInstances(启动实例)
RenewInstance(启动实例)
ModifyInstanceAutoRenewAttribute(修改实例到期时间)
ModifyInstanceAttribute(修改实例属性,主要是修改突发性能实例的运行模式)
ModifyInstanceChargeType(修改实例付费类型)
ModifyInstanceSpec(修改实例规格)
ModifyPrepayInstanceSpec(修改实例规格)
ModifyInstanceNetworkSpec(修改实例带宽)
ReactivateInstances(重启实例)
后续还有其他的诊断项会陆续发布,例如安全组规则变化记录查询,磁盘操作记录查询等等。如果您有比较急迫的其他诊断需求,也可以联系我们。
工作原理
用户发起诊断后,系统会先检查用户是否拥有AliyunRAMFullAccess权限,如果没有此权限则无法进行诊断。权限校验通过后会提示用户关联诊断服务的AliyunServiceRoleForECSSelfService角色,若用户同意则系统为用户自动进行关联,此角色可以在用户发起操作记录查询时,使用用户的身份去云产品ActionTrail查询用户的操作记录。在查询完相关场景的操作记录后,系统将筛选后符合条件的结果返回给用户。
已开放地域
目前实例启动异常诊断的能力已经通过ECS控制台在阿里云全球所有地域向所有用户开放。