蓝鲸智云故障自愈产品白皮书

导出PDF

1.产品概述

故障自愈是一款实现服务器故障自动处理的解决方案,提升企业服务可用性和降低故障处理的人力投入。

通过自动化处理来节省人力投入,通过预定的恢复流程让恢复过程更可靠,通过并行分析达到更快的故障定位和恢复,最终减少业务损失的风险。

一句话概括:实时发现告警,预诊断分析,自动恢复故障,并打通周边系统实现整个流程的闭环。

2.产品架构

为了便于理解,以下为简单逻辑流程图:

3.特点及优势

  • 1.获取告警:告警源集成蓝鲸监控、3款主流开源监控产品Zabbix、Nagios、OpenFalcon的告警接入,更能通过REST API 拉取、推送告警。

  • 2.告警处理:故障处理支持作业平台、标准运维流程

  • 3.告警收敛和防御:系统预定收敛和防御规则,对异常告警事件进行收敛,更能通过收敛审批功能对异常的执行做审批。

  • 4.支持组合套餐,把自定义自愈套餐通过FTA(故障树分析)处理流程,组装成解决复杂场景的组合套餐。

  • 5.健康诊断,根据系统内置的健康诊断策略,周期性回溯异常事件,并通过邮件方式推送出来。

  • 6.预警自愈,是健康诊断功能的延伸,把健康诊断发现的问题通过自愈方案解决,完成异常事件的闭环。

  • 7.操作审计,感知故障自愈的每一次改动,确保运营安全,问题可回溯

  • 8.丰富的处理套餐:除支持作业平台、标准运维外,还支持快捷套餐类(磁盘清理、汇总、检测CPU使用率TOP10等)、组合套餐类(获取故障机备机、通知、审批等)

  • 9.提供自愈的服务监控:比如队列监控、每一个节点处理事件的趋势、套餐成功和失败的指标等

4.版本差异

暂无

5. 功能介绍

(故障自愈首页面板)

5.1 告警自动处理

故障自愈将告警接入自愈套餐后,告警将自动处理,无需人工干预。

5.2 告警收敛

针对满足收敛条件的告警,我们会汇总成一个告警事件,或进行异常防御审批.

除系统内置常见的收敛规则外,还支持用户自定义。
!

5.3 健康诊断

系统内置健康诊断的建议,根据告警出现的频次创建单据,提前发现问题。 !

不仅如此,还可以通过预警自愈页面配置诊断建议和处理套餐,提前自动规避风险。

5.4 集成主流监控产品

告警源集成蓝鲸监控、3款主流开源监控产品Zabbix、Nagios、OpenFalcon的告警接入,更能通过REST API 拉取、推送告警。

5.5 组合套餐

把自定义自愈套餐通过FTA(故障树分析)处理流程,组装成解决复杂场景的组合套餐

组合套餐

组合套餐,顾名思义就是把该业务下的套餐和官方通用套餐组合起来使用。

  • 具体操作: 按照配置的流程顺序执行套餐

  • 使用场景: 当单一的套餐无法满足故障恢复流程时,将套餐串起来用。

按时间汇总后通知

  • 具体操作: 根据配置按一定维度收敛后,发送通知给用户

  • 使用场景: 对于一些大量出现的告警,如单机性能告警/流量告警等,可以用此套餐收敛后发送通知。

  • 参数说明: 时间段和告警数必须填一个。按时间段汇总:从收到第一条告警开始计时,到规定时间后结束。按告警数汇总:从收到第一条告警开始计数,到规定数量后结束。少于多少条不通知:选择时间段汇总时,如果到时间后,告警数量少于指定数量,就不发通知。可以选择是否将告警存档在自愈,推荐不保存,直接在对接的监控系统中查看历史告警,以免告警列表页面被无效告警淹没。

  • 案例: 希望累计出现3条告警通知一次。参数为 0,0,3 希望有告警产生就每20分钟汇总通知一次。参数为20,0,0 希望每30分钟内累计出现5条以上告警通知一次。参数为 30,5,0 希望30分钟汇总一次,或者累计出现10条告警就马上通知。参数为 30,0,10

作业平台

调用 蓝鲸作业平台,作业平台脚本需要按照一定规范来。

  • 具体操作: 调用 作业平台作业

  • 使用场景: 希望在机器上执行脚本的故障恢复操作,如拉起进程等

  • 参数说明: 通过选择框选择 作业平台作业; 可以自定义传入 作业平台 的参数(不填默认传入故障IP); 可以通过作业平台 脚本获取自愈变量来在其他套餐中使用

腾讯云重启

  • 具体操作:调用腾讯云重启接口

  • 使用场景: 比如服务器出现“PING不可达”告警,需重启服务器

腾讯云重启后执行作业平台

  • 具体操作:先执行腾讯云重启 ,然后执行作业平台

  • 使用场景:比如服务器出现“PING不可达”告警,需重启服务器后拉起进程

获取故障机备机

根据 配置平台的配置 属性获取备机。许多故障替换操作都依赖于此套餐。

除了通过这个套餐获取备机外,也可以通过 作业平台来获取备机,只要使用 作业平台 套餐获取变量为 ip_bak 的参数即可。

  • 具体操作: 根据配置,在 配置平台 指定的 Set 与 App Module 中,查找指定属性与故障机相同的机器。将所有符合条件的机器 IP 通过微信让运维审批选择。此后备机 IP 就能通过变量在其他套餐中获取。

  • 使用场景: 在组合套餐中调用故障替换的操作套餐前必须先调用过此套餐

通知或审批

  • 具体操作:调用不同的接口发送通知或审批(发送微信失败会改为短信,发送短信失败则发微信,邮件通知接口调用失败将不做处理)

  • 使用场景:一般用户组合套餐中;通知,自定义消息发送到微信等平台;审批,执行服务器故障替换流程时,让运维审批是否执行替换,降低风险

暂停等待

  • 具体操作: 暂停一定时间

  • 使用场景: 重启操作后 Agent可能还没准备好,可以等待一定时间后再继续后面的流程

自定义收敛防御

  • 具体操作: 在指定时间内,出现过指定告警数量的相同IP,相同告警类型,将会收敛次条告警

  • 使用场景: 想添加某些异常防御条件的时候。大部分需求故障自愈的收敛功能就能满足

『快捷』套餐

每个业务默认都会有一批可以选择的套餐,用户几乎不需要对其做任何配置可以直接使用。对于这种套餐,我们用称为『快捷』套餐。 (部分『快捷』套餐只能在组合套餐中选用)

『快捷』配置平台拷贝故障机属性到备机(得先调选择备机)

  • 具体操作:

    • 调用 配置平台 替换接口,

    • 将替换机转移到与故障机相同的模块下(包括属于故障机多个模块的情况);

    • 拷贝故障机的标准属性到替换机;

    • 拷贝故障机的自定义属性到替换机;

    • 拷贝故障机的进程端口到替换机;

  • 使用场景:

    • 故障机切换后拷贝故障机 CC 信息到备机

『快捷』发送审核(微信+短信)

  • 具体操作: 发送微信与短信进行审批,内容为: “【故障自愈】即将执行(${组合套餐中下一个步骤的名称})(${业务名称}、模块为${模块}、 IP为${IP}),请审核!”

  • 使用场景: 当下一步执行的操作希望人工审批是否要继续执行的时候,在步骤前调用。

『快捷』发送通知(微信+邮件)

  • 具体操作: 发送微信和邮件通知,内容为: 【故障自愈】执行(${组合套餐中上一个步骤的名称})${组合套餐中上一个步骤的执行结果}(${业务名称}、模块为${模块}、 IP为${IP}),请关注!

  • 使用场景: 希望执行完某个步骤后,发送成功或者失败后的结果通知。

『快捷』发送通知(微信+邮件+短信)

  • 具体操作: 发送微信和邮件外加短信通知,其余同上

『快捷』发送通知(电话)

  • 具体操作: 发送电话通知,其余同上

『快捷』后续处理对象故障机与备机互换(得先调选择备机)

  • 具体操作: 调用此套餐后,在组合套餐的后续流程中,操作对象将会替换。流程默认都是对故障机进行操作,调用一次后将会默认对备机进行操作。再调用一次,则恢复原状。

  • 使用场景: 例如当获取选定的备机后,想对备机进行初始化操作,那么这时候就要先调用一次此套餐,再调用 初始化。初始化后,又想把故障机移动到 配置平台 的故障机模块,那么就又要调用一次此套餐,然后再调用 配置平台移动模块。

『快捷』标记组合套餐为基本成功

  • 具体操作: 标注自愈的处理结果为基本成功

  • 使用场景: 自愈的收敛策略为如果处理的套餐相同,那么如果第一个告警处理成功,后面的告警将会被收敛,失败的话则重新处理。 因此,可以在组合套餐中在某些核心步骤处理完后,调用次套餐来标注流程为基本成功,不让一些周边操作影响整个流程,使得一些核心操作被重复执行。 例如对于 PING不可达告警,可以在 腾讯云重启成功后标注基本成功,这样即使后续的步骤失败,机器也不会被再次重启。

5.6 套餐传入变量参数的说明

简介:自愈的很多套餐里都需要传入参数,但有些参数是套餐执行时根据故障机信息进行动态获取的。 目前自愈里很多套餐类型都支持了这种变量参数,比如通知审批等。

目前可选的变量有(可能为空):

  • ${ip}:告警的IP

  • ${raw}:告警的字符内容

  • ${alarm_type}:告警类型

  • ${source_time}:告警时间(格式如 2014-01-01)

  • ${cc_biz_id}:CC的业务ID

  • ${operator}:业务负责人的第一个

CC 主机属性和 SET 属性的变量

格式为:${cc|属性名字},如:

  • ${cc|OuterIP}:故障主机的外网 IP

  • ${cc|AssetID}:故障主机的固资编号

具体属性名请在 CC 上查询。

CC 变量支持五个参数

  • all、set、custom、alarm_ci_name、ip_bak

  • all:当有多个参数的时候,将返回通过逗号间隔的字符串。如有多个主机名称的时候

  • ${cc|HostName|all}:返回”hostname1,hostname2,hostnameN”,不添加默认返回第一个

set:查询 Set 属性。如

  • ${cc|SetName|set}:故障主机的Set名称

custom:查询自定义属性。如查询一个名为 IDC 的 Set 属性

  • ${cc|IDC|set|custom}

  • alarm_ci_name:指定查询故障机的CC属性

  • ip_bak:指定查询备机的CC属性

三个参数能任意组合,如以下两个写法是等价的:

  • ${cc|IDC|set|custom|all}

  • ${cc|IDC|all|set|custom}

故障机替换时备机

故障自愈现在有两种获取备机的 IP,通过获取备机套餐在 CC 中寻找符合要求的机器或者通过作业平台脚本来获取。获取到的备机参数为:${bpm_context|ip_bak}

与 IP 有关的变量有三个:

  • ${ip} 当前流程处理的 IP,默认是故障机 IP,可以被替换操作对象的套餐改为备机 IP

  • ${bpm_context|ip_bak} 备机 IP

  • ${bpm_context|alarm_ci_name} 故障机 IP

常见案例

  • 1.根据告警传入告警IP

    • ${ip}

  • 2.根据告警IP传入外网IP

    • ${cc|OuterIP}

  • 3.根据告警IP传入自定义主机属性

    • ${cc|gametype|custom}

  • 4.根据告警IP传入set名称

    • ${cc|SetName|set}

  • 5.根据告警IP传入自定义set属性

    • ${cc|openstate|set|custom}

  • 6.跟进告警IP传入组合属性(如:1区_虎啸谷)

    • ${cc|SetWorldID|set}_${cc|SetChnName|set}

注意事项

  • 注意大小写

6. 入门指南

-w320 -w557

7. 场景案例

  • 磁盘告警接入

    • 创建磁盘清理自愈套餐

    • 将磁盘使用率告警接入自愈方案

8. FAQ

  • 故障自愈依赖蓝鲸的哪些产品?

    • 答: 故障自愈依托于蓝鲸体系的集成平台和配置平台

  • 故障自愈的套餐执行部分可以是哪些系统?

    • 答:蓝鲸作业平台、标准运维

9.结语

故障自愈,你的无人值守伙伴!

她可以实现服务器故障的“人工处理“到”无人值守“的变革。 我们希望通过故障自愈不断的努力,提升企业服务的可用性、降低故障处理的人力投入、提升企业自动化程度的同时,来提升运维人员的生活质量,实现工作和生活的平衡!

本文档是否对您有帮助?