Uptime Kuma 中的维护窗口允许用户安排监控预计会停机进行维护的时间段。在此期间,受影响的监控不会触发警报通知,其状态将显示为“维护中”,而不是“宕机”。此功能有助于减少警报疲劳,并向用户提供有关计划停机的透明度。
有关监控和警报的信息,请参阅 监控系统。有关维护窗口在状态页面上的显示方式的详细信息,请参阅 状态页面。
Uptime Kuma 支持多种维护窗口类型
来源: server/model/maintenance.js90-96 src/pages/EditMaintenance.vue91-97
维护窗口可以具有以下状态
状态由 Maintenance 类中的 getStatus() 方法确定,该方法检查窗口的配置、计时和活动标志。
来源: server/model/maintenance.js374-402 src/pages/ManageMaintenance.vue93-99
当监控受到有效维护窗口的影响时
MAINTENANCE 或 3)集成通过 monitor_maintenance 表处理,该表将监控与维护窗口关联起来。
来源: server/socket-handlers/maintenance-socket-handler.js78-111 server/api-router.js79-81
维护窗口会显示在状态页面上,以告知用户计划中的停机。集成通过 maintenance_status_page 表处理。
在状态页面上,维护窗口会显示
来源: server/socket-handlers/maintenance-socket-handler.js114-146 src/pages/StatusPage.vue271-282 server/model/status_page.js466-488
server/model/maintenance.js 中的 Maintenance 类处理存储和调度
toPublicJSON():将维护 Bean 转换为 JSON 对象jsonToBean():将 JSON 对象转换为维护 BeangenerateCron():根据选定的策略生成 cron 表达式run():启动维护调度stop():停止维护调度isUnderMaintenance():检查维护是否当前活动对于周期性维护,系统使用 Croner 库来根据 cron 表达式调度维护窗口。
来源: server/model/maintenance.js15-455
server/socket-handlers/maintenance-socket-handler.js 中的维护套接字处理程序处理客户端请求
addMaintenance:添加新的维护窗口editMaintenance:编辑现有的维护窗口addMonitorMaintenance:将监控与维护窗口关联addMaintenanceStatusPage:将状态页面与维护窗口关联deleteMaintenance:删除维护窗口pauseMaintenance:暂停维护窗口resumeMaintenance:恢复暂停的维护窗口来源: server/socket-handlers/maintenance-socket-handler.js14-337
加载状态页面时,系统会检查活动维护窗口
来源: server/model/status_page.js466-488
前端组件包括
EditMaintenance.vue:用于添加或编辑维护窗口的表单ManageMaintenance.vue:所有维护窗口的列表MaintenanceDetails.vue:特定维护窗口的详细信息MaintenanceTime.vue:显示时间详细信息的组件来源: src/pages/EditMaintenance.vue1-669 src/pages/ManageMaintenance.vue1-317 src/components/MaintenanceTime.vue1-61
此图显示了维护窗口的生命周期,从创建到计划、激活和结束。维护窗口也可以暂停和恢复。
来源: server/model/maintenance.js374-402 server/socket-handlers/maintenance-socket-handler.js270-336
此图显示了创建、编辑和激活维护窗口时的数据流。
来源: server/socket-handlers/maintenance-socket-handler.js16-146 server/model/maintenance.js203-293
此图显示了维护窗口的数据库模式及其与监控和状态页面的关系。
来源: server/socket-handlers/maintenance-socket-handler.js83-86 server/socket-handlers/maintenance-socket-handler.js118-121
此图显示了用户访问状态页面时,维护窗口的获取和显示方式。
来源: server/model/status_page.js262-297 src/pages/StatusPage.vue271-282
在“维护列表”页面,您可以
维护窗口状态有颜色编码
来源: src/pages/ManageMaintenance.vue42-60 src/pages/EditMaintenance.vue30-235