Deep-Dive Report · HCL BigFix

HCL BigFix
Deep Understanding Report

For technical decision-makers who want to fully understand BigFix and rebuild a similar system. This report covers: the full BigFix architecture, the Fixlet/Relevance core mechanisms, the patch & threat-content supply chain, deployment and daily usage, a comparison with Zabbix and other tools, and a concrete rebuild design.

Note: This report is compiled from HCL/IBM official documentation and public sources (2026-10). Items marked needs-verification should be validated in a real environment. For personal study only.
Deep-Dive Report · HCL BigFix

HCL BigFix
深度理解报告

面向"想彻底理解 BigFix 并复刻一个类似系统"的技术决策者。本报告覆盖:BigFix 全景架构、Fixlet/Relevance 核心机制、威胁库与补丁内容供应链、部署使用实战、与 Zabbix 等竞品的对比,以及一份可落地的自研复刻技术设计。

说明:本报告基于 HCL/IBM 官方文档与公开资料整理(2026-10)。标注 待实测 的细节需要在真实环境中验证。报告仅供个人学习使用。

1Executive Summary: What BigFix Is and Why It Matters

Core This chapter gives you five judgments that frame the whole report.

1.1 BigFix in One Sentence

HCL BigFix (formerly IBM BigFix / IBM Endpoint Manager) is a content-driven endpoint and patch management platform: one server manages physical, virtual, and cloud endpoints worldwide through a "Content" mechanism — scanning for patch vulnerabilities, executing baseline tasks, and continuously monitoring compliance. Its differentiator: most analysis and execution work is pushed down to the Agent on each endpoint, rather than computed centrally by the server.

1.2 Five Core Judgments

Value = architecture, not features. Nearly every tool can push patches (WSUS, SCCM, Ansible...). BigFix's moat is "Agent-side Relevance evaluation" — the evaluation logic runs locally on endpoints, the server only coordinates. This yields 250,000 endpoints per server, second-level visibility, and offline autonomy — hard for competitors to replicate.
The threat library is a content supply chain. BigFix's patch library is a "Sites" system: the official content team (Application Engineering Team) continuously turns vendor patches (Microsoft/Oracle/Adobe...) into Fixlets (evaluation conditions + remediation actions), pushed via the Content Delivery cloud. Customers subscribe per site (masthead) — no need to research vulnerabilities themselves.
Relevance language is the soul. It is not a script template but a full query language (like SQL to a database) that describes "which machines need this patch" and "whether the patch is installed." The content team writes Fixlets with it; customers write custom baselines and reports with it.
Closed-loop self-healing. Agent evaluates continuously → detects non-compliance → executes remediation (auto or manual) → re-evaluates to confirm the fix. That is why BigFix compresses remediation cycles from weeks to hours.
Rebuilding is feasible, with trade-offs. Your "remote install + status reporting" is the core subset of BigFix — architecturally fully feasible (Agent + Server + API). But the threat-content production is BigFix's real asset; when rebuilding, focus on "content format + distribution protocol" compatibility, not on re-creating the content itself.

1.3 Report Structure

ChapterAnswers
2 ArchitectureWhat components make up BigFix? How does data flow?
3 Core MechanismsWhat exactly are Fixlet/Relevance/Action/Baseline, and how do they cooperate?
4 Patch Content Supply ChainWhere does patch content come from? How is it produced and consumed?
5 Deployment & UsageHow to set up a real environment, deploy patches, and view status?
6 Competitive ComparisonCan Zabbix replace it? What are SCCM/WSUS/ManageEngine's positions?
7 Rebuild DesignHow to design your own BigFix? How to stay API-compatible?
8 Roadmap & AppendixImplementation roadmap, glossary, references.

1结论先行:BigFix 是什么,为什么值钱

核心 这一章给你五个判断,作为整份报告的纲。

1.1 BigFix 一句话定义

HCL BigFix(原 IBM BigFix / IBM Endpoint Manager) 是一套内容驱动的端点管理与补丁管理平台:一台服务器通过"内容(Content)"机制,管理分布在全球的物理机、虚拟机与云主机——扫描补丁漏洞、执行基线任务、持续监控合规状态。它的独特之处在于:绝大部分分析和执行工作被"推"到了每台终端上的 Agent 里完成,而不是由服务器集中计算。

1.2 五个核心判断

价值 = 架构,不是功能。补丁下发几乎所有工具都能做(WSUS、SCCM、Ansible…),BigFix 的护城河是"Agent 端 Relevance 评估"——评估逻辑在终端本地跑,服务器只做协调。这带来 单服务器支撑 25 万端点、秒级可见性、断网自治三大能力,是竞品难以复制的。
威胁库 = 内容供应链。BigFix 的补丁库本质是一套"内容站点(Sites)"体系:官方内容团队(Application Engineering Team)持续把厂商补丁(微软/甲骨文/Adobe…)加工成 Fixlet(评估条件 + 修复动作),通过 Content Delivery 云服务推送。客户按站点订阅(masthead),无需自己研究漏洞。
Relevance 语言是灵魂。它不是脚本模板,而是一套完整的查询语言(类似 SQL 之于数据库),用于描述"什么样的机器需要这个补丁"和"补丁装没装上"。内容团队靠它写 Fixlet,客户靠它自定义基线与报表。
闭环自愈。Agent 持续评估 → 发现不合规 → 自动/手动执行修复 → 再次评估确认修复。这就是 BigFix 能把"修复周期从几周压缩到几小时"的原因。
复刻可行,但有取舍。你要做的"远程安装 + 状态上报"是 BigFix 的核心子集,架构上完全可行(Agent + Server + API);但威胁库内容生产是 BigFix 的真正资产,自研时应聚焦"内容格式 + 分发协议"的兼容,而非重造内容本身。

1.3 本报告结构

章节回答什么问题
2 全景架构BigFix 由哪些组件组成?数据怎么流动?
3 核心机制深挖Fixlet/Relevance/Action/Baseline 到底是什么、怎么协作?
4 威胁库供应链补丁内容从哪来?官方团队怎么生产?客户怎么消费?
5 部署与使用实战真实环境怎么搭、怎么下发补丁、怎么看状态?
6 竞品对比Zabbix 能替代吗?SCCM/WSUS/ManageEngine 各是什么定位?
7 自研复刻设计你自己的 BigFix 怎么设计?API 怎么兼容?
8 路线图与附录实施路线、术语表、参考来源。

2BigFix Architecture Overview

Core To understand BigFix, first understand its components and how "content" flows.

2.1 The Four Core Components

ComponentRoleKey capabilities
Agent (client)Installed on every managed machine (physical/virtual/cloud)Uses <10MB RAM; continuously evaluates Relevance locally; executes remediation actions; autonomous offline; can be promoted to a Relay
RelayOptional intermediate caching node (can cascade)Hundreds of clients point to one Relay, which makes a single request to the Server; distributes content, aggregates reports; promotion takes minutes
ServerCore coordinator + databasePulls Fixlets from the Internet; coordinates content flow; stores results (SQL Server database); one server supports up to 250,000 endpoints
ConsoleOperator interfaceView network status, deploy content, manage baselines, monitor remediation progress; plus WebUI / Web Reports

2.2 Data Flow (see it in one diagram)

            +-------------+   Fixlet content (Content Delivery cloud)
            |   Console    |<------------+
            +------+------+             |
                   | operator deploys    |
            +------v------+             |
            |    Server   |<------------+
            |  (SQL DB)   |  subscribes to site mastheads, pulls Fixlets
            +------+------+
                   | content + policy push (HTTPS)
            +------v------+
            |    Relay    |<---- hundreds of clients point to one Relay
            +------+------+
                   | distribute content / aggregate reports
            +------v------+
            |    Agent    |  <- local Relevance evaluation
            |  (each box)  |  <- executes Action remediation
            +-------------+  <- reports results/status

Content flow: Server pulls Fixlets from the Internet → distributes to Relays → relays to Agents → Agent evaluates relevance locally → reports which Fixlets are "relevant" → Server aggregates to the Console. Operators see "which machines network-wide are missing which patch," deploy an action with one click, and Agents re-evaluate to confirm after execution.

2.3 Why It Scales to 250,000 Endpoints (the architectural philosophy)

In traditional centralized architectures (e.g., WSUS + polling management servers), the server scans and pushes to each machine, so load grows linearly with endpoints. BigFix inverts this:

  • Evaluation happens on the Agent: each machine's Agent runs the Fixlet's Relevance itself — the server never probes machine by machine. This is the single biggest load saving.
  • Relay aggregation: hundreds of endpoints share a Relay; between Relay and Server there are only a few requests (dedup + compression).
  • Event-driven reporting: Agents report only when relevance changes (new patch relevant / remediation done), not periodic heartbeat floods.
  • Offline autonomy: disconnected machines keep evaluating against local policy; they sync incrementally on reconnect — so VPN/remote-office environments stay manageable.
One-liner: BigFix gives the "computing" to the endpoints (Agent), keeps the "managing" on the server (Server), and uses Relays as "delivery aggregation." That is the secret of 250,000 endpoints.

2.4 Extended Components (awareness)

ComponentPurpose
DSA (Disaster Server Architecture)Multi-server disaster recovery; automatic takeover if a server fails
BigFix Compliance / PatchCompliance scanning and patch management product lines (same platform)
BigFix LifecycleSoftware distribution, OS deployment, configuration management
BigFix InventoryHardware/software asset inventory
BigFix AEXAgent automation engine; integrates with ITSM (ServiceNow) approval flows
BigFix Query / ExplorerRelevance-based data query/analysis (REST API)

2BigFix 全景架构

核心 理解 BigFix 先理解它的组件和"内容"如何流动。

2.1 四大核心组件

组件角色关键能力
Agent(客户端)装在每台被管机器上(物理/虚拟/云)占内存 <10MB;持续在本地评估 Relevance;执行修复动作;离线也能自治;可升级为 Relay
Relay(中继)可选的中转缓存节点(可级联)数百客户端指向一个 Relay,Relay 只向 Server 请求一次;分发内容、聚合上报;Promote 只需几分钟
Server(服务器)核心协调器 + 数据库从 Internet 拉取 Fixlet;协调内容流;存储结果(SQL Server 数据库);一台支撑最高 25 万端点
Console(控制台)操作员界面查看网络状态、部署内容、管理基线、监控修复进度;另有 WebUI / Web Reports

2.2 数据流(一张图看懂)

            ┌─────────────┐   Fixlet 内容(Content Delivery 云)
            │   Console    │◄────────────┐
            └──────┬──────┘             │
                   │ 操作员下发任务        │
            ┌──────▼──────┐             │
            │    Server   │◄────────────┘
            │  (SQL DB)   │  订阅站点 masthead, 拉取 Fixlet
            └──────┬──────┘
                   │ 内容+策略下发(HTTPS)
            ┌──────▼──────┐
            │    Relay    │◄──── 数百客户端指向一个 Relay
            └──────┬──────┘
                   │ 分发内容 / 聚合上报
            ┌──────▼──────┐
            │    Agent    │  ← 本地 Relevance 评估
            │  (每台终端)   │  ← 执行 Action 修复
            └─────────────┘  ← 上报结果/状态

内容流:Server 从 Internet 拉取 Fixlet → 分发给 Relay → 中转到 Agent → Agent 本地评估相关性 → 上报哪些 Fixlet "相关" → Server 汇总到 Console。操作员在 Console 看到"全网哪些机器缺哪个补丁",一键下发动作,Agent 执行后再次评估确认。

2.3 为什么能撑 25 万端点(架构哲学)

传统集中式架构(如 WSUS + 管理服务器轮询)中,服务器要逐台扫描、逐台下发,负载随端点线性增长。BigFix 反其道:

  • 评估在 Agent 端:Fixlet 的 Relevance 由每台机器的 Agent 自己跑,服务器不用逐台"探测"——这是最大的负载节省。
  • Relay 聚合:数百端点共享一个 Relay,Relay 与 Server 之间只有少量请求(去重 + 压缩)。
  • 事件驱动上报:Agent 只在"相关性变化"时上报(如新补丁相关 / 修复完成),不是周期心跳轰炸。
  • 离线自治:断网的机器 Agent 继续按本地策略评估,恢复连接后增量同步——所以 VPN/离线办公环境也能管。
一句话:BigFix 把"算"的活给了终端(Agent),把"管"的活留给服务器(Server),中间用 Relay 做"快递聚合"。这就是 25 万端点的秘密。

2.4 扩展组件(了解即可)

组件用途
DSA(Disaster Server Architecture)多服务器灾备,主服务器故障时自动接管
BigFix Compliance / Patch合规扫描与补丁管理产品线(基于同一平台)
BigFix Lifecycle软件分发、OS 部署、配置管理
BigFix Inventory软硬件资产盘点
BigFix AEXAgent 自动化引擎,可对接 ITSM(ServiceNow)审批流
BigFix Query / Explorer基于 Relevance 的数据查询/分析(REST API)

3Core Mechanisms: Fixlet / Relevance / Action / Baseline

Core This is BigFix's "operating system" — understand it and you truly understand BigFix.

3.1 Content Is Everything in BigFix

BigFix's official definition: "The platform is a dynamic, content-driven messaging and management system that distributes the work of managing IT infrastructures out to the managed devices themselves, the agents." Content is a generic term — it may be data to distribute, instructions to run, or queries to execute on targets. All content travels as Fixlet messages.

The four content types (must be clear):

TypeWhat it isExample
FixletA "detect + remediate" bundle: Relevance (is it relevant?) + Action (remediation) + description"Java 8u161 Update Available" (detect version + download/install)
TaskAn execution task, not necessarily with relevance detection"Restart all machines", "clean temp files"
BaselineAn ordered collection of Fixlets/Tasks (e.g., a security baseline)"Windows security hardening baseline" (dozens of config items)
AnalysisProperty query sets, periodically collecting and reporting data"Collect disk space / installed-patch list network-wide"

3.2 Relevance Language: The Soul of BigFix (focus)

Relevance Language is BigFix's own query language for describing and retrieving information from endpoints/servers. Two flavors:

  • Client Relevance: executes locally on each Agent, querying the local machine. Used for: a Fixlet's applicability (does this machine need this patch?), an Action's success criteria (is the patch installed?), and Analysis property collection. Analogy: it is BigFix's "SQL".
  • Session Relevance: executes on the Server, querying the BigFix database. Used for: custom reports, dashboards, REST API integration.

Core syntax concepts (get the gist and you're in):

# Existence checks
exists file "/etc/hosts"                      -> True/False
exists folder "/var/tmp"
exists package "libxml2" of rpm

# Comparison checks (operators differ by object type)
number of processors = 1                      -> True
(version of package "libxml2" of rpm) >= "2.9.1"

# Filtering clause (whose + it, iterate and filter)
(files whose (it ends with ".log") of folder "/var/log")

# Conditional logic
if (exists file "/etc/passwd") then "linux" else "windows"

# Common inspectors (information retrievers)
name of operating system
version of operating system
ram (memory) size
IP addresses of net adapters
names of services whose (state of it = "Running")
Why Relevance matters: traditional patch tools do "list comparison" (download list → compare installed patches). BigFix uses Relevance for arbitrary-dimension state judgment — not just "is the patch installed," but "is the config file compliant," "is the service running," "is the software version sufficient." This language lets content authors (vendors or customers) express intent precisely — and lets you write your own baselines.

3.3 Fixlet Structure (what a patch message looks like)

Fixlet: "Security Update for Windows (KB5000000)"
+-- Relevance (applicability conditions; ALL must be True)
|    +-- exists patch "KB5000000" (registry) = False   <- not yet installed
|    +-- version of operating system >= "10.0"         <- version matches
+-- Action (remediation steps, Action Script language)
|    +-- prefetch "http://download.../patch.msu"       <- download the patch
|    +-- wait / execute "wusa.exe KB5000000.msu"       <- silent install
|    +-- restart (optional)
+-- Success Criteria (again Relevance)
|    +-- exists patch "KB5000000" (registry) = True    <- installed
+-- Description / impact / risk / reference links
+-- Metadata: site, CVE, affected systems, Supersedes relations

Key point: both a Fixlet's "relevance" and its "success criteria" are expressed in Relevance. The Agent's flow: all Relevance True → Fixlet is "relevant" → report → operator runs the Action → re-evaluate Relevance (success criteria) → confirm the fix.

3.4 Action: The Agent-Side Execution Language

Action Script is the cross-platform scripting language inside a Fixlet that performs remediation. Common commands:

prefetch "URL" sha1="..." sha256="..."      # pre-download file (hash-verified)
wait "..."                                    # wait
execute "installer.exe /quiet"                # run a command
run "script.sh"                               # run a script
delete "path"                                 # delete
copy "src" "dst"                              # copy
createfile until=endofsection                 # generate file content
registry key ...                              # modify registry (Windows)
restart / reboot                              # reboot
requires ...                                  # prerequisites

An Action is "taken" by the operator in the Console → target selected (all relevant machines / a computer group) → effective time set → Agents pull and execute → progress and results report back.

3.5 Baseline: Bundling Content into a "Baseline Task"

Baseline = an ordered collection of Fixlets/Tasks, deployed in one shot to complete multiple configurations. This maps exactly to your project's "after VM deployment, execute a specific baseline per purpose":

Baseline "Web Server Security Baseline"
+-- Fixlet: Install KB5000000 (patch)
+-- Fixlet: Install KB5000001
+-- Task: Disable SMBv1
+-- Task: Set firewall rules to allow only 80/443
+-- Task: Disable default shares
+-- Analysis: Collect baseline compliance state

Baselines have compliance evaluation: every Fixlet inside has Relevance, so the Agent can report "this baseline is 60% complete on this machine," and the Console shows network-wide baseline compliance rates.

3.6 The Full Closed Loop (put it together)

Content arrives: the Server pulls new Fixlets from Content Delivery (e.g., Microsoft releases a patch → the official team produces a Fixlet).
Relevance evaluation: Agents periodically (default minutes) evaluate each Fixlet's Relevance; locally relevant → marked relevant and reported.
Operator decides: the Console shows "N machines relevant network-wide"; the operator reviews and Takes Action (immediate/scheduled).
Remediation runs: Agents pull the Action, run the Action Script (download + silent install), and report progress.
Re-evaluation confirms: after the Action, Relevance re-evaluates (success criteria); patch installed → Fixlet no longer relevant → status becomes "compliant." Loop closed.

3核心机制深挖:Fixlet / Relevance / Action / Baseline

核心 这一章是 BigFix 的"操作系统",理解它才算真正理解 BigFix。

3.1 内容(Content)是 BigFix 的一切

BigFix 的官方定义:"平台是动态的、内容驱动的消息与管理系统,把管理工作的执行分散到被管设备(Agent)上。"内容(Content)是泛称,可能是一段要分发的数据、一条要在目标上运行的指令、或一个要在目标上执行的查询。所有内容以 Fixlet 消息为载体。

内容的四种类型(必须分清):

类型是什么例子
Fixlet一条"发现 + 修复"打包内容:Relevance(判断是否相关)+ Action(修复动作)+ 说明"Java 8u161 更新可用"(检测版本+下载安装)
Task执行型任务,不一定带"相关性检测""重启所有机器"、"清理临时文件"
Baseline一组 Fixlet/Task 的集合,按序执行(如"安全基线")"Windows 安全加固基线"(几十条配置项)
Analysis属性查询集,周期性采集数据上报"收集全网磁盘空间/已装补丁清单"

3.2 Relevance 语言:BigFix 的灵魂(重点)

Relevance Language 是 BigFix 自研的查询语言,用来描述和检索终端/服务器的信息。它分两种:

  • Client Relevance(客户端相关性语言):在每台 Agent 本地执行,查询本机状态。用于:Fixlet 的适用性判断(这台机器需要这个补丁吗?)、Action 的成功标准(补丁装上了吗?)、Analysis 的属性采集。考试类比:它是 BigFix 的"SQL"。
  • Session Relevance(会话相关性语言):在 Server 端执行,查询 BigFix 数据库。用于:自定义报表、仪表盘、REST API 集成。

核心语法概念(看懂就入门):

# 存在性判断
exists file "/etc/hosts"                      → True/False
exists folder "/var/tmp"
exists package "libxml2" of rpm

# 比较判断(不同对象类型有不同运算符)
number of processors = 1                      → True
(version of package "libxml2" of rpm) >= "2.9.1"

# 过滤子句(whose + it,遍历并筛选)
(files whose (it ends with ".log") of folder "/var/log")

# 条件逻辑
if (exists file "/etc/passwd") then "linux" else "windows"

# 常见 Inspectors(信息检索器)
name of operating system
version of operating system
ram (memory) size
IP addresses of net adapters
names of services whose (state of it = "Running")
理解 Relevance 的价值:传统补丁工具用"清单比对"(下载列表→比对已装补丁),BigFix 用 Relevance 做任意维度状态判断——不只是"补丁装没装",还能判断"配置文件合不合规""服务启没启动""软件版本够不够"。这套语言让内容作者(厂商或客户)都能精确表达意图,也让你可以自己写基线。

3.3 Fixlet 的结构(一条补丁消息长什么样)

Fixlet: "Security Update for Windows (KB5000000)"
├─ Relevance(适用性条件, 全部为True才相关)
│    ├─ exists patch "KB5000000" (registry) = False   ← 没装过
│    └─ version of operating system >= "10.0"         ← 版本匹配
├─ Action(修复动作, Action Script 语言)
│    ├─ prefetch "http://download.../patch.msu"       ← 下载补丁
│    ├─ wait / execute "wusa.exe KB5000000.msu"       ← 静默安装
│    └─ restart (可选)
├─ Success Criteria(成功标准, 又是 Relevance)
│    └─ exists patch "KB5000000" (registry) = True    ← 装上了
├─ 描述/影响/风险/参考链接
└─ 元数据: 站点、CVE、影响系统、Supersedes关系

关键点:Fixlet 的"相关性"和"成功标准"都用 Relevance 表达。Agent 评估流程:Relevance 全为 True → Fixlet"相关"(relevant)→ 上报 → 操作员执行 Action → 跑完再评估 Relevance(成功标准)→ 确认修复。

3.4 Action:Agent 端执行的语言

Action Script 是 Fixlet 里执行修复动作的脚本语言,跨平台。常用命令:

prefetch "URL" sha1="..." sha256="..."      # 预下载文件(带哈希校验)
wait "..."                                    # 等待
execute "installer.exe /quiet"                # 执行命令
run "script.sh"                               # 运行脚本
delete "path"                                 # 删除
copy "src" "dst"                              # 复制
createfile until=endofsection                 # 生成文件内容
registry key ...                              # 改注册表(Windows)
restart / reboot                              # 重启
requires ...                                  # 前置条件

Action 由操作员在 Console 中"发起(Take Action)"→ 可选择目标(所有相关机器/指定计算机组)→ 设定生效时间 → Agent 拉取并执行 → 上报进度与结果。

3.5 Baseline:把一堆内容打包成"基线任务"

Baseline(基线) = 一组 Fixlet/Task 的有序集合,一次下发完成多项配置。这正好对应你项目里"虚拟机部署完成后按用途执行特定基线任务"的场景:

Baseline "Web Server 安全基线"
├─ Fixlet: 安装 KB5000000(补丁)
├─ Fixlet: 安装 KB5000001
├─ Task: 禁用 SMBv1
├─ Task: 设置防火墙规则只开放 80/443
├─ Task: 关闭默认共享
└─ Analysis: 采集基线合规状态

基线有合规评估能力:Baseline 内的每个 Fixlet 都有 Relevance,Agent 评估后能得出"该基线在本机完成 60%"这类状态,Console 可看到全网基线合规率。

3.6 完整闭环(串起来)

内容到达:Server 从 Content Delivery 云拉取新 Fixlet(如微软发布补丁 → 官方团队产出 Fixlet)。
相关性评估:Agent 周期性(默认几分钟)评估每个 Fixlet 的 Relevance,本机相关 → 标记 relevant 并上报。
操作员决策:Console 显示"全网 N 台机器相关",操作员审核后 Take Action(立即/定时)。
执行修复:Agent 拉取 Action,跑 Action Script(下载+静默安装),上报进度。
复评确认:Action 完成后 Relevance 重新评估(成功标准),补丁已装 → Fixlet 不再相关 → 状态变为"合规"。闭环完成。

4Patch Content Supply Chain: Where Patch Content Comes From and How It Is Managed

Core · the part you care most about BigFix's patch library is not "a downloaded database" — it is a continuously running content supply chain. This chapter dissects: information sources → the official content team → the sites system → customer consumption → quality assurance.

4.1 Information Sources: How They Know "What to Patch"

The official BigFix content team tracks vendor official vulnerability and patch release channels. Core sources:

Vendor/sourceInformation channelCorresponding BigFix content site
MicrosoftMSRC security advisories, Microsoft Update Catalog, monthly Patch TuesdayPatches for Windows / Updates for Windows Applications
Oracle (Java etc.)Critical Patch Update (CPU, quarterly)Updates for Windows/Linux Applications (incl. Java)
AdobeSecurity bulletins (Acrobat/Reader/Flash)Updates for Windows Applications
Google (Chrome)Chrome Release channelsChrome update Fixlets
Linux distrosDistro security bulletins and repos (RHEL/CentOS/Ubuntu/Debian/SLES)Patches for Linux / per-distro sites
ApplemacOS security updatesPatches for Mac OS X
Third-party tools7-Zip, VLC, Notepad++ vendor releasesUpdates for Windows/Linux Applications
SLA (service level): BigFix commits to release-time targets for common vendor patches (e.g., Microsoft Patch Tuesday patches usually get Fixlets within 24-48 hours; exact SLA varies by site/version). This is a core buying reason: content is ready the moment a patch drops — customers don't research it themselves.

4.2 How the Official Content Team Works (the content production pipeline)

HCL/IBM's Application Engineering Team produces patch Fixlets. The flow is roughly:

Monitor releases: watch vendor channels; capture new patches (KB number, CVE, download URL, dependencies).
Analyze the blast radius: determine which OS versions/architectures/languages apply; design Relevance conditions ("how to tell a machine needs it").
Author the Fixlet: write download + silent-install steps in Action Script (prefetch with SHA checks, run the installer, optional reboot).
Lab test: BigFix validates every Fixlet in its own test lab; issues found are written as "Notes" attached to the message (e.g., "the default IE upgrade package will force a restart"), giving operators workaround hints.
Publish to the site: Fixlets ship with a site version bump (e.g., "Updates for Windows Applications version 1102"), pushed to subscribers via Content Delivery.
Maintain & respond: customer-reported issues (dead download URLs, HTTP→HTTPS redirect breaking downloads) get fixed and re-released; Supersedes relations and Corrupt Patch detection are maintained.
Quality details (real-world complexity): patch management is not just "download + install." BigFix content also handles: Superseded patches — old patches replaced by new ones stop being relevant automatically, avoiding redundant installs; Corrupt patches — detecting the "started but didn't finish" intermediate state and prompting reinstall; dependencies and prerequisites; language/architecture splits (one patch = multiple Fixlets for x86/x64/multiple languages). These details are the "depth" of the patch library.

4.3 The Sites System: How Customers Consume Patches

Patch content is organized into Sites; customers consume it via subscriptions. Core mechanics:

  • Masthead (.efxm file): a site's "ID card," containing the site URL and subscription keys. Getting and activating a masthead = subscribing to the site; the Server then pulls that site's content on schedule.
  • Three site sources: IBM/HCL official sites (Patches for Windows etc.), external vendor sites (Tenable and other security vendors), and custom sites (customer-authored Fixlets).
  • Domains: sites group by function (e.g., the "Patch Management" domain contains per-OS patch sites); the Console browses by domain.
  • Default subscriptions: installation auto-subscribes to management/maintenance sites; other sites are subscribed per license terms.
Common patch sites in a customer environment (example):
  Patches for Windows                 <- Windows OS patches
  Updates for Windows Applications    <- Windows app patches (Java/Chrome/Adobe...)
  Patches for Linux                   <- Linux distro patches
  Patches for Mac OS X                <- macOS patches
  Custom Sites (customer-authored)    <- internal apps/baselines

4.4 Content Delivery Cloud: How Content Reaches Customers

HCL runs Content Delivery, a cloud distribution service. Customer Servers pull site updates on a subscription schedule (usually every few hours), then distribute via Relays network-wide. For air-gapped environments, the Airgap tool (BES Download Cacher) moves content manually — a key capability for defense/banking isolated networks.

Comparison insight: WSUS's patch library = a single Microsoft list; SCCM patches = Microsoft + optional third-party, but content production is opaque. BigFix's patch library = an open content-site ecosystem — official team + external vendors + customer-authored, all in one unified format (Fixlet), consumed by one Agent. That is "platform vs tool."

4.5 Beyond Security Patches: Where Baseline Content Comes From

Beyond patches, BigFix provides Security Configuration Baselines, typically based on industry benchmarks:

  • CIS Benchmarks (Center for Internet Security) — Windows/Linux/middleware hardening checks.
  • Vendor hardening guides (Microsoft security baselines, Red Hat hardening guides).
  • Compliance framework mappings (MLPS/等保, PCI-DSS, NIST requirements mapped to checks).

These baselines ship as "Relevance check + Action remediation" Fixlets; customers subscribe or author their own in the same format — exactly the reference prototype for your "different baseline per VM purpose" project.

4威胁库供应链:补丁内容从哪来、怎么管理

核心 · 你最关心的部分 BigFix 的补丁库不是"一个下载好的数据库",而是一条持续运转的内容供应链。这一章拆开讲:信息来源 → 官方内容团队 → 内容站点体系 → 客户消费 → 质量保障。

4.1 信息来源:他们从哪里知道"要打什么补丁"

BigFix 官方内容团队盯的是厂商官方漏洞与补丁发布渠道,核心来源:

厂商/来源信息渠道BigFix 对应内容站点
MicrosoftMSRC 安全公告、Microsoft Update Catalog、每月 Patch TuesdayPatches for Windows / Updates for Windows Applications
Oracle(Java 等)Critical Patch Update(CPU,每季度)Updates for Windows/Linux Applications(含 Java 专项)
Adobe安全公告(Acrobat/Reader/Flash)Updates for Windows Applications
Google(Chrome)Chrome Release 渠道Chrome 更新 Fixlet
Linux 发行版各发行版安全公告与仓库(RHEL/CentOS/Ubuntu/Debian/SLES)Patches for Linux / 各发行版站点
ApplemacOS 安全更新Patches for Mac OS X
第三方工具7-Zip、VLC、Notepad++ 等厂商发布Updates for Windows/Linux Applications
SLA(服务水平):BigFix 对常见厂商补丁有发布时效承诺(如微软 Patch Tuesday 补丁通常 24-48 小时内出 Fixlet,具体 SLA 因站点/版本而异)——这正是客户买它的核心理由之一:补丁一发布,内容马上就位,不用客户自己研究。

4.2 官方内容团队怎么工作(内容生产流水线)

HCL/IBM 的 Application Engineering Team(应用工程团队) 负责生产补丁 Fixlet。流程大致是:

监控发布:盯厂商公告渠道,捕获新补丁(KB 号、CVE、下载 URL、依赖关系)。
分析影响面:确定补丁适用于哪些 OS 版本/架构/语言,设计 Relevance 条件(怎么判断"这台机器需要它")。
编写 Fixlet:用 Action Script 写下载+静默安装步骤(prefetch 带 SHA 校验、执行安装、可选重启)。
实验室测试:BigFix 在自己的测试实验室验证每个 Fixlet,发现的问题写成"Notes"附加到消息上(如"默认 IE 升级包会强制重启"),给操作员规避提示。
发布到站点:Fixlet 随站点版本号更新(如 "Updates for Windows Applications version 1102"),通过 Content Delivery 云推送给订阅客户。
维护与反馈:客户反馈的问题(如下载 URL 失效、HTTP→HTTPS 重定向导致下载失败)会修正并发布更新;同时维护 Supersedes(取代)关系、Corrupt Patch(损坏补丁)检测。
质量细节(真实世界的复杂性):补丁管理不只是"下载+安装"。BigFix 内容里还有:Superseded(被取代补丁)——旧补丁被新补丁取代后自动不再相关,避免重复安装;Corrupt Patch(损坏补丁)——检测"补丁开始安装但未完成"的中间状态,提示重装;依赖与前置条件;语言/架构区分(同一补丁分 x86/x64/多语言多个 Fixlet)。这些细节构成了补丁库的"深度"。

4.3 内容站点(Sites)体系:客户怎么消费补丁

补丁内容按 站点(Site) 组织,客户通过 订阅(Subscription) 拉取。核心机制:

  • Masthead(.efxm 文件):站点的"身份证",含站点 URL 与订阅密钥。客户获取 masthead 并激活 = 订阅该站点,Server 就会按调度拉取该站点内容。
  • 站点来源分三类:IBM/HCL 官方站点(Patches for Windows 等)、外部供应商站点(Tenable 等安全厂商)、自定义站点(客户自写 Fixlet)。
  • 域(Domain):站点按功能归组(如"补丁管理域"包含各 OS 的补丁站点),Console 按域浏览。
  • 自动订阅:安装时默认订阅管理与维护站点;其他站点按许可证条款订阅。
客户环境里常见的补丁站点(举例):
  Patches for Windows                 ← Windows 系统补丁
  Updates for Windows Applications    ← Windows 应用补丁(Java/Chrome/Adobe...)
  Patches for Linux                   ← Linux 发行版补丁
  Patches for Mac OS X                ← macOS 补丁
  Custom Sites (客户自建)             ← 内部应用/基线

4.4 Content Delivery 云:内容怎么到达客户

HCL 运行 Content Delivery(内容分发云服务),客户 Server 按订阅调度从云拉取站点更新(通常每几小时一次)。拉取后可再通过 Relay 分发到全网。对无法直连 Internet 的隔离环境,提供 Airgap 工具(BES Download Cacher)手动搬运内容——这是军工/银行等隔离网络场景的关键能力。

对比理解:WSUS 的补丁库 = 微软单源列表;SCCM 补丁 = 微软+可选第三方,但内容生产不透明。BigFix 的补丁库 = 一个开放的内容站点生态——官方团队+外部供应商+客户自建,全部用统一格式(Fixlet),一套 Agent 就能消费。这是"平台 vs 工具"的差别。

4.5 安全补丁之外:基线内容从哪来

除了补丁,BigFix 还提供 安全配置基线(Security Configuration Baselines),通常基于行业基准:

  • CIS Benchmarks(互联网安全中心基准)——Windows/Linux/中间件加固检查项。
  • 厂商加固指南(如微软安全基线、Red Hat 加固指南)。
  • 合规框架映射(等保、PCI-DSS、NIST 等要求映射成检查项)。

这些基线同样以"Relevance 检查 + Action 修复"的 Fixlet 形式提供,客户可订阅或参考格式自建——正好是你项目里"不同用途虚拟机执行不同基线任务"的参考原型。

5Deployment & Usage in Practice

Important The complete path from zero to a working BigFix environment and your first patch/baseline deployment. Items marked needs-verification follow official docs and should be validated in a real environment.

5.1 Choosing a Deployment Topology

ScaleRecommended topologyNotes
Small (<500 endpoints)Single Server + AgentsThe Server doubles as a Relay; direct connections are fine
Medium (500 - 5000)Single Server + 1-N RelaysPlace Relays per segment/site to cut WAN traffic
Large (5000+)Multiple Servers (DSA DR) + cascaded RelaysRelays can cascade; Servers provide DR
Key decision: the Relay is "optional but strongly recommended" — it aggregates hundreds of client requests into one, and is the key to scale. Promoting an Agent to a Relay takes minutes and needs no dedicated hardware.

5.2 Installing the Server (overview steps)

Prepare Windows Server + SQL Server (the BigFix Server stores data in a SQL database).
Run the BigFix Server installer; specify database, service account, SSL certificate.
Configure Internet access (to pull Content Delivery) and intranet access (to accept Agent connections).
Install the Console (operator UI) and generate an Operator key. needs-verification: version differences per HCL's official install guide.

5.3 Deploying the Agent (three ways)

MethodWhenNotes
Manual installFew machines / testingRun the agent installer pointing at the Server/Relay URL
GPO / login-script pushWindows domain environmentsDistribute via Active Directory Group Policy
Bake into image / cloud-initBulk VM deployment (your case!)Install the Agent in the VM template or cloud-init/custom script; new VMs are managed on first boot
Your project: your workflow is "execute baseline tasks via Agent after VM deployment" — the standard BigFix practice is to pre-bake the Agent into the template; a new VM registers and evaluates baselines automatically on boot, with zero manual steps.

5.4 Daily Operation: Deploying Patches (Console flow)

See relevance: open the Patch domain in the Console → pick a patch site → see the Fixlet list and "relevant computer count" (Relevance results).
Take action: right-click a Fixlet → Take Action → choose targets (all relevant machines / computer group / specific machines) → set an effective time.
Monitor progress: the Action panel shows downloaded/executed/succeeded/failed counts, updating in near real time.
Confirm the fix: after the Action, the Fixlet's "relevant count" drops — machines with the patch installed are no longer relevant, confirming the closed loop.
Baselines work the same: take the same action on a Baseline to deploy a whole set of configurations at once.

5.5 Status Monitoring & Reporting (matches your requirement #2)

BigFix's "see the current state of every machine" is delivered by Analysis + Properties:

  • Analysis: predefined or custom property-query sets; Agents collect and report on a query interval (installed-patch list, disk, CPU, service state).
  • Computer Properties: literally "the result of a Relevance query" — show as custom Console columns or dashboards.
  • Web Reports / BigFix Query: Session Relevance against the database — charts, exports, multi-server aggregation.
  • REST API: /api/query?relevance=... or POST JSON — feed status into your own systems. This is exactly your integration point for "every machine reports state to me."
# REST API example: query all computer names (Session Relevance)
curl -u user:pass "https://bf-server:52311/api/query?relevance=name+of+client+computers"

5.6 Common Ops Quick Reference

TaskHow
See if an Agent is onlineSort the Console computer list by "last report time"; offline machines show up
Deploy to a specific machine groupCreate a Computer Group (static or Relevance-driven dynamic) → Take Action on the group
Scheduled tasksSet a "start time" on Take Action; or use AEX / REST API for complex orchestration
Patch an air-gapped environmentAirgap tool (BES Download Cacher) pulls content manually, then import
View patch compliance rateWeb Reports patch reports / Patch Compliance dashboard
Author a custom baselineWrite Relevance checks + Action Script remediation → bundle into a Baseline

5部署与使用实战

重要 从零搭一套 BigFix 环境并下发第一个补丁/基线的完整路径。标注 待实测 的细节以官方文档为准,需在真实环境验证。

5.1 部署拓扑选择

规模推荐拓扑说明
小(<500 端点)单 Server + AgentServer 兼 Relay,直连即可
中(500 - 5000)单 Server + 1-N Relay按网段/站点放 Relay,减少跨 WAN 流量
大(5000+)多 Server(DSA 灾备)+ Relay 分级Relay 可级联,Server 做灾备
关键决策:Relay 是"可选但强烈建议"的组件——它把数百客户端的请求聚合成一个请求,是撑大规模的关键。Promote(把 Agent 升级为 Relay)只需几分钟,无需专用硬件。

5.2 安装 Server(概览步骤)

准备 Windows Server + SQL Server(BigFix Server 依赖 SQL 数据库存储)。
运行 BigFix Server 安装包,指定数据库、服务账号、SSL 证书。
配置 Internet 访问(拉取 Content Delivery)与内网访问(接受 Agent 连接)。
安装 Console(操作员界面)并生成 Operator 密钥。 待实测:具体版本差异以 HCL 官方安装指南为准。

5.3 部署 Agent 到目标机器(三种方式)

方式适用场景说明
手动安装少量机器/测试运行 agent 安装包,指向 Server/Relay URL
GPO / 登录脚本推送Windows 域环境利用 AD 组策略分发安装包
预置到镜像 / 云初始化虚拟机批量部署(你的场景!)把 Agent 装进 VM 模板或 cloud-init/定制脚本,新 VM 上线即被管理
对应你的项目:你在做"虚拟机部署完成后通过 Agent 执行基线任务"——BigFix 的常规做法就是把 Agent 预置进模板,新 VM 一开机就自动注册、自动评估基线,无需人工介入。

5.4 日常操作:下发补丁(Console 操作流)

看相关性:Console 打开 Patch 域 → 选补丁站点 → 看到 Fixlet 列表及"相关计算机数"(Relevance 评估结果)。
发起动作:右键 Fixlet → Take Action → 选择目标(所有相关机器 / 计算机组 / 指定机器)→ 设生效时间。
监控进度:Action 面板显示已下载/已执行/已成功/失败的机器数,进度实时更新。
确认修复:Action 完成后看 Fixlet 的"相关数"下降——已装补丁的机器不再相关,即确认闭环。
基线同理:对 Baseline 做同样操作,一次下发一组配置。

5.5 状态监控与上报(对应你的需求二)

BigFix 的"看每台机器现状"由 Analysis + Properties(属性) 实现:

  • Analysis:预定义或自定义的属性查询集,Agent 按查询间隔周期性采集并上报(如已装补丁清单、磁盘、CPU、服务状态)。
  • Computer Properties:就是"一个 Relevance 查询的结果",可以在 Console 自定义列、建仪表盘。
  • Web Reports / BigFix Query:基于 Session Relevance 查询数据库,出图表、导出、聚合多 Server 数据。
  • REST API:/api/query?relevance=... 或 POST JSON,把状态数据接进你自己的系统——这正好是你做"每台机器向我上报状态"的对接点。
# REST API 示例:查询所有机器名和操作系统(Session Relevance)
curl -u user:pass "https://bf-server:52311/api/query?relevance=name+of+client+computers"

5.6 常见运维任务速查

任务做法
看 Agent 是否在线Console 计算机列表按"最后上报时间"排序;离线机器会显示
给特定机器组下发建 Computer Group(静态或 Relevance 动态组)→ Take Action 选组
定时任务Take Action 时设"开始时间";或用 AEX / REST API 做复杂编排
隔离环境打补丁Airgap 工具(BES Download Cacher)手动拉内容再导入
查看补丁合规率Web Reports 补丁报告 / Patch Compliance 仪表盘
自定义基线用 Relevance 写检查项 + Action Script 写修复 → 打包成 Baseline

6Competitive Comparison: Can Zabbix Replace It?

Important Directly answers your "can Zabbix also do this" question, plus a positioning map.

6.1 First, the Answer: Can Zabbix Do Patch Management

Conclusion: Zabbix covers half of your needs (status monitoring & reporting), but the other half (content library + remediation actions) is not its design goal.

RequirementZabbixBigFix
Remote commands/scriptsYes (Remote Commands), but no patch content libraryYes (Action Script) with a full patch content library
Status monitoring & reportingStrength (mature metrics/alerts/charts)Yes (Analysis/Properties), but oriented to "state" not "monitoring metrics"
Patch scanning & install✘ Not native (needs custom scripts + comparison logic)Core capability (Fixlet + patch sites)
Baseline compliance tasks✘ Must build it yourselfCore capability (Baseline + Relevance compliance)
Threat-content supply chainNone (does not produce patch content)Official team continuously produces + site subscriptions
Large-scale architectureProxy tiers, matureRelay tiers, 250k endpoints per server
PositioningMonitoringEndpoint & patch management
One-liner: Zabbix is the "eyes" (monitoring); BigFix is the "hands" (deploying patches + executing baselines). Many customers use both: Zabbix watches performance alerts, BigFix manages patch compliance. The system you want to build is fundamentally "hands" — so BigFix is the more relevant reference than Zabbix.

6.2 Patch-Management Tool Landscape

ToolPositioningPatch libraryAgent-side evaluationBest for
BigFixEnterprise patch + endpoint management platformOfficial team + vendors + custom sitesYes (Relevance)Very large scale, mixed OS, air-gapped
Microsoft WSUSWindows patch toolMicrosoft onlyNo (server polling)Pure-Windows small/medium
Microsoft SCCM/IntuneEnterprise endpoint suiteMicrosoft + third-partyPartial (client policy polling)Pure-Microsoft, deep AD/Intune integration
ManageEngine Endpoint CentralMid-range patch + asset mgmtVendor patch libraryClient pollingSmall/medium, cost-sensitive
Ansible/Chef/PuppetConfig management / automationNone (author playbooks)No (SSH/API pull)Server config mgmt, not patch libraries
Zabbix/Nagios/PrometheusMonitoringNoneNo (metric collection)Performance/availability monitoring

6.3 BigFix's Moat (why customers choose it)

  • Scale & performance: 250k endpoints per server, second-level visibility — far lower server resource demands than SCCM.
  • Patch content quality & speed: official team + SLA + lab testing + Supersedes/Corrupt handling — customers get ready-made content with "zero research."
  • Cross-platform unity: Windows / Linux / macOS with one Agent and one Console — no per-platform tooling.
  • Offline autonomy: disconnected machines keep evaluating and executing against local policy; incremental sync on reconnect — VPN/remote-friendly.
  • Programmability: Relevance language + REST API let customers deeply customize baselines and integrate.
  • Open content ecosystem: official + vendor + custom sites mixed — not a closed list.
Takeaway for you: if you rebuild, the thing most worth copying is the Agent-side Relevance evaluation model + the content-site distribution system (the architectural advantage) — not the "patch content itself" (that is someone else's team and accumulated time).

6竞品对比:Zabbix 能替代吗?

重要 直接回答你"Zabbix 是不是也能做到"的问题,并给一张定位全景图。

6.1 先回答:Zabbix 能不能做补丁管理

结论:Zabbix 能解决你需求的一半(状态监控与上报),但补丁/基线任务的另一半(内容库 + 修复动作)不是它的设计目标。

需求ZabbixBigFix
远程执行命令/脚本可以(Remote Commands),但无补丁内容库可以(Action Script),且有完整补丁内容库
状态监控上报强项(指标采集/告警/图表非常成熟)可以(Analysis/Properties),但偏"状态"而非"监控指标"
补丁扫描与安装✘ 不原生支持(需自己写脚本+比对逻辑)核心能力(Fixlet + 补丁站点)
基线合规任务✘ 需自己实现核心能力(Baseline + Relevance 合规评估)
威胁库供应链无(不生产补丁内容)官方团队持续生产 + 站点订阅
大规模架构Proxy 分层,成熟Relay 分层,单 Server 25 万端点
定位监控(Monitoring)端点管理与补丁(Endpoint & Patch Mgmt)
一句话:Zabbix 是"眼睛"(监控),BigFix 是"手"(下发补丁+执行基线)。很多客户两个一起用:Zabbix 盯性能告警,BigFix 管补丁合规。你想自研的系统,本质是"手"——所以参考 BigFix 而非 Zabbix 更对口。

6.2 补丁管理工具全景定位

工具定位补丁库Agent 端评估适用场景
BigFix企业级补丁+端点管理平台官方团队+供应商+自建站点是(Relevance)超大规模、混合 OS、隔离网络
Microsoft WSUSWindows 补丁工具仅微软否(服务器轮询)纯 Windows 小中型环境
Microsoft SCCM/Intune企业端点管理套件微软+第三方部分(客户端策略轮询)纯微软生态、深度集成 AD/Intune
ManageEngine Endpoint Central中端补丁+资产管理厂商补丁库客户端轮询中小型、想省钱
Ansible/Chef/Puppet配置管理/自动化无(需自建 playbook)无(SSH/API 拉取)服务器配置管理,非补丁库
Zabbix/Nagios/Prometheus监控无无(指标采集)性能/可用性监控

6.3 BigFix 的差异化护城河(客户为什么选它)

  • 规模与性能:单 Server 25 万端点、秒级可见性——比 SCCM 的服务器资源需求低得多。
  • 补丁内容质量与时效:官方团队 + SLA 承诺 + 实验室测试 + Supersedes/Corrupt 处理,客户"零研究"拿现成内容。
  • 跨平台统一:Windows / Linux / macOS 一套 Agent 一套 Console,不用每平台一套工具。
  • 离线自治:断网机器也能按本地策略评估执行,恢复后增量同步——VPN/远程办公友好。
  • 可编程性:Relevance 语言 + REST API,客户能深度自定义基线和集成。
  • 内容生态开放性:官方+供应商+自建站点混用,不是封闭列表。
对你的启示:如果你要复刻,最值得抄的是 Agent 端 Relevance 评估模型 + 内容站点分发体系(这是架构优势),而不是去抄"补丁内容本身"(那是别人的团队和时间的积累)。

7Rebuild Design: Building Your Own BigFix

Core · your end goal Building on the first six chapters, here is a concrete rebuild design: architecture, API compatibility, data model, and the implementation path for your two core features.

7.1 Scoping the Rebuild (define the boundary first)

Your goal: a client Agent + a server, compatible with BigFix API design, implementing two core features: ① remote install tasks (patching); ② status monitoring & reporting.

Honest boundary: fully cloning BigFix (250k endpoints + full threat library) is not a small project. Scope it as: architecturally compatible with BigFix's model (Agent-side evaluation + content distribution + REST API), functionally a subset (remote tasks + status reporting). Your system can then naturally "grow" into a BigFix-like shape, while the first release stays controllable.

7.2 Target Architecture (mapped to BigFix's four layers)

BigFix componentYour componentFirst release
AgentAgent client (installed on managed machines)Resident service: connects to the Server to pull tasks, executes locally, collects status. Suggest Go (single cross-platform binary) or Python (fast to build)
RelayRelay (optional)Skip in v1; add an "HTTP cache proxy" for scale later — leave the architectural slot
ServerServerTask management + Agent registration + status aggregation + REST API. Suggest Go/Java (concurrency) or Node/Python (speed)
ConsoleWeb consoleBrowser UI: machine list, task deploy, status dashboard. REST API is its backend

7.3 Core Design Decisions (the "soul" to copy)

Agent-side evaluation model (most worth copying): don't have the Server poll machine-by-machine; push "judgment logic" down to the Agent. Design a lightweight evaluation expression language (a Relevance subset); Agents evaluate periodically and report only on state changes. This is the root of BigFix's 250k-endpoint scale.
Content = data + metadata: every "patch/task" is a content object: { id, applicability (evaluation expression), steps (script/command), success criteria (evaluation expression), metadata }. The Server only stores and distributes; the Agent decides "does this content apply to me, and did it succeed."
Agent pull, not Server push: Agents periodically pull "tasks for me" from the Server, execute, and report results. Benefits: machines behind NAT/firewalls are manageable (no inbound connection needed), naturally fits cloud VMs.
REST API as the universal interface: every Server capability is a REST API; the Web console and third-party integrations both go through it — this is how you stay "compatible with BigFix API design."

7.4 API Design (modeled on BigFix's real API)

BigFix's real REST API core is Session Relevance queries: `/api/query?relevance=...` queries the database with the Relevance language. You don't need to clone the Relevance language itself, but you can clone its interface style:

Your APIMethodNotes (BigFix counterpart)
/api/computersGETList all machines and state (computer queries)
/api/computers/{id}/propertiesGETOne machine's reported properties (Computer Properties)
/api/contentGET/POSTContent (patch/task) list and creation (Fixlet site content)
/api/actionsPOSTLaunch a remote task: { contentId, targetComputers[], schedule } (Take Action)
/api/actions/{id}/statusGETTask execution status (dispatched/running/success/failed/not-applicable) (Action Status)
/api/query?filter=...GET/POSTGeneric query entry (Session Relevance — start with simple filters, evolve to a query language)
# Example: launch a remote install task
POST /api/actions
{
  "contentId": "patch-kb5000000",
  "targets": ["vm-001", "vm-002"],
  "schedule": "immediate",
  "timeoutSec": 1800
}
-> 200 { "actionId": "act-12345", "status": "dispatched" }

# Example: Agent pulls tasks (agent's view)
GET /api/agent/actions?agentId=vm-001&ack=auth-token
-> { "actions": [{ "id": "act-12345", "steps": [{ "type": "exec", "cmd": "wusa.exe KB5000000.msu /quiet" }] }] }

# Example: Agent reports status
POST /api/agent/status
{ "agentId": "vm-001", "properties": { "os": "Windows Server 2019", "patches": ["KB5000000"], "lastBoot": "2026-10-01T08:00:00Z" } }

7.5 Agent Client Design (implementing the two core features)

Feature 1: Remote install tasks

Agent lifecycle:
1. Register: first boot -> POST /api/agent/register -> get agentId + auth token
2. Poll: every N seconds -> GET /api/agent/actions?agentId=... -> pending tasks
3. Execute: run the task steps (download/unpack/run script/silent install)
4. Report: POST /api/agent/action-result -> success/failure/exit code/log
5. Idempotency: tasks carry an idempotencyKey; Agents dedupe / resume
Points: ① verify file downloads with SHA-256 (BigFix's prefetch carries hashes too); ② silent-install commands vary by platform (Windows: msiexec /qn / wusa /quiet; Linux: rpm -Uvh / apt install); ③ tasks need timeout and reboot semantics.

Feature 2: Status monitoring & reporting

Two collection modes:
1. Property reporting: Agent periodically collects preset properties -> reports to Server
   e.g., os version / installed patches / disk space / CPU / service state / last boot
2. Event reporting: immediate report on state change (patch installed / service down)
   e.g., POST /api/agent/events { "type": "patch-installed", "patch": "KB5000000" }

Server side:
- store latest property snapshot (current state) + event timeline (history)
- aggregate: online rate / patch compliance / baseline completion
- display: Web console dashboard / REST API queries

7.6 Technology Selection (for your decision)

PartRecommendedAlternativesWhy
Agent languageGoRust / Python (packaged)Single static binary, cross-platform (Win/Linux), good concurrency
Server languageGo or JavaNode.js / PythonHigh-concurrency long connections; Go keeps one stack with the Agent
DatabasePostgreSQLMySQL / SQLite (small)Great JSON support (properties/events), mature
Agent-Server transportHTTPS + JSON RESTgRPC (higher perf)Compatibility, firewall-friendly, simple
AuthAgent tokens (issued at registration)mTLS (higher security)Tokens suffice for v1; mTLS as a later hardening
Web consoleVue/React + REST—Naturally pairs with the REST API

7.7 Relationship with Zabbix (complement, not either-or)

If you already run Zabbix, the recommendation: Zabbix keeps doing metrics/alerts; your system does task deploy/patch/baseline — interconnect via webhook/API (e.g., a Zabbix alert triggers your remediation task). This is exactly how many BigFix customers really use it.

7.8 Milestone Roadmap (first release in 4-6 weeks)

Week 1 · Skeleton: Server + PostgreSQL + Agent register/auth + basic REST API (computers/actions).
Week 2 · Remote tasks: Agent polls for tasks + executes scripts + reports results + Web console deploy button.
Week 3 · Status reporting: property collection + event reporting + machine list/detail page + online status.
Week 4 · Content model: content objects (applicability/steps/success criteria) + a simple evaluation-expression engine.
Week 5 · Hardening: file hash verification, task timeout/retry/idempotency, logging & audit.
Week 6 · Polish: compatibility tests, deployment scripts (Linux/Windows Agent), docs.

7自研复刻设计:做一个你自己的 BigFix

核心 · 你的最终目标 结合前六章的理解,给出一个可落地的复刻设计:架构、API 兼容、数据模型、两个核心功能的实现路径。

7.1 复刻目标界定(先划范围)

你的目标:客户端 Agent + 服务端 Server,兼容 BigFix API 设计,实现两个基本功能:① 远程安装任务(打补丁);② 状态监控与上报。

诚实的边界:完整复刻 BigFix(25万端点 + 完整威胁库)不是一个小项目。建议把范围定为:架构上兼容 BigFix 的模型(Agent 端评估 + 内容分发 + REST API),功能上实现子集(远程任务 + 状态上报)。这样你的系统天然能"长"成 BigFix 的样子,但首版交付可控。

7.2 目标架构(对标 BigFix 四层)

BigFix 组件你的组件首版实现
AgentAgent 客户端(装在被管机器)常驻服务:连接 Server 拉取任务、本地执行、采集状态上报。语言建议 Go(单二进制跨平台)或 Python(开发快)
RelayRelay 中继(可选)首版可不做;大并发时再加"HTTP 缓存代理"即可,架构预留
ServerServer 服务端任务管理 + Agent 注册 + 状态聚合 + REST API。语言建议 Go/Java(并发强)或 Node/Python(快)
ConsoleWeb 控制台浏览器界面:机器列表、任务下发、状态看板。REST API 是它的后端

7.3 核心设计决策(对标 BigFix 的"灵魂")

Agent 端评估模型(最值得抄):不要让 Server 逐台轮询,而是把"判断逻辑"下发给 Agent 本地执行。设计一个轻量 评估表达式语言(类似 Relevance 子集),Agent 周期评估,状态变化才上报。这是 BigFix 撑 25 万端点的根本。
内容 = 数据 + 元数据:每个"补丁/任务"是一个内容对象:{ id, 适用条件(评估表达式), 执行步骤(脚本/命令), 成功标准(评估表达式), 元数据 }。Server 只管存储与分发,Agent 负责"这个内容对我适不适用、执行成没成功"。
Agent 拉取(Pull)而非 Server 推送(Push):Agent 周期性向 Server 拉取"给我的任务",执行后上报结果。好处:NAT 后面/防火墙后面的机器也能被管理(不需要入站连接),天然适配云主机。
REST API 为一切接口:Server 所有能力暴露为 REST API,Web 控制台和第三方集成都走 API——这也让你能"兼容 BigFix API 设计"。

7.4 API 设计(对标 BigFix 的真实 API)

BigFix 的真实 REST API 核心是 Session Relevance 查询:`/api/query?relevance=...` 用 Relevance 语言查数据库。你不需要复刻 Relevance 语言本身,但可以复刻它的接口风格:

你的 API方法说明(对标 BigFix)
/api/computersGET列出所有机器及状态(对标 Computer 查询)
/api/computers/{id}/propertiesGET某台机器的上报属性(对标 Computer Properties)
/api/contentGET/POST内容(补丁/任务)列表与创建(对标 Fixlet 站点内容)
/api/actionsPOST发起远程任务:{ contentId, targetComputers[], schedule }(对标 Take Action)
/api/actions/{id}/statusGET任务执行状态(已下发/执行中/成功/失败/不适用)(对标 Action Status)
/api/query?filter=...GET/POST通用查询入口(对标 Session Relevance——先做简单过滤器,后续可演进为查询语言)
# 示例:发起一个远程安装任务
POST /api/actions
{
  "contentId": "patch-kb5000000",
  "targets": ["vm-001", "vm-002"],
  "schedule": "immediate",
  "timeoutSec": 1800
}
→ 200 { "actionId": "act-12345", "status": "dispatched" }

# 示例:Agent 拉取任务(Agent 角度)
GET /api/agent/actions?agentId=vm-001&ack=auth-token
→ { "actions": [{ "id": "act-12345", "steps": [{ "type": "exec", "cmd": "wusa.exe KB5000000.msu /quiet" }] }] }

# 示例:Agent 上报状态
POST /api/agent/status
{ "agentId": "vm-001", "properties": { "os": "Windows Server 2019", "patches": ["KB5000000"], "lastBoot": "2026-10-01T08:00:00Z" } }

7.5 Agent 客户端设计(两个核心功能的实现)

功能一:远程安装任务

Agent 生命周期:
1. 注册: 首次启动 → POST /api/agent/register → 拿 agentId + 认证令牌
2. 轮询: 每 N 秒 → GET /api/agent/actions?agentId=... → 拿到待执行任务
3. 执行: 按任务 steps 执行 (下载/解压/运行脚本/静默安装)
4. 上报: POST /api/agent/action-result → 成功/失败/退出码/日志
5. 幂等: 任务带 idempotencyKey, Agent 断点续传/去重
要点:① 下载文件建议带 SHA-256 校验(BigFix 的 prefetch 也带哈希);② 静默安装命令因平台而异(Windows: msiexec /qn / wusa /quiet;Linux: rpm -Uvh / apt install);③ 任务要支持 超时与重启 语义。

功能二:状态监控与上报

两种采集模式:
1. 属性上报(Property): Agent 周期采集预设属性 → 上报 Server
   例: os版本 / 已装补丁 / 磁盘空间 / CPU / 服务状态 / 最近开机时间
2. 事件上报(Event): 状态变化时即时上报 (如补丁装上/服务挂了)
   例: POST /api/agent/events { "type": "patch-installed", "patch": "KB5000000" }

Server 侧:
- 存最近一次属性快照(当前状态) + 事件时间线(历史)
- 聚合统计: 在线率 / 补丁合规率 / 基线完成度
- 展示: Web 控制台看板 / REST API 查询

7.6 技术选型建议(供你决策)

部分推荐备选理由
Agent 语言GoRust / Python(打包)单静态二进制、跨平台(Win/Linux)、并发好
Server 语言Go 或 JavaNode.js / Python高并发长连接;Go 与 Agent 同栈省心智
数据库PostgreSQLMySQL / SQLite(小规模)JSON 支持好(存属性/事件),成熟
Agent-Server 通信HTTPS + JSON RESTgRPC(性能更高)兼容性好、防火墙友好、实现简单
认证Agent 令牌(注册时签发)mTLS(高安全)首版令牌够用,mTLS 作为后续加固
Web 控制台Vue/React + REST—与 REST API 天然配对

7.7 与 Zabbix 的关系(建议补充而非二选一)

如果你已有 Zabbix 监控,建议:Zabbix 继续做指标监控/告警,你的系统做任务下发/补丁/基线——两者通过 Webhook/API 互通(如 Zabbix 告警触发你的修复任务)。这也正是很多 BigFix 客户的真实用法。

7.8 里程碑路线(首版 4-6 周)

第 1 周 · 骨架:Server + PostgreSQL + Agent 注册/认证 + 基础 REST API(computers/actions)。
第 2 周 · 远程任务:Agent 轮询拉任务 + 执行脚本 + 上报结果 + Web 控制台下发按钮。
第 3 周 · 状态上报:属性采集 + 事件上报 + 机器列表/详情页 + 在线状态。
第 4 周 · 内容模型:内容对象(适用条件/执行步骤/成功标准)+ 简单评估表达式引擎。
第 5 周 · 加固:文件哈希校验、任务超时/重试/幂等、日志与审计。
第 6 周 · 打磨:兼容性测试、部署脚本(Linux/Windows Agent)、文档。

8Roadmap · Glossary · Appendix

Reference Decision roadmap, must-know glossary, references, and disclaimer.

8.1 Your Decision Roadmap (pick one of three)

RouteBest forEffortOutcome
A. Monitoring only (use Zabbix)Only need "see machine state"LowDeploy Zabbix — mature and stable
B. Minimal patch/task system (BigFix subset)Need "remote install + status" and want code controlMedium (4-6 wks)Your Agent+Server+API, extensible
C. Full platform (BigFix-like)Building a product for long-term evolutionHigh (months + team)Near-BigFix capability, but the patch content supply chain remains the biggest cost
Advice: start with B (minimal rebuild), design per Chapter 7 with extension points (content model + evaluation expressions + REST API), and it naturally grows into C when needed. Don't start with C.

8.2 Glossary

TermMeaning
FixletA "detect + remediate" content item (Relevance evaluation + Action)
RelevanceBigFix's query language describing "which machines are relevant" and "was remediation successful"
Action / Action ScriptRemediation steps executed on the Agent (download/execute/reboot)
BaselineAn ordered collection of Fixlets/Tasks for baseline tasks
AnalysisProperty-query sets, periodically collecting endpoint data
SiteContent collection unit, pulled by subscription (official/vendor/custom)
Masthead (.efxm)A site's subscription credential (URL + keys)
Content DeliveryHCL's content distribution cloud service
Agent / Relay / Server / ConsoleThe four components: client / relay / server / console
RelevantA Fixlet's Relevance is true locally — this machine needs handling
SupersededOld patches replaced by newer ones (stop being relevant automatically)
Corrupt PatchDetected "started but not finished" broken-patch state
DSADisaster Server Architecture — multi-server DR

8.3 References

  • HCL BigFix Platform official docs (help.hcl-software.com/bigfix)
  • HCL BigFix Developer site (developer.bigfix.com) — Relevance language, REST API reference
  • IBM BigFix Patch official docs and user guides (content release mechanics)
  • BigFix official forum (forum.bigfix.com) — content release announcements, real ops cases
  • BigFix Getting Started Guide (architecture and scale PDF)

8.4 Disclaimer & Verification

Important: this report is compiled from public documentation. The following need validation in a real environment (marked needs-verification): version-specific differences, exact SLA numbers, REST API port & auth details, Agent installer platform support matrix, and the mapping of baseline content to CIS benchmarks. For production decisions, rely on the latest HCL official docs.
Closing words: what makes BigFix valuable is not "it can patch" — it is the content production (threat library) and endpoint autonomy (Agent evaluation) built as a system. To rebuild, the smart path is: copy its architectural mindset (Agent-side evaluation + content model + REST API), skip its content accumulation (the patch library), and first build a reliable system that deploys tasks and reports state. That is both a subset of BigFix and its real skeleton.

8路线图 · 术语表 · 附录

参考 决策路线图、必知术语、参考来源与免责声明。

8.1 给你的决策路线图(三选一)

路线适合投入产出
A. 只做监控上报(用 Zabbix)只需要"看每台机器状态"低Zabbix 部署即可,成熟稳定
B. 自研最小补丁/任务系统(对标 BigFix 子集)需要"远程安装+状态上报"且想掌控代码中(4-6 周)你的 Agent+Server+API,可扩展
C. 自研完整平台(对标 BigFix 全功能)要做成产品长期演进高(数月+团队)接近 BigFix 的能力,但补丁内容供应链仍是最大成本
建议:先走 B(自研最小系统),架构上按第 7 章设计留好扩展点(内容模型 + 评估表达式 + REST API),将来需要时自然长成 C。别一上来就做 C。

8.2 术语表

术语含义
Fixlet一条"发现+修复"内容(Relevance 评估 + Action 动作)
RelevanceBigFix 自研查询语言,描述"什么机器相关"和"是否修复成功"
Action / Action Script在 Agent 上执行的修复步骤(下载/执行/重启等)
Baseline一组 Fixlet/Task 的有序集合,用于基线任务
Analysis属性查询集,周期性采集终端数据上报
Site(站点)内容的集合单位,按订阅拉取(官方/供应商/自建)
Masthead(.efxm)站点的订阅凭证(URL + 密钥)
Content DeliveryHCL 的内容分发云服务
Agent / Relay / Server / Console客户端 / 中继 / 服务器 / 控制台四大组件
Relevant(相关)Fixlet 的 Relevance 在本机为真,表示该机需要处理
Superseded被新补丁取代的旧补丁(自动不再相关)
Corrupt Patch检测到"开始安装但未完成"的损坏补丁状态
DSADisaster Server Architecture 多服务器灾备

8.3 参考来源

  • HCL BigFix Platform 官方文档(help.hcl-software.com/bigfix)
  • HCL BigFix Developer 站点(developer.bigfix.com)— Relevance 语言、REST API 参考
  • IBM BigFix Patch 官方文档与用户指南(含内容发布机制说明)
  • BigFix 官方论坛(forum.bigfix.com)— 补丁内容发布公告、真实运维案例
  • BigFix Getting Started Guide(架构与规模说明 PDF)

8.4 免责与待实测声明

重要:本报告基于公开文档与资料整理。以下细节需在真实环境验证(标注 待实测):具体版本差异、SLA 具体数值、REST API 端口与认证细节、Agent 安装包的平台支持矩阵、基线内容与 CIS 基准的对应关系。生产环境决策请以 HCL 官方最新文档为准。
结语:BigFix 真正值钱的地方不是"能打补丁",而是它把内容生产(威胁库)和终端自治(Agent 评估)做成了体系。你要复刻,最聪明的路径是:抄它的架构心智(Agent 端评估 + 内容模型 + REST API),跳过它的内容积累(补丁库),先做出一个能下发任务、能上报状态的可靠系统。这既是 BigFix 的子集,也是它真正的骨架。