知识卡片
失能开关模式:用超时反转监控逻辑
内容
当[[定时任务监控的核心难题是数据缺失即故障信号|把失败转化为日志记录]]这个办法也行不通时(比如任务本身就没办法可靠地把失败信息写下来),就需要能直接检测”数据不存在”这件事本身的机制——这类方案通常被称为失能开关(dead man’s switch):默认假设会执行某个动作(比如触发告警),除非有信号明确告诉它”不要这样做”。具体实现很简单:让实际任务成功后触碰(touch)一个状态文件更新其修改时间,再用一个每分钟独立运行的检查脚本比对该文件的最后修改时间和当前时间的差值,一旦超过预设的时间上限就说明本该发生的更新没有发生,从而触发告警。发散:这个模式的精妙之处在于把监控逻辑从”主动确认成功”反转成了”默认假定失败,靠证据证明成功”,天然适合任何”该定期发生但发生与否不好直接观测”的场景。
参考来源
《监控运维实践 原则与策略-2021》第8章《服务器监控》