新闻详情

新闻详情

首页 / 资讯中心 / 详情

falcon-plus 主机维护重置 API 实战:通过 DELETE /api/v1/host/maintain 批量清除主机维护窗口

发布时间:2026/9/29 2:20:10来源:尧图网络
falcon-plus 主机维护重置 API 实战:通过 DELETE /api/v1/host/maintain 批量清除主机维护窗口
运维观测指标监控告警【免费下载链接】falcon-plusAn open-source and enterprise-level monitoring system.项目地址https://gitcode.com/gh_mirrors/fa/falcon-plus点击查看免费下载本文讲解 Open-Falconfalcon-plus监控平台中「重置主机维护」接口的完整使用方式。该接口用于在主机上线、故障恢复或维护计划提前结束时批量清除主机维护窗口使其重新纳入监控与告警体系。读完本文你将掌握该 DELETE 接口的认证方式、请求体格式、响应语义、异常处理并能从源码层面理解维护窗口是如何影响 hbs 下发的监控策略的。接口概览接口路径/api/v1/host/maintainHTTP 方法DELETE功能按主机 ID 列表或主机名列表将指定主机的维护起始时间与结束时间全部清零即「取消维护状态」认证要求需要有效的 Session登录会话详见 Session 认证文档路由位置该路由注册于 modules/api/app/controller/host/host_routes.go对应hostr.DELETE(/host/maintain, UnsetMaintain)与它配套的是「设置维护」接口POST /api/v1/host/maintain对应SetMaintain其文档见 docs/_posts/Host/2017-01-01-host_maintain.md。本接口负责将维护状态重置回默认值。认证说明Session 必选所有/api/v1前缀下的接口都会经过utils.AuthSessionMidd中间件做会话校验见 modules/api/app/controller/host/host_routes.go 的hostr.Use(utils.AuthSessionMidd)。中间件的实现位于 modules/api/app/utils/auth_middle.go默认情况下如果请求未携带有效的 Session Token接口直接返回401 Unauthorized并中断请求只有在配置文件中开启skip_auth时才跳过校验。因此调用本接口前必须先完成登录获取Apitoken请求头。请求体Request请求体为 JSON支持两种互斥的定位方式二选一方式一按主机 ID 列表{ids: [1,2,3,4]}方式二按主机名列表{hosts: [host.a,host.b]}注意两种方式不能同时生效。从源码逻辑看当hosts非空时优先走主机名匹配否则当ids非空时走 ID 匹配若两者都为空则直接报错详见下文「异常处理」。响应Response操作成功后返回 HTTP200消息体格式如下Status: 200{ message: Through: hosts, Affect row: 2 }响应字段含义字段含义message操作结果描述固定为Through: 方式, Affect row: 行数Through本次匹配采用的方式取值为hosts或idsAffect row实际被更新重置维护状态的主机记录条数即数据库中受影响的行数响应封装逻辑见 modules/api/app/helper/simple_reponse.go成功时以message字段返回字符串信息并返回200失败时以error字段返回错误原因并带上对应的 HTTP 状态码。异常处理请求体非法JSON 无法被解析时接口返回400 Bad Request源码中的badstatus http.StatusBadRequest定义于 host_routes.go。缺少定位条件hosts与ids均为空时返回400错误信息为hosts or ids is required。数据库更新失败底层 UPDATE 执行出错时返回400并携带数据库错误信息。源码实现重置维护到底做了什么本接口的后端处理函数是UnsetMaintain位于 modules/api/app/controller/host/maintain_controller.go。其核心逻辑分三步解析请求通过c.Bind(inputs)将请求体绑定到APIUnsetMaintainInput结构体Hosts []string与Ids []int64。构建 UPDATE 语句按主机名匹配db.Falcon.Table(host).Where(hostname IN (?), inputs.Hosts).Updates(map[string]interface{}{maintain_begin: 0, maintain_end: 0})按 ID 匹配db.Falcon.Table(host).Where(id IN (?), inputs.Ids).Updates(...)同样将maintain_begin、maintain_end置为0。返回结果以fmt.Sprintf(Through: %s, Affect row: %d, method, dt.RowsAffected)组装成功消息其中RowsAffected即受影响行数。也就是说「重置维护」在数据库层面的动作就是把host表中对应记录的maintain_begin与maintain_end两个字段清零。这两个字段的默认值本身就是0定义于建表脚本 scripts/mysql/db_schema/2_portal-db-schema.sqlmaintain_begin INT UNSIGNED NOT NULL DEFAULT 0, maintain_end INT UNSIGNED NOT NULL DEFAULT 0,对应的 ORM 模型Host含MaintainBegin、MaintainEnd字段见 modules/api/app/model/falcon_portal/host.go。维护窗口与监控下发的联动原理理解本接口的价值需要知道维护窗口如何影响监控链路。hbs 模块在启动后周期性从数据库拉取「当前处于监控状态的主机」相关 SQL 见 modules/hbs/db/host.goselect id, hostname from host where maintain_begin now or maintain_end now从源码结构可以推断当一台主机的maintain_begin大于当前时间或maintain_end小于当前时间即处于维护窗口内时它不会出现在「受监控主机」缓存中。在 hbs 的 RPC 服务GetStrategies见 modules/hbs/rpc/hbs.go中策略下发会从cache.MonitoredHosts里过滤掉处于维护状态的主机因而维护期间这些主机不再获得监控策略judge 也就不会对其产生告警。由此可以得出结论调用本 DELETE 接口将维护时间清零后主机立即在 hbs 下一个缓存刷新周期内重新进入受监控集合策略恢复下发、告警恢复生效。这也是「维护结束、恢复正常监控」的标准操作。配套接口设置维护窗口重置操作常与设置操作配合使用。设置维护窗口使用POST /api/v1/host/maintain请求体示例取自 host_maintain.md{ ids: [1,2,3,4], maintain_begin: 1497951907, maintain_end: 1497951907 }或{ hosts: [host.a,host.b], maintain_begin: 1497951907, maintain_end: 1497951907 }其中maintain_begin与maintain_end为 Unix 时间戳秒且均为必填字段源码结构体APISetMaintainInput中带binding:required校验。对应的后端实现是SetMaintain见 maintain_controller.go它与重置接口共用同一路由前缀、同样的 hosts/ids 匹配规则只是把两个时间字段更新为请求传入的值。典型使用场景维护计划提前结束原定维护窗口未到期但机器已恢复调用本接口提前清除维护状态让告警尽快恢复批量重置一次对多台主机执行上线操作通过ids数组批量清除维护标志避免逐台操作与设置接口配合实现定时维护先用POST设置维护窗口到期或故障恢复后再用DELETE重置形成完整的维护生命周期管理。相关文档设置主机维护POST /api/v1/host/maintainSession 认证说明响应状态码约定Host 数据表结构定义赞分享运维观测指标监控告警【免费下载链接】falcon-plusAn open-source and enterprise-level monitoring system.项目地址https://gitcode.com/gh_mirrors/fa/falcon-plus点击查看免费下载相关推荐Potpie Context Engine 契约详解单一发行版、上下文绑定的公共门面与显式宿主组合Potpie Context Engine 契约详解单一发行版、上下文绑定的公共门面与显式宿主组合 导读 本文以 Potpie 仓库的规格变更记录 SPEC运维观测指标监控告警falcon-plus 主机关联主机组查询 API 实战GET /api/v1/host/{host_id}/hostgroup 全解析falcon plus 主机关联主机组查询 API 实战GET /api/v1/host/{host_id}/hostgroup 全解析 本篇文章围绕 Ope运维观测指标监控告警scan4all 中的 h2cSmuggler利用 HTTP/2 明文升级h2c实现请求走私绕过边缘代理访问控制scan4all 中的 h2cSmuggler利用 HTTP/2 明文升级h2c实现请求走私绕过边缘代理访问控制 导读 h2cSmuggler 是集成在运维观测指标监控告警上一篇Catppuccin Cursors打造视觉舒适的GTK/Plasma/Hyprland鼠标指针主题完全指南下一篇LTX-2与ComfyUI集成可视化音视频生成工作流搭建创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

EmEditor7 高亮配置实战:用正则把大日志变成彩色索引 2026/9/29 5:11:10

EmEditor7 高亮配置实战:用正则把大日志变成彩色索引

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Flask+YOLO+RTSP多路视频实时推理服务搭建 2026/9/29 5:11:10

Flask+YOLO+RTSP多路视频实时推理服务搭建

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
【OpenClaw】通过Nanobot源码学习架构---(3)AgentLoop 配置与验证:TaoToken 统一 Key 接入 settings.json 骨架 2026/9/29 5:11:04

【OpenClaw】通过Nanobot源码学习架构---(3)AgentLoop 配置与验证:TaoToken 统一 Key 接入 settings.json 骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Ubuntu内存分配全解:从free、malloc到OOM排查 2026/9/29 5:11:04

Ubuntu内存分配全解:从free、malloc到OOM排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
PLL电荷泵电流失配:影响、经典架构与仿真验证 2026/9/29 5:10:57

PLL电荷泵电流失配:影响、经典架构与仿真验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
HDFS生产实战:一致性、性能与Block异常诊断全链路 2026/9/29 5:10:57

HDFS生产实战:一致性、性能与Block异常诊断全链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉