尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Flapjack维护窗口与告警确认怎么做:从计划维护到API一键确认的完整运维流程

Flapjack维护窗口与告警确认怎么做:从计划维护到API一键确认的完整运维流程 Flapjack维护窗口与告警确认怎么做从计划维护到API一键确认的完整运维流程【免费下载链接】flapjackMonitoring notification routing event processing system. For issues with the Flapjack packages, please see https://github.com/flapjack/omnibus-flapjack/项目地址: https://gitcode.com/gh_mirrors/fl/flapjackFlapjack 是一款灵活的监控告警路由与事件处理系统负责判断告警该通知谁、以什么方式通知以及处理计划维护窗口、告警确认ack等标准运维任务。本文将带你从 0 到 1 走通一套完整的运维流程 创建计划维护窗口 → 让维护期间的告警自动静默 → 通过 JSON API 一键确认告警 → 确认后的行为验证。全程只需 CLI 和 API 两种方式新手也能直接上手。一、先理解两个核心概念 概念英文含义典型场景计划维护窗口Scheduled Maintenance指定某检查check在未来某个时间段内静默凌晨 2 点升级数据库预计 30 分钟未计划维护窗口Unscheduled Maintenance从当前时刻开始的临时静默正在排查问题先别打电话告警确认Acknowledgement声明这个问题我已接手默认静默 4 小时值班同事在手机上点一下确认Flapjack 中这两类数据分别由以下模型定义计划维护lib/flapjack/data/scheduled_maintenance.rb含开始时间、结束时间、原因说明三个属性并强制校验结束时间必须晚于开始时间未计划维护lib/flapjack/data/unscheduled_maintenance.rb开始时间默认取当前时间告警确认lib/flapjack/data/acknowledgement.rb默认时长 4 小时可自定义二、用 CLI 创建维护窗口最快方式Flapjack 内置了flapjack maintenance命令族支持 show / create / delete 三个子命令实现代码在lib/flapjack/cli/maintenance.rb。1. 创建一句话预约今晚升级flapjack maintenance create \ --check db-primary:disk \ --type scheduled \ --start on 2026-08-24 02:00 \ --duration equal to 30 minutes \ --reason 计划升级数据库要点说明--check支持逗号分隔的多个检查名也可以写正则如http*批量覆盖时间参数支持自然语言after 1 hour、between 3 and 4 hours ago等底层用 Chronic 解析如果该检查尚不存在Flapjack 会自动创建检查再挂上维护窗口不用提前准备2. 查看确认窗口已生效flapjack maintenance show --type scheduled --start after now输出是一张包含 Check、Start、Duration、Reason、End 五列的表格方便快速核对。3. 删除取消不再需要的维护# 第一次运行只是预演列出将要删除的窗口 flapjack maintenance delete --type scheduled --check db-primary:disk # 加 --apply true 才真正删除且只允许删除尚未结束的窗口 flapjack maintenance delete --apply true --type scheduled --check db-primary:disk这种先预演、后确认的双段式设计能有效避免误删非常适合作为运维操作规范 三、维护窗口期间告警真的会消失吗会的。Flapjack 的事件管线中设有过滤器filter事件在路由成通知前会逐一经过它们计划维护过滤lib/flapjack/filters/scheduled_maintenance.rb未计划维护过滤lib/flapjack/filters/unscheduled_maintenance.rb确认状态过滤lib/flapjack/filters/acknowledgement.rb只要检查处于维护窗口内或已被确认且未超时对应事件就不会生成新的告警通知。官方用验收测试锁定了这个行为可参考features/ack_after_sched_maint.feature检查处于计划维护中时收到 critical 事件不发送任何邮件60 分钟后维护结束critical 事件才正常触发 problem 告警随后确认事件会生成 acknowledgement 通知。四、JSON API 一键创建维护 / 一键确认Flapjack 自带 JSON:API 网关默认端口 3081代码位于lib/flapjack/gateways/jsonapi/接口文档由 Swagger 自动生成lib/flapjack/gateways/jsonapi/helpers/swagger_docs.rb。这是最推荐的自动化方式值班工具、聊天机器人、工单系统都可以直接对接。1. 一键创建计划维护窗口curl -X POST http://localhost:3081/api/v2/scheduled_maintenances \ -H Content-Type: application/json \ -d { data: { id: f47ac10b-58cc-4372-a567-0e02b2c3d479, type: scheduled_maintenance, attributes: { start_time: 2026-08-24T02:00:00Z, end_time: 2026-08-24T02:30:00Z, summary: 计划升级数据库 }, relationships: { check: { data: { type: check, id: db-primary:disk } } } } } 小技巧relationships里也可以把check换成tagFlapjack 会自动为该 tag 下的每一个检查各创建一条维护窗口非常适合整条业务线停机的场景。2. 一键确认告警Ackcurl -X POST http://localhost:3081/api/v2/acknowledgements \ -H Content-Type: application/json \ -d { data: { id: d1b2a0c9-8e3f-4a71-9c55-2f6b1a0e4d38, type: acknowledgement, attributes: { duration: 3600, summary: 已接手正在排查磁盘 }, relationships: { check: { data: { type: check, id: db-primary:disk } } } } }两个参数值得注意详见lib/flapjack/data/acknowledgement.rbduration确认时长秒不传则默认 4 小时4 × 60 × 60relationshipscheck与tag二选一。传 tag 时该 tag 下所有失败中且启用的检查会一起被确认确认成功后Flapjack 会向相关联系人发送 acknowledgement 类型的通知让团队知道有人在处理了避免重复派单。五、最佳实践清单 ✅能用 tag 就别逐个填 check按业务线打标签维护窗口和确认都能一次覆盖整组检查。维护窗口宁短勿长只覆盖必须静默的时段结束后问题会立即重新告警这正是验收测试验证过的行为。确认时写明 summary这是写给交接人的便签正在重启服务比空值有用得多。危险操作走双段式maintenance delete不带--apply先预演一遍再执行。接入前先读 Swagger接口字段以运行时生成的文档为准GET /api/v2即可查看。六、常见问题速答 Q未计划维护unscheduled能用 API 直接 POST 创建吗不能。lib/flapjack/data/unscheduled_maintenance.rb只开放了 GET / PATCH / DELETE创建请走 CLI 的--type unscheduled语义上它就是此刻开始的临时静默。Q确认一个没有失败的检查会生效吗不会。Acknowledgement的check逻辑会先判断检查是否处于失败且启用状态不是就不创建确认属于静默空操作。Q维护窗口和确认能叠加吗能。过滤器按序执行维护窗口内的事件被丢弃窗口结束后若检查仍失败则重新告警之后的确认操作照常生效。写在最后维护窗口解决计划内的静默告警确认解决已接手的静默——两者配合就能让 Flapjack 在风暴时刻保持安静、又绝不遗漏真正的新问题。建议按本文顺序实操一遍CLI 创建窗口 → 触发一次失败事件验证静默 → API 确认告警 → 用flapjack maintenance show收尾。祝值班愉快 【免费下载链接】flapjackMonitoring notification routing event processing system. For issues with the Flapjack packages, please see https://github.com/flapjack/omnibus-flapjack/项目地址: https://gitcode.com/gh_mirrors/fl/flapjack创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表