故障自愈
本功能为商业版功能。本文从原理和数据流的角度,介绍夜莺监控的告警引擎的相关知识,帮助用户理解告警流程,排查告警问题。
概述
告警自愈处理器(Event recover)是一种告警自愈的手段。在告警发生后,它通过执行配置脚本,可用于获取更多告警相关信息或执行自愈任务。
使用场景
场景一:服务响应慢告警查询主机负载
如果产生服务响应时间慢相关告警,可以在脚本中获取机器负载相关数据。
场景二:主机磁盘使用率告警,使用脚本进行查询或处理
如果产生磁盘使用率告警,在某些运维场景下,例如,某些服务日志是明确需要定时清理的,可以在脚本中查询相关目录日志大小,并自动进行日志清理。
配置说明
1. 配置 Event Recover 事件处理器

这里输入自愈模板,执行机器,和参数。 执行机器如果为空,执行的时候会使用告警中的 ident 标签指定的机器。如果开启保存执行结果,结果将会被保存到告警消息中。目前的机制会同步等待结果执行完成后,再发送告警消息。如果超过执行等待时间后,自愈任务还会执行完成,则不会继续等待,直接发送告警消息。
2. 配置自愈模板
如果未配置自愈模板,可以在告警自愈菜单中,配置自愈模板。
3. 执行结果
自愈任务执行完成后,可在告警详情页面中查看自愈任务执行结果。

注意事项
在实践中,等待自愈任务完成的时间,不建议配置太长。告警在等待时间结束后才会发送,过长的等待时间会影响告警消息的实效性。
常见问题
Q1:自愈任务执行后告警还是发出去了,是不是没生效?
A:故障自愈处理器不会自动阻止告警通知 — 它只是触发一个脚本 + 等结果。是否发通知由通知规则决定。常见做法:
- 想"先尝试修复、修复成功就不发通知":用 事件抑制(基于查询),让脚本修复后写一个标记指标,下一周期发现指标存在就抑制告警;
- 单纯想给告警附加诊断信息:本处理器开启"保存执行结果"即可,结果会作为注解出现在通知里。
Q2:自愈脚本的执行机器从哪里取?
A:处理器配置时填写:
- 指定主机:手动选一台或一组机器;
- 留空:默认用告警事件中
ident标签指代的主机 — 即"告警是哪台机器,就在哪台执行"。要求事件标签里必须有ident。
Q3:超时后任务还会继续跑吗?
A:会。处理器只等"配置的等待时间"到了就放行告警通知,自愈任务在目标机器上继续跑。结果可以稍后在 历史任务 / 自愈脚本 里查看。
Q4:能不能同时触发多个自愈脚本?
A:单个处理器节点只配一个脚本。要并行多个脚本,可以新增多个 Event Recover 节点在同一工作流里。