tencent cloud

腾讯云可观测平台

动态与公告
产品动态
产品简介
产品概述
产品优势
基本功能
基本概念
应用场景
使用限制
购买指南
云产品监控
应用性能监控
终端性能监控
前端性能监控
云拨测
Prometheus 监控服务
Grafana 服务
事件总线
云压测
快速入门
监控概览
实例分组
云产品监控
应用性能监控
云拨测
云压测
Prometheus 监控服务
Grafana 服务
创建 Dashboard
事件总线
告警服务
云产品监控
云产品监控指标
控制台操作指南
云服务器监控组件
云产品监控对接 Grafana
故障处理
实践教程
应用性能监控
应用性能监控简介
接入指南
控制台操作指南
实践教程
参考信息
常见问题
终端性能监控
终端性能监控概述
控制台操作指南
接入指南
实践教程
前端性能监控
前端性能监控简介
控制台操作指南
接入指南
常见问题
云拨测
产品简介
控制台操作指南
常见问题
云压测
云压测概述
控制台操作指南
实践教程
JavaScript API 列表
常见问题
Prometheus 监控
Prometheus 监控简介
接入指南
控制台操作指南
实践教程
Terraform
常见问题
Grafana 服务
产品简介
控制台操作指南
Grafana 平台常用功能指引
常见问题
Dashboard
什么是 Dashboard
控制台操作指南
告警管理
控制台操作指南
故障处理
常见问题
事件总线
事件总线简介
控制台操作指南
实践教程
常见问题
报表管理
常见问题
腾讯云可观测平台常见问题
告警服务相关
一般性问题
监控图表相关
云服务器监控组件相关
动态阈值告警相关
云监控对接 Grafana 相关
文档阅读指南
相关协议
应用性能监控服务等级协议
APM 隐私协议
APM 数据处理和安全协议
前端性能监控服务等级协议
终端性能监控服务等级协议
云拨测服务等级协议
Prometheus 监控服务服务等级协议
Grafana 服务服务等级协议
云压测服务等级协议
云压测使用限制
Cloud Monitor Service Level Agreement
词汇表
文档腾讯云可观测平台事件总线实践教程云服务器异常自动备份与重启

云服务器异常自动备份与重启

PDF
聚焦模式
字号
最后更新时间: 2024-11-01 20:44:50

操作背景

对于企业的生产环境而言,监控与报警不可或缺的,完善的监控与及时的报警和自动化处理,可以帮助企业快速定位并解决问题,从而减少经济损失。
腾讯云事件总线(EventBridge,EB)是一款安全、稳定、高效的无服务器事件管理平台。事件中心的事件总线可以接收来自您自己的应用程序、软件即服务(SaaS)和腾讯云服务的实时事件及相关数据流,通过集成消息推送和 SCF 云函数,实现告警信息的事实通知和自动化处理。
本文以服务器异常为例,为您介绍当云服务器产生告警事件后,如何基于事件总线 EventBridge 和云函数 SCF,实现告警消息的事实推送和硬盘快照的自动回滚,完成自动化运维架构的快速搭建。

架构设计

整体架构设计如下图所示。当云服务器某台机器出现异常告警,CVM 会自动产生告警事件并主动推送给 EB,经过 EB 绑定的告警规则筛选后,完成到通知渠道的消息触达及时通知到用户,同时触发云函数,以调用 API 的方式完成硬盘快照的快速回滚,保证业务及时恢复。


基本流程如下:实例产生告警事件 > EB 规则筛选过滤 > 投递至消息推送 & 云函数 > 云函数通过调用接口完成硬盘数据的备份及实例重启 > 重启完成后推送用户.

操作步骤

步骤1:创建函数并实现创建快照和重启逻辑

1. 登录 云函数控制台
2. 创建新函数,操作详情见 使用控制台创建一个事件函数
3. 完成调用 API 接口的代码逻辑编写,代码示例如下:
exports.main_handler = async (event, context) => {
// Depends on tencentcloud-sdk-nodejs version 4.0.3 or higher
const tencentcloud = require("tencentcloud-sdk-nodejs");

const CvmClient = tencentcloud.cvm.v20170312.Client;
const CbsClient = tencentcloud.cbs.v20170312.Client;
var secretId = process.env.secretId //环境变量注入您账号的 secretId
var secretKey = process.env.secretKey //环境变量注入您账号的 secretKey
var insID = event.subject

const clientConfig1 = {
credential: {
secretId: secretId,
secretKey: secretKey,
},
region: "ap-guangzhou",
profile: {
httpProfile: {
endpoint: "cvm.tencentcloudapi.com",
},
},
};

const client1 = new CvmClient(clientConfig1);
const params1 = {
"InstanceIds": [
${替换成需要重启的实例ID}
],
"StopType": "SOFT"
};
client1.RebootInstances(params1).then(
(data) => {
console.log(data);
},
(err) => {
console.error("error", err);
}
);

const clientConfig2 = {
credential: {
secretId: secretId,
secretKey: secretKey,
},
region: "ap-guangzhou",
profile: {
httpProfile: {
endpoint: "cbs.tencentcloudapi.com",
},
},
};

const client2 = new CbsClient(clientConfig2);
const params2 = {
"DiskId": ${替换成需要备份的的硬盘ID}
};
client2.CreateSnapshot(params2).then(
(data) => {
console.log(data);
},
(err) => {
console.error("error", err);
}
);
};

您也可以通过 API Explorer 快速生成示例代码。

步骤2:创建事件规则并完成告警事件的筛选过滤

2. 事件集中,选择云服务事件集 > default
3. default事件集详情中,单击管理事件规则
4. 事件规则中,单击新建事件规则。创建规则用于过滤和转换事件。
4.1 云服务器磁盘只读事件为例,创建规则如下:
规则1:接收磁盘只读异常事件


规则2:接收实例重启事件


4.2 事件规则也支持自定义编辑,您可根据实际需求,自定义您的事件规则信息。示例如下:
筛选所有来自广州地域的云服务器事件。
{
"source":"cvm.cloud.tencent",
"region":"ap-guangzhou"
}
筛选指定实例 ID 的云服务器事件。
{
"source":"cvm.cloud.tencent",
"subject":[
"ins-xxxxxx",
"ins-xxxxxx"
]
}

步骤3:绑定事件目标并完成后端处理逻辑的绑定 和推送目标的设置

创建好规则信息后,根据指引,为规则绑定投递目标,以上述 demo 为例:
对于规则1,需要同时绑定消息推送云函数两类型目标。
消息推送
云函数
选择指定方式接收告警信息。


绑定 步骤1 创建的云函数,实现告警事件自动化处理。


对于规则2,只需绑定消息推送目标。



步骤4:测试使用流程,发送模拟事件,检验流程是否通过

完成配置后,便已完成告警自动处理链路的搭建,您BN 可通过模拟告警事件,测试流程是否可以正常运行:
函数成功调用:


实例重启:


创建快照:


告警信息接收:


重启邮件接收:



帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈