跳转到主要内容

审计日志

通过记录每一次操作,了解用户活动,以便快速响应事件、简化合规性并提高透明度。

作者:Perplexity Support
超过 2 个月前更新

Perplexity Enterprise 提供全面的审计日志功能,帮助组织跟踪用户活动和管理操作。

审计日志会捕获覆盖用户输入、Agent 步骤和答案的端到端查询,以及管理员所做的任何设置更改。 每个日志条目都会记录关键信息,例如“事件类型”(用户执行的操作)、事件发生时间,以及用户的详细信息,如电子邮箱和 IP 地址。 您可以在下方查看示例。

审计日志将实时传送至您通过 HTTP POST 请求配置的 Webhook 端点,为您提供组织内所有用户操作和系统事件的详细、按时间顺序排列的记录。

审计日志仅适用于拥有 50 个或以上席位,或至少有一名 Enterprise Max 用户的企业组织。

启用审计日志

要为您的组织启用 审计日志 ,请按以下步骤操作:

  1. 在 Perplexity 企业版门户中,前往您的 组织设置

  2. 向下滚动至 审计日志设置启用审计日志记录

  3. 配置您的 Webhook URL (必须为 HTTPS),然后点击 保存

  4. 为提高安全性,您可以设置一个 Authorization Header ,用于验证所有对您的 Webhook URL 的请求。 除非您指定授权方案,否则您输入的值将作为 Bearer 令牌发送。

Webhook 身份验证

您可以使用以下任一方式保护您的 Webhook 端点:

Bearer 令牌

请提供不含空格的令牌。 系统将自动在标头前添加 Bearer

  • 示例: your-secret-token-123

  • 发送方式: Authorization: Bearer your-secret-token-123

自定义授权标头

请提供完整的授权标头值(必须包含空格)。

  • 示例: Splunk xyz-token-456

  • 发送为: Authorization: Splunk xyz-token-456

Webhook 交付

请求格式

审计日志通过 HTTP POST 请求发送到您的 Webhook URL,其中包含:

  • 方法POST

  • 内容类型application/json

身份验证标头

如果您已配置身份验证标头令牌,则该令牌将包含在请求中:

Authorization: Bearer your-token-123

或用于自定义标头:

Authorization: Splunk your-token-456

响应处理

  • 您的 Webhook 端点应以 HTTP 2xx 状态码响应,以表明已成功接收。

  • HTTP 4xx 或 5xx 状态码将在 Perplexity 系统中记录为错误。

审计日志架构

所有审计日志事件均遵循此标准架构:

字段

类型

必填

描述

UUID

字符串

此审计日志事件的唯一标识符(自动生成的 UUID v4)

时间戳

字符串

RFC3339 格式的 ISO 8601 时间戳(例如: 2024-01-15T10:30:45+00:00

事件类型

字符串

发生的事件类型(请参阅 事件类型

用户电子邮箱

字符串

执行操作的用户电子邮件地址

IP 地址

字符串

发起操作的客户端 IP 地址

用户代理

字符串

客户端浏览器或应用程序的用户代理字符串

会话 ID

字符串

用于跟踪相关操作的会话标识符(可能为 null)

元数据

对象

事件特定的附加数据(结构因事件类型而异)

事件类型

以下是您在 审计日志中可能会看到的各个事件类型的定义:

用户活动事件

事件类型

描述

登录

用户已成功验证并登录

查询

用户提交了搜索请求

answer_generated

AI 生成的答案已返回给用户

文件上传

用户已将文件上传至空间

文件下载

用户从空间下载了一个文件

管理事件

事件类型

描述

组织设置更新

管理员已修改组织设置

管理员活动

已执行内部管理员操作(供 Perplexity 员工使用)

bulk_member_add_batch

已将多个用户添加到组织

bulk_member_remove_batch

已从组织中移除多名用户

代理事件

事件类型

描述

comet_agent_action

Comet 代理执行了自动操作

有效载荷示例

当用户提交搜索查询时,系统会记录以下条目:

{
"uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"timestamp": "2024-01-15T14:25:12.345678+00:00",
"event_type": "query",
"user_email": "[alice@company.com](<mailto:alice@company.com>)",
"ip_address": "203.0.113.45",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"session_id": "query_xyz789",
"metadata": {
"query_str": "API 安全的最佳实践是什么?"
}
}

平台专用格式

Slack Webhook

如果您的 Webhook URL 是 Slack Webhook(https://hooks.slack.com/...)),审计日志将自动采用 Slack 的 Block Kit 格式,以实现更丰富的显示效果:

{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*事件类型:*已生成答案"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*用户:* [alice@company.com](<mailto:alice@company.com>)\n*IP 地址:* 203.0.113.45\n*用户代理:* Mozilla/5.0...\n*会话 ID:*query_xyz789\n*时间戳:*2024-01-15T14:25:18.987654+00:00"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "\n*元数据:*\n• *答案:*API 安全最佳实践包括...\n• *模型:*claude-3-opus"
}
}
]
}

备注:Slack 格式包括:

  • 事件类型将转换为首字母大写,并删除下划线。

  • 如果元数据值超过此限制,将被截断为 500 个字符

  • 为了遵守 Slack 的 3,000 字符限制,元数据部分总长度已被截断为 2,500 字符。

  • 长值会显示截断提示,并附上原始长度。

Splunk HTTP 事件收集器 (HEC)

如果您的身份验证标头以“Splunk”开头,审计日志将自动以 Splunk 要求的格式打包:

{
"event": {
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"timestamp": "2024-01-15T10:30:45.123456+00:00",
"event_type": "login",
"user_email": "[user@company.com](<mailto:user@company.com>)",
"ip_address": "192.168.1.100",
"user_agent": "Mozilla/5.0...",
"session_id": "session-abc-123",
"metadata": {}
}
}

通用 Webhook

对于所有其他 Webhook URL,将发送标准 JSON 负载(如“示例负载”部分所示),无需额外格式化。

常见场景

跟踪用户研究会话

要跟踪用户从查询到回答的研究会话:

  1. 查询事件:用户提交问题

    • 元数据中包含 query_str

    • 包含一个链接到查询的 session_id

  2. 答案生成事件:AI 返回答案

    • 与查询事件相同的 session_id

    • 包含完整的 answer 文本,以及所用的 AI model

    • 可通过 session_id与查询事件关联

监控文件访问

要跟踪正在访问的文件:

  1. 文件上传事件:用户将文件添加到空间

    • 包含 filenamefile_uuidspace_namespace_uuid

  2. 文件下载事件:用户下载文件

    • 相同的 file_uuid 可用于与上传关联

    • 显示访问文件的人员及时间

审计配置变更

要跟踪管理变更:

组织设置更新事件:

管理员修改设置

  • 包含发生更改的设置 key

  • 显示 old_valuenew_value 以供比较

  • 可按 user_email 筛选,以跟踪哪些管理员进行了更改

最佳实践

Webhook 端点实现

  • 快速响应:您的端点应在 1 秒内响应,以避免超时。

  • 异步处理:将审计日志排入队列以供处理,并立即响应

  • 验证载荷:验证传入载荷的结构和内容

  • 保护您的端点:使用 HTTPS 并验证身份验证标头

  • 优雅处理故障:记录错误,但不返回可能导致重试的错误响应

数据保留与分析

  • 长期存储:保留审计日志,用于合规性和安全性分析

  • 索引键字段:为提高查询效率,请对 event_typeuser_emailtimestampsession_id 进行索引。

  • 关联事件:使用 session_id 关联相关事件(查询和回答)

  • 监控模式:留意异常访问模式或可疑活动

  • 定期导出:在 Webhook 系统之外保留审计日志的备份

安全注意事项

  • 保护 Webhook URL:请妥善保管您的 Webhook URL 和身份验证令牌,确保其机密性。

  • 定期轮换令牌:定期轮换您的身份验证令牌

  • 监控 Webhook 故障:跟踪失败的交付,以检测端点问题

  • 验证 IP 源地址:建议验证 Webhook 请求是否来自 Perplexity 的 IP 地址范围

  • PII 处理:审计日志包含用户电子邮件和 IP 地址,请根据您的隐私政策进行处理。

常见问题

如果我的组织中有不到 50 个席位,我可以使用此功能吗?

如果您的组织席位少于 50 个,您可以将至少一个席位升级为 Enterprise Max ,以访问您组织的 审计日志

我误将此功能激活,并被收取了额外席位的费用。 我该怎么办?

如果您误启用了 审计日志,且尚未准备好升级到 50+ 个席位,我们可以为您的账户调整账单,并撤销任何额外费用或付款。 请确保您已停用此功能,然后与我们联系。

2. 输入您的 Webhook URL 并点击 保存

3. 为了提高安全性,您可以设置一个 Authorization Header ,用于验证对您的 Webhook URL 的所有请求。 除非您指定授权方案,否则您输入的值将作为 Bearer 令牌发送。

审计日志事件的 JSON 负载示例

/* 查询 */
{
event_type: "query"
timestamp: 2025-02-20T09:05:31
user_email: "john@perplexity.ai"
ip_address: "162.229.229.229"
user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
metadata: {
query: "我们最近的渗透测试报告结果如何?"
}
}

/* 文件上传 */
{
event_type: "file_upload"
timestamp: 2025-02-20T09:05:31
user_email: "john@perplexity.ai"
ip_address: "162.229.229.229"
user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
metadata: {
file_name: "soc2_report.pdf"
file_uuid: "XXXXX"
space_name: "Security Reports"
space_uuid: "YYYYY"
}
}

常见问题

如果我的组织中有不到 50 个席位,我可以使用此功能吗?

如果您的组织的席位少于 50 个,您可以将至少一个席位升级到 Enterprise Max ,以访问您组织的审计日志。

我误将此功能激活,并被收取了额外席位的费用。

如果您不小心激活了审计日志,并且尚未准备好升级到 50+ 个席位,我们可以调整您账户的账单,并撤销任何额外的账单或付款。 请确保您已停用此功能,然后与我们联系。