2026年Node.js B2B SaaS审计日志API选型指南
审计日志最初往往只是企业安全问卷上的一个条目。然后客户发生了一次安全事件。到那个时候,这个功能才从“打勾项”变成真正的基础设施。
对于向大型组织销售产品的Node.js SaaS公司来说,审计日志必须能够快速、可靠地回答一组简单问题:谁执行了操作,做了什么,哪个资源发生了变更,事件属于哪个租户,什么时候发生,请求来自哪里,客户能否搜索或导出,能否流入SIEM,以及这段历史是否可信。
这些需求与普通应用日志有本质区别。应用日志是为工程师调试服务而优化的;审计日志则是为了创建一份持久的、面向客户的记录,记录与安全相关和业务关键的操作。这种差异会影响模式设计、保留策略、存储完整性、多租户隔离、UI、导出格式和定价。
本指南比较2026年Node.js B2B SaaS的四种实用方案:WorkOS Audit Logs、CrowdStrike旗下的Pangea Secure Audit Log、作为开源/自托管选项的Retraced,以及完全自建。
快速推荐
对于大多数正在向高端市场扩张的B2B SaaS团队,WorkOS是最强的默认选择:当你需要面向客户的审计日志、结构化模式、Admin Portal访问和直接的SIEM流式传输,而不想自己构建产品层时,WorkOS很合适。
Pangea Secure Audit Log更适合以下场景:加密完整性、防篡改验证、长期保留分层、数据脱敏和安全证据比最完善的SaaS管理工作流更重要。
Retraced作为开源构建块仍然有用,尤其是在自托管很重要的时候;但应当把它当作你需要自己运维的基础设施来评估,而不是当成显然该买的新托管SaaS。BoxyHQ已被Ory收购,当前BoxyHQ注册页面表示不再接受新注册。
自建审计日志平台在有特殊数据驻留、隔离环境、监管或产品需求时可能合理,但比把事件写进数据库表要多得多的工作。
审计日志与应用日志
最常见的架构错误之一,就是把审计日志当作应用日志的第二份副本。
一个典型的Node.js应用日志可能像这样:
2026-08-27T01:24:13Z POST /api/projects/823 200 47ms
这对运维很有用。但一条有用的审计事件需要业务上下文:
{
"tenant_id": "org_42",
"action": "project.member_role_changed",
"actor": {
"type": "user",
"id": "usr_17",
"email": "[email protected]"
},
"target": {
"type": "project_member",
"id": "member_823"
},
"occurred_at": "2026-08-27T01:24:13.000Z",
"context": {
"ip": "203.0.113.8",
"user_agent": "Mozilla/5.0"
},
"metadata": {
"old_role": "member",
"new_role": "admin"
}
}
该事件可以由客户审查,按操作者或目标搜索,在调查期间导出,并流入SIEM。模式本身成为产品契约的一部分。
对比表
| 选项 | 最适合 | Node.js支持 | 面向客户的UI | SIEM / 导出 | 防篡改证据 | 保留模式 |
|---|---|---|---|---|---|---|
| WorkOS Audit Logs | B2B SaaS企业就绪 | 原生Node.js SDK | 强;Admin Portal + 私有访问 | 强;SIEM、对象存储、HTTP目标、CSV | 平台管理 | 按组织可配置保留 |
| Pangea Secure Audit Log | 安全/合规密集型SaaS | 原生Node.js SDK | Secure Audit Log Viewer | 搜索、导出、SIEM转发 | 非常强;Merkle树验证 | 热/温/冷分层,最长10年 |
| Retraced | 开源/自托管SaaS | 官方Node.js客户端 | 可嵌入查看器 | 搜索/导出 | 取决于部署 | 自行管理 |
| 自建 | 高度定制或受监管环境 | 完全控制 | 自己构建 | 自己构建 | 自己构建 | 自己构建 |
1. WorkOS Audit Logs
WorkOS是最容易推荐给典型B2B SaaS公司的选项,因为它把审计日志当作企业产品功能,而不只是存储API。
其当前Audit Logs产品支持Node.js和其他SDK,提供组织范围内的审计事件、actor/action/target/context结构、自定义元数据模式、模式验证、CSV导出、通过Admin Portal提供客户访问、日志流式传输到外部目标、可配置保留以及幂等事件创建。
当前WorkOS限流文档列出,每个API密钥每60秒可创建6,000条Audit Log事件。
为什么WorkOS适合B2B SaaS
关键优势不只是日志摄取,而是围绕这些数据的面向客户的工作流。
企业客户越来越希望审计事件进入他们已经在使用的工具。WorkOS支持将日志流式传输到Splunk、Datadog、Snowflake、S3、Google Cloud Storage和通用HTTP端点等目标。这意味着Node.js SaaS公司不必为每个客户安全团队构建单独的集成管道。
WorkOS Admin Portal还可以让客户配置企业能力,而无需每次变更都提工单。对于销售高价套餐的SaaS团队,这种管理体验很重要。
2026年8月WorkOS定价
当前WorkOS定价页面显示Audit Logs的月基础费为$0。
两项公布的用量费用是:
- 日志流式传输:每个SIEM连接每月$125
- 事件保留:每百万条存储事件每月$99
这个定价模型容易理解,但有一个重要含义。如果许多企业客户希望拥有自己的SIEM连接,对某些SaaS业务来说,连接定价可能比原始事件量更重要。
在设计套餐时,要决定SIEM流式传输是包含在Enterprise计划中、作为附加组件销售、限制为一个目标,还是与更长保留期打包。审计日志成本不仅是后端基础设施账单,也是套餐设计决策。
WorkOS保留策略
WorkOS于2026年8月4日发布的一篇文章称,审计日志默认保留30天,可以通过API将组织的保留期延长至365天。
这使得保留期成为可用的计划级能力。例如,Standard可以提供30天,Business 90天,Enterprise 365天,Enterprise Plus 365天加SIEM流式传输。
WorkOS最佳适用场景
当你向企业客户销售B2B SaaS、已经或可能使用WorkOS进行SSO/Directory Sync、需要完善的审计日志体验、希望无需构建连接器即可实现SIEM流式传输、偏好透明的列表定价,并希望购买产品层而不是自己运维时,选择WorkOS。
2. Pangea Secure Audit Log,现属CrowdStrike旗下
Pangea是另一种选择。其Secure Audit Log围绕防篡改存储和加密验证设计。
CrowdStrike于2025年9月宣布有意收购Pangea,CrowdStrike文件显示该收购于2025年9月26日完成。Pangea文档在2026年仍然活跃,现在以CrowdStrike品牌呈现。
对于买家来说,所有权变更很重要,因为应将该产品作为当前CrowdStrike/Pangea方向的一部分来评估,而不是把它当作几年前商业假设下的独立创业公司。
防篡改
Pangea使用Merkle树验证审计日志历史的完整性。其文档描述了针对单个事件和整体日志一致性的验证。
当前文档称,每满1小时或10,000个事件(以先到者为准)后,新的根哈希会发布到Arweave上的不可变公共账本中。
其目标是提供证据,证明事件在摄取后未被修改、历史事件未被静默删除、新事件未被无察觉地插入旧历史中。
对于服务安全敏感或受监管客户的SaaS产品,这比“我们有一个限制UPDATE权限的表”要强得多。
保留分层
当前Pangea文档描述了三个存储层级:
- 热层:针对搜索优化,最多保留14天
- 温层:可搜索/可导出,最多保留10年
- 冷层:面向归档,最多保留10年
这对有长期证据保留要求的客户很有用,并在交互式搜索与长期恢复之间形成清晰分离。
Node.js集成
Pangea为Secure Audit Log维护Node.js SDK。其事件模型包括actor、action、status、source、target、message、old、new和tenant_id等字段。它还提供搜索、导出、下载和验证能力。
当前v2批量端点每次最多接受1,000个事件。
定价考量
与WorkOS不同,本次审查获取的公开文档并未为Secure Audit Log提供稳定、简单的单价表。文档确实说明Secure Audit Log使用会消耗积分并可能产生费用,导出请求在执行前会检查可用积分。
采购时请在控制台或直接向供应商确认当前Pangea定价,而不是照搬第三方文章中的旧价格。
Pangea最佳适用场景
当加密证明是主要要求、审计日志完整性是安全故事的一部分、客户需要长期保留、脱敏和安全控制很重要,或者应用已经使用其他Pangea/CrowdStrike安全服务时,选择Pangea。
3. Retraced:开源与自托管审计日志
Retraced仍然有价值,但其2026年的定位需要更新。
Retraced GitHub仓库将其描述为完全开源的审计日志服务,带有可嵌入UI,可部署到自己的Kubernetes环境。仓库使用Apache 2.0许可证,并提供官方Node.js客户端。
历史上,Retraced与BoxyHQ密切相关。然而,Ory于2025年收购了BoxyHQ。当前BoxyHQ注册页面称,BoxyHQ已被收购,不再接受新注册,现有客户不受影响。
这意味着新的SaaS团队不应假设旧的Retraced托管服务定价和上线模式仍然是商业路径。
Retraced仍然有意义的场景
当你明确希望使用开源审计日志服务、必须自托管、平台已包含Kubernetes、想要可嵌入的日志查看器,或者更希望拥有源代码级控制而不是依赖托管API时,Retraced仍然有价值。
该仓库支持可搜索和可导出的审计日志,并提供Docker Compose和面向Kubernetes的部署路径。JavaScript客户端可以发布事件并为嵌入式UI签发查看器令牌。
2026年的重要提醒
开源并不自动意味着低运营成本。
自托管审计日志系统需要持久存储、备份、保留策略执行、搜索基础设施、租户隔离、加密、灾难恢复、升级管理、漏洞管理、访问控制、监控和导出管道。
对于一个小型工程团队,托管API的价格可能比拥有这套技术栈的真实人力成本更便宜。只有当基础设施控制本身成为要求,而不仅仅是因为许可证免费时,Retraced才最有吸引力。
4. 自建审计日志
许多Node.js团队最初用PostgreSQL表构建审计日志,包含tenant_id、user_id、action、JSON载荷和created_at。这不是一个糟糕的开始,只是它不是一个完整的审计日志产品。
缺失的工作通常稍后出现:防止编辑、证明完整性、索引多年数据、按租户保留、安全导出、面向客户的筛选、SIEM连接器、脱敏、数据驻留、法律保留、幂等性、重试行为、模式演进、API授权和大批量导出性能。
如果审计日志不是你的产品差异化功能,购买这层基础设施通常是理性的。
推荐的Node.js审计日志架构
无论你使用WorkOS、Pangea、Retraced还是自建存储,应用架构都应避免一种脆弱模式:用户请求成功但审计事件丢失。
更健壮的模式是:
HTTP request
|
v
Node.js business transaction
|
+--> Product database
|
+--> Audit outbox record
|
v
Background worker
|
v
Audit log provider
|
+-------+-------+
| |
v v
Customer viewer SIEM / archive
为什么使用发件箱模式?
如果应用先更新业务数据,再同步调用审计提供商,就会出现故障间隙:数据库更新成功,但外部审计调用超时。
事务性发件箱可以缩小这个间隙。业务变更和发件箱事件在同一数据库事务中写入。然后由后台工作线程将事件投递到审计提供商,并带重试和幂等性。
对于关键企业事件,这种可靠性通常值得增加一个组件。
供应商中立的TypeScript事件模型
即使外部提供商改变,也应在应用内部使用一个规范事件模型。
export type AuditActor =
| { type: "user"; id: string; email?: string }
| { type: "system"; id: string }
| { type: "api_key"; id: string };
export interface AuditTarget {
type: string;
id: string;
name?: string;
}
export interface AuditEvent {
id: string;
tenantId: string;
action: string;
occurredAt: string;
actor: AuditActor;
targets: AuditTarget[];
context?: {
ip?: string;
userAgent?: string;
requestId?: string;
};
metadata?: Record<string, string | number | boolean | null>;
}
然后通过AuditSink接口编写提供商适配器。这可以防止SaaS代码库的其余部分与某个供应商的事件格式紧密耦合。
B2B SaaS产品应该记录什么?
不要记录所有内容。记录在安全审查、事件响应、支持调查或客户管理期间重要的操作。
高价值类别包括:
- 身份验证事件
- 密码重置和MFA变更
- SSO配置变更
- 角色和权限变更
- API密钥创建或删除
- 成员邀请/移除
- 组织设置变更
- 大批量导出
- 对敏感记录的特权访问
- 订阅和支付方式变更
- Webhook密钥轮换
- IP允许列表变更
- SCIM变更
- 集成安装/移除
审计事件中不应包含什么
审计日志的保留时间通常比普通应用数据更长,因此数据最小化很重要。
避免存储:
- 密码
- 会话令牌
- 原始API密钥
- OAuth访问令牌
- 私有加密密钥
- 完整支付卡数据
- 不必要的请求体
- 嵌在URL中的密钥
- 审计目的不必要的敏感个人数据
如果需要旧值/新值,请明确列出可安全保留的字段。不要默认将整行数据库序列化到审计日志中。
多租户隔离是不可妥协的
对于SaaS,审计日志通常对客户可见。租户隔离错误因此是直接的数据泄露。
每个事件都应有一个不可变的租户或组织标识符。每次搜索、导出和查看器令牌都必须限定在该租户范围内。
不要只信任浏览器提供的组织ID。应基于经过认证的服务端会话、API密钥或经过验证的服务身份来解析组织范围。
SIEM流式传输比你预期更早变得重要
小客户通常对可筛选的审计日志页面感到满意。企业安全团队可能会要求Splunk、Datadog、S3、Snowflake、Google Cloud Storage、通用HTTP投递或其他SIEM目标。
这可能成为一个相当大的工程项目。这也是WorkOS变得有吸引力的原因之一:连接器层已经是产品的一部分。
如果你自托管,请在第一家企业客户提出要求之前规划流式架构。
保留策略应是产品决策
不要因为“听起来合理”就硬编码“90天”。
保留时长可能取决于合同层级、合规框架、地域要求、客户政策、事件类别或法律保留。
一个实用的SaaS模型是支持基于计划的默认值和客户特定的覆盖。存储层还应区分可热搜索数据、成本较低的温数据,以及仅归档的冷数据。
审计事件投递的可靠性规则
生产级Node.js实现应:
- 在投递前生成事件ID。
- 在提供商支持的地方使用幂等键。
- 在异步投递前持久化关键事件。
- 使用指数退避重试。
- 对反复失败使用死信队列。
- 对投递积压时间设置告警。
- 跟踪最后成功投递的事件。
- 当提供商返回429时绝不静默丢弃事件。
- 保留原始的
occurred_at时间戳。 - 将事件发生时间与摄取时间分开。
按SaaS阶段做出购买决策
PMF之前或小型B2B SaaS
从清晰的内部事件模型和简单的追加只写数据库表开始。不要过度设计UI。目标是避免以后重写事件语义。
成长中的B2B SaaS
如果企业交易开始要求SSO、SCIM、审计日志和安全问卷,WorkOS是最直接的默认选择。其价值在于工程速度。
安全密集型或受监管产品
如果证据完整性和长期保留是明确的产品要求,请认真评估Pangea Secure Audit Log。其防篡改验证模型是差异化优势。
自托管/私有云产品
如果客户要求审计基础设施部署在他们自己的环境中,像Retraced这样的开源系统可以作为一个有用的起点。为运维和依赖维护做预算。
超大型平台
在足够大的规模下,自定义系统可能在经济或架构上更合理。典型组件可能包括Kafka或其他持久事件总线、不可变对象存储、ClickHouse/OpenSearch、保留工作线程、租户感知的导出服务、SIEM连接器、加密完整性控制,以及专门的面向客户的审计日志服务。
到那时,审计日志是一个真正的平台,而不是一张表。
最终建议
对于2026年大多数Node.js B2B SaaS应用:
- 如果你想要最快路径获得企业级客户审计日志、SIEM流式传输和完善的管理体验,选择WorkOS Audit Logs。
- 如果加密防篡改、安全证据和长期保留是一等需求,选择Pangea Secure Audit Log。
- 当自托管和开源控制是明确要求时,选择Retraced;同时要认识到当前BoxyHQ/Ory商业过渡,以及你将承担的运维责任。
- 只有当你的部署、监管、规模或产品策略使审计日志成为你差异化基础设施的一部分时,才自建。
最重要的设计决策不是供应商,而是把审计日志当作持久的产品数据。
如果客户在他们使用你的产品时最糟糕的一天无法信任记录,那么无论添加第一个audit.log()调用有多容易,实现都已经失败。
常见问题
如果我已经使用Datadog或其他日志平台,还需要审计日志吗?
对于B2B企业级SaaS来说通常需要。运维日志平台为工程遥测优化;客户审计日志需要租户级产品语义、客户访问、保留策略、导出,并且通常需要SIEM集成。
可以把审计日志保存在PostgreSQL中吗?
可以,尤其是早期阶段。但普通可变表并不自动等于企业级审计日志方案。你仍然需要追加只写控制、访问隔离、导出、保留、查询性能、备份策略以及可能的防篡改证据。
审计日志投递应该阻塞API请求吗?
通常不应该。对于关键操作,应在业务变更的同一事务中写入审计发件箱记录,然后异步投递。
应该记录每一次数据库读取吗?
不一定。记录安全相关和合同上重要的读取,尤其是敏感导出或特权访问。记录每一条低价值读取会产生巨大成本和噪音。
Kafka是审计日志系统吗?
不是。Kafka可以成为投递管道的一部分,但你仍然需要持久保留、搜索、租户隔离、访问控制、客户UI、导出和证据完整性能力。
SaaS审计日志应保留多久?
没有统一答案。保留时长应由客户需求、合同、合规义务、数据最小化规则和产品套餐共同决定。
2026年8月27日验证的来源
- WorkOS Pricing: https://workos.com/pricing
- WorkOS Audit Logs: https://workos.com/audit-logs
- WorkOS Audit Logs Documentation: https://workos.com/docs/audit-logs
- WorkOS article published August 4, 2026: https://workos.com/blog/audit-logs-are-a-product-feature
- Pangea / CrowdStrike Secure Audit Log: https://pangea.cloud/docs/audit
- Pangea Tamperproofing: https://pangea.cloud/docs/audit/about-tamperproofing
- Pangea Retention Settings: https://pangea.cloud/docs/audit/getting-started/settings
- CrowdStrike acquisition announcement: https://ir.crowdstrike.com/news-releases/news-release-details/crowdstrike-acquire-pangea-secure-every-layer-enterprise-ai
- Retraced repository: https://github.com/retracedhq/retraced
- Retraced Node.js client: https://github.com/retracedhq/retraced-js
- BoxyHQ signup status: https://app.eu.boxyhq.com/auth/join
- Ory acquisition announcement: https://www.ory.com/blog/introducing-ory-polis-for-enterprise-single-sign-on