👉点击这里申请火山引擎VIP帐号,立即体验火山引擎产品>>>
操作场景
场景一:保持实例停止状态
操作流程
操作步骤
登录云服务器控制台。
在顶部导航栏,选择目标实例所属的项目和地域。
在左侧导航树,选择“实例与镜像 > 实例”,进入实例列表页。
单击目标实例右侧“操作”列的“... > 运维与诊断 > 实例维护设置”按钮。
在弹窗中勾选“保持实例关机状态”。更多自动运维配置详情可查看系统事件自动运维设置。
场景二:重启失败时授权重新部署实例
操作流程
操作步骤
登录云服务器控制台。
在顶部导航栏,选择目标实例所属的项目和地域。
在左侧导航树,选择“实例与镜像 > 实例”,进入实例列表页。
单击目标实例右侧“操作”列的“... > 运维与诊断 > 实例维护设置”按钮。
在弹窗中勾选“自动重启实例”。更多自动运维配置详情可查看系统事件自动运维设置。
收到SystemFailure.Reboot:Failed(因系统故障实例重启:失败)与SystemFailure.Redeploy:Inquring(因系统故障实例重新部署:待响应)事件时,请授权火山引擎运维人员,将您的实例重新部署至新宿主机。
在控制台响应事件
登录云服务器控制台。
在顶部导航栏选择业务所在地域。
在左侧导航树,选择“运维与监控 > 事件监控”。
单击“非预期运维事件”页签,通过事件ID或时间筛选目标“因系统故障实例重新部署:待响应”(SystemFailure.Redeploy:Inquring)事件。
单击目标事件“操作”列的“授权重新部署”按钮,进行授权响应。
成功授权后,事件状态将更新为执行中。火山引擎运维人员将在您授权后开始重新部署操作,预计耗时5分钟。
使用OpenAPI响应事件
本节通过火山引擎SDK调用相关接口,请在您的项目中导入火山引擎SDK,操作详情可查看SDK概述。
若您不想在项目中引入SDK,可自行构造HTTP/HTTPS请求,操作详情可查看调用方法。
调用DescribeSystemEvents接口,查询云服务器实例触发的事件信息。
public void queryInstanceEvents(){//设置您的akString ak = "Your AK";//设置您的skString sk = "Your SK";//设置您要访问的地域,本示例为北京地域String region = "cn-beijing";//初始化apiclientApiClient apiClient = new ApiClient().setCredentials(Credentials.getCredentials(ak, sk)).setRegion(region);EcsApi ecsApi = new EcsApi(apiClient);DescribeSystemEventsRequest describeSystemEventsRequest = new DescribeSystemEventsRequest();// 指定待查询的实例IDdescribeSystemEventsRequest.setResourceIds(Arrays.asList("<A实例ID>"));// 筛选生成事件的起始时间describeSystemEventsRequest.setCreatedAtStart("2023-05-20T01:29:38+08:00");// 筛选生成事件的结束时间describeSystemEventsRequest.setCreatedAtEnd("2023-05-25T18:29:38+08:00");try {DescribeSystemEventsResponse describeSystemEventsResponse = ecsApi.describeSystemEvents(describeSystemEventsRequest);System.out.println(describeSystemEventsResponse);} catch (ApiException e) {System.out.println(e.getResponseBody());}}
class DescribeSystemEventsResponse {nextToken:systemEvents: [class SystemEventForDescribeSystemEventsOutput {createdAt: 2023-05-25T14:15:21+08:00id: e-ycfroor651gh9zxxxoperatedEndAt: 2023-05-29T11:58:30+08:00operatedStartAt: 2023-05-28T23:58:30+08:00resourceId: <A实例ID>status: Inquiringtype: SystemFailure_RedeployupdatedAt: 2023-05-26T11:58:30+08:00}]}
调用DescribeEventTypes接口,查询实例触发的所有事件是否需要响应。
public void queryEventType(){//设置您的akString ak = "Your AK";//设置您的skString sk = "Your SK";//设置您要访问的地域,本示例为北京地域String region = "cn-beijing";//初始化apiclientApiClient apiClient = new ApiClient().setCredentials(Credentials.getCredentials(ak, sk)).setRegion(region);EcsApi ecsApi = new EcsApi(apiClient);DescribeEventTypesRequest describeEventTypesRequest = new DescribeEventTypesRequest();// 指定待查询的事件类型describeEventTypesRequest.setTypes(Arrays.asList("SystemFailure_Redeploy"));// 筛选需要响应的事件describeEventTypesRequest.setResponseRequired(true);try {DescribeEventTypesResponse describeEventTypesResponse = ecsApi.describeEventTypes(describeEventTypesRequest);System.out.println(describeEventTypesResponse);} catch (ApiException e) {System.out.println(e.getResponseBody());}}
本实践中,实例A触发的SystemFailure_Redeploy:Inquring(因系统故障实例重新部署:待授权)事件需要响应。
class DescribeEventTypesResponse {eventTypes: [class EventTypeForDescribeEventTypesOutput {kind: UnexpectedOperationsresponseRequired: truestatus: [Inquiring, Executing, Succeeded, Failed, Canceled]title: 因系统故障实例重新部署type: SystemFailure_Redeploy}]nextToken:}
调用UpdateSystemEvents接口,响应SystemFailure_Redeploy:Inquring(因系统故障实例重新部署:待授权)事件,授权火山引擎运维人员重新部署实例,排除故障。
public void updateEvents(){//设置您的akString ak = "Your AK";//设置您的skString sk = "Your SK";//设置您要访问的地域,本示例为北京地域String region = "cn-beijing";//初始化apiclientApiClient apiClient = new ApiClient().setCredentials(Credentials.getCredentials(ak, sk)).setRegion(region);EcsApi ecsApi = new EcsApi(apiClient);UpdateSystemEventsRequest updateSystemEventsRequest = new UpdateSystemEventsRequest();// 传入需要响应的事件IDupdateSystemEventsRequest.setEventIds(Arrays.asList("e-ycfu1fit1f8hcczyxxx"));// 响应事件updateSystemEventsRequest.setStatus("Executing");// 指定重新部署实例时间窗try {UpdateSystemEventsResponse updateSystemEventsResponse = ecsApi.updateSystemEvents(updateSystemEventsRequest);System.out.println(updateSystemEventsResponse);} catch (ApiException e) {System.out.println(e.getResponseBody());}}
class UpdateSystemEventsResponse {operationDetails: [class OperationDetailForUpdateSystemEventsOutput {error: nulleventId: e-ycfu1fit1f8hcczxxx}]}
调用DescribeSystemEvents接口,传入已响应的事件ID,查询事件当前状态等信息。
public void queryInstanceEvents(){//设置您的akString ak = "Your AK";//设置您的skString sk = "Your SK";//设置您要访问的地域,本示例为北京地域String region = "cn-beijing";//初始化apiclientApiClient apiClient = new ApiClient().setCredentials(Credentials.getCredentials(ak, sk)).setRegion(region);EcsApi ecsApi = new EcsApi(apiClient);DescribeSystemEventsRequest describeSystemEventsRequest = new DescribeSystemEventsRequest();// 指定待查询事件IDdescribeSystemEventsRequest.setEventIds(Arrays.asList("e-ycfu1fit1f8hcczyxxx"));try {DescribeSystemEventsResponse describeSystemEventsResponse = ecsApi.describeSystemEvents(describeSystemEventsRequest);System.out.println(describeSystemEventsResponse);} catch (ApiException e) {System.out.println(e.getResponseBody());}}
事件处于执行中状态示例如下:
class DescribeSystemEventsResponse {nextToken:systemEvents: [class SystemEventForDescribeSystemEventsOutput {createdAt: 2023-05-26T11:58:30+08:00id: e-ycfu1fit1f8hcczyxxxoperatedEndAt: 2023-05-29T11:58:30+08:00operatedStartAt: 2023-05-28T23:58:30+08:00resourceId: <A实例ID>status: Executingtype: SystemFailure_RedeployupdatedAt: 2023-05-26T14:19:19+08:00}]}
事件执行成功示例如下:
class DescribeSystemEventsResponse {nextToken:systemEvents: [class SystemEventForDescribeSystemEventsOutput {createdAt: 2023-05-26T11:58:30+08:00id: e-ycfu1fit1f8hcczyxxxoperatedEndAt: 2023-05-29T11:58:30+08:00operatedStartAt: 2023-05-28T23:58:30+08:00resourceId: <A实例ID>status: Succeededtype: SystemFailure_RedeployupdatedAt: 2023-05-28T23:58:30+08:00}]}
场景三:自动重新部署实例
操作流程
操作步骤
登录云服务器控制台。
在顶部导航栏,选择目标实例所属的项目和地域。
在左侧导航树,选择“实例与镜像 > 实例”,进入实例列表页。
单击目标实例右侧“操作”列的“... > 运维与诊断 > 实例维护设置”按钮。
在弹窗中勾选“重新部署实例并保持实例原状态”。更多自动运维配置详情可查看系统事件自动运维设置。
后续,当实例触发本事件且重新部署成功后,火山引擎将生成SystemFailure.Redeploy:Succeeded(因系统故障实例重新部署:成功)事件,同步您运维结果。